JP2007528636A - ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング - Google Patents

ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング Download PDF

Info

Publication number
JP2007528636A
JP2007528636A JP2006538329A JP2006538329A JP2007528636A JP 2007528636 A JP2007528636 A JP 2007528636A JP 2006538329 A JP2006538329 A JP 2006538329A JP 2006538329 A JP2006538329 A JP 2006538329A JP 2007528636 A JP2007528636 A JP 2007528636A
Authority
JP
Japan
Prior art keywords
packet
input
packets
switching
port
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
JP2006538329A
Other languages
English (en)
Inventor
コンダ,ベンカット
Original Assignee
チーク テクノロジーズ,インク.
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 チーク テクノロジーズ,インク. filed Critical チーク テクノロジーズ,インク.
Publication of JP2007528636A publication Critical patent/JP2007528636A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • 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/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1523Parallel switch fabric planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Abstract

【課題】
【解決手段】レートウェイトを有するマルチレートマルチキャストパケットを、各入力ポートがr個の入力キューを有するr個の入力ポート、各出力ポートがr個の出力キューを有するr個の出力ポート、及びs個のサブネットワークを用いて少なくとも
Figure 2007528636

のスピードアップを有する相互接続ネットワークを含む相互接続ネットワークを介してスケジューリングするためのシステムであって、各サブネットワークは、全体で少なくともr個の第1内部リンクのため各入力ポートに接続される少なくとも1つの第1内部リンクを含み、各サブネットワークはさらに、全体で少なくともr個の第2内部リンクのため各出力ポートに接続される少なくとも1つの第2内部リンクを含むシステムは、本発明により、パケットのレートウェイトに応じて、r≦rであるときは、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において多くともr個のパケットを、r≦rであるときは、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、多くともr個のパケットを、決定論的方式で且つパケットのセグメント化と再組立の必要がなくスケジューリングすることにより、厳密なノンブロッキング方式で作動する。スケジューリングは、各マルチキャストパケットが、2つを超えない相互接続ネットワークを介し、2回を超えないスイッチング回数で、ファンアウト分割されるように実行される。このシステムは、100%スループット、作業節約的、公正、及びさらに決定論的方式で作動し、それにより、出力ポートは決して輻輳しない。このシステムは、調停に1度だけ繰り返しを、相互接続ネットワークにおける数学的に最小限のスピードアップを用いて、実行される。このシステムは、順序付けの問題、相互接続ネットワークにおけるパケットの内部ブロッキングを決して伴わないので、真にカットスルー且つファンアウトされる方式で作動する。一実施例において、スピードアップは、1つのみのサブネットワークを用い、サブネットワークを介して3のスピードアップを用いて実施される。別の実施例において、システムは、相互接続ネットワークにおける少なくとも
Figure 2007528636

のスピードアップを用いて、再配置可能なノンブロッキング方式で作動する。入力ポートの数rが出力ポートのr数に等しく、r=r=rであるときは、少なくとも
Figure 2007528636

のスピードアップを有する相互接続ネットワークは、パケットのレートウェイトに応じて、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、多くともr個のパケットをスイッチングすることにより、本発明にしたがって厳密にノンブロッキングな決定論的方式で作動する。また、相互接続ネットワークにおける少なくとも
Figure 2007528636

のスピードアップを用いて、このシステムは、J再配置可能なノンブロッキング且つ決定論的方式で作動する。このシステムは、マルチレートマルチキャストパケットのため、入力ポートから出力ポートまで、エンドツーエンド保証帯域幅及びレイテンシを提供する。すべての実施例において、相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、クロスネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークでもよい。
【選択図】図1H

Description

関連出願に対する相互参照
本出願は、2003年11月30日提出の米国仮特許出願番号60/515,985号に関連するものであり、優先権を主張する。本出願は現出願と同一出願人に譲渡され、同時に提出するVenkat Kondaによる「NONBLOCKING AND DETERMINISTIC MULTIRATE MULTICAST PACKET SCHEDULING」と題する関連米国特許出願整理番号V−0010号に対するPCT出願であって、その全体は参照することにより組込まれる。本出願は、現出願と同一出願人に譲渡された2001年9月27日提出のVenkat Kondaによる「REARRANGEABLY NON-BLOCKING MULTICAST MULTI-STAGE NETWOARKS」と題する関連連米国特許出願番号09/967,815号、及び2003年9月6日提出の、その一部継続出願のPCT出願番号PCT/US03/27971号に関連し、その全体は参照することにより組込まれる。本出願は、現出願と同一出願人に譲渡された2001年9月27日提出のVenkat Kondaによる「STRICTLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連米国特許出願番号09/967,106号、及び2003年9月6日提出の、その一部継続出願のPCT出願番号PCT/US03/27972号に関連し、その全体は参照することにより組込まれる。
本出願は、2003年9月6日提出の関連米国仮特許出願番号60/500,790号及びその米国特許出願番号10/933,899号並びに2004年9月5日提出のそのPCT出願番号04/29043号に関連し、その全体は参照することにより組込まれる。本出願は、2003年9月6日提出の関連米国仮特許出願番号60/500,789号及びその米国特許出願番号10/933,900号並びに2004年9月5日提出のそのPCT出願番号04/29027号に関連し、その全体は参照することにより組込まれる。
本出願は、2003年10月30日提出の関連米国仮特許出願番号60/516,057号及びその米国特許出願整理番号V−0005号並びに同時提出のそのPCT出願整理番号S−0005号に関連し、その全体は参照することにより組込まれる。本出願は、2003年10月30日提出の関連米国仮特許出願番号60/516,265号及びその米国特許出願整理番号V−0006号並びに同時提出のそのPCT出願整理番号S−0006号に関連し、その全体は参照することにより組込まれる。本出願は、2003年10月30日提出の関連米国仮特許出願番号60/516,163号及びその米国特許出願整理番号V−0009号並びに同時提出のそのPCT出願整理番号S−0009号に関連し、その全体は参照することにより組込まれる。
今日のATMスイッチ及びIPルータは典型的に、様々な型の相互接続ネットワークを採用して、入力ポート(「イングレスポート」とも言う)からのパケットを所望の出力ポート(「エグレスポート」とも言う)にスイッチングする。相互接続ネットワークを介してパケットをスイッチングするには、それらを入力ポート又は出力ポート、あるいは入力ポートと出力ポートの双方においてキューイングされる。パケットは1つ又は複数の出力ポートを宛先としてよい。1つの出力ポートのみを宛先とするパケットをユニキャストパケットと呼び、1つを超える出力ポートを宛先とするパケットをマルチキャストパケットと呼び、出力ポート全部を宛先とするパケットをブロードキャストパケットと呼ぶ。
出力キュー(OQ)スイッチは、出力ポートにおいてのみキューを採用する。出力キュースイッチにおいては、入力ポートにおいてパケットを受信すると即座に宛先出力ポートキューにスイッチングする。パケットは、即座に出力ポートキューに転送されるので、r*r の出力キュースイッチにおいては、相互接続ネットワークはr のスピードアップを必要とする。入力キュー(IQ)スイッチは、入力ポートにおいてのみキューを採用する。入力キュースイッチは、相互接続ネットワークにおいて、1のみのスピードアップを必要とする。あるいは、IQスイッチにおいては、スピードアップを必要としない。しかしながら、入力キュースイッチは、行頭(HOL)ブロッキングを除去しない。これは、入力キューの行頭にあるパケットの宛先出力ポートがスイッチング時に使用中であるとき、キュー内の次のパケットの宛先ポートが空いていても、これも遮断してしまうことを意味する。
入出力複合キュー(CIOQ)スイッチは、その入力ポートと出力ポートの双方においてキューを採用する。これらのスイッチは、相互接続ネットワークにおいて1とrとの間のスピードアップを採用することにより、OQおよびIQスイッチ双方は、最良の結果を達成する。仮想出力キュー(VOQ)スイッチと呼ばれる別の型のスイッチは、各入力ポートに、各出力ポートのうち1つを宛先とするパケットにそれぞれ対応するr 個のキューを持つ設計となっている。VOQスイッチは、HOLブロッキングを除去する。
VOQスイッチは、近年非常に注目を集めている。「The iSLIP Scheduling Algorithm for Input-Queued Switches」と題するNick Mckeownの論文、IEEE/ACM Transactions on Networking、1999年4月、7巻2号は、本発明の背景としてここに参照し組込まれる。この論文には、188頁から190頁の序章において、クロスバーを基礎とする相互接続ネットワークのための数多くのスケジューリングアルゴリズムが記述されている。
背景として参照してここに組込まれるNick Mckeownに付与された「Combined Unicast and Multicast Scheduling」と題する米国特許6,212,182号は、各入力ポートにおいてr 個のユニキャストキューと1つのマルチキャストキューを用いるVOQスイッチング技術について記述している。各スイッチング時において、1度の繰り返し調停をおこなって、1個のパケットを各出力ポートにスイッチする。
背景として参照してここに組込まれるPrabhakar他に付与された「Switching System and Methods of Operation of Switching System」と題する米国特許6,351,466号には、各入力ポートにr 個のユニキャストキューと各出力ポートに1つのマルチキャストキューを有する、クロスバー相互接続ネットワークにおけるVOQスイッチング技術が、パケットレイテンシの正確な制御を含む出力キュースイッチであるかのように実行する、少なくとも4のスピードアップが必要であると記述されている。
しかしながら、従来技術のスイッチファブリックには、多くの問題が伴う。第1に、マルチキャストパケットのためのHOLブロッキングが除去されない。第2に、相互接続における数学的最小限のスピードアップが未知である。第3に、相互接続ネットワークにおけるスピードアップの使用は、出力ポートを氾濫させ、これが出力ポートにおける不必要なパケット輻輳、及びパケットをエグレスポート外に送信するための速度減少を招く。第4に、任意にファンアウトされるマルチキャストパケットは、出力ポートに対してノンブロッキング方式ではスケジューリングできない。第5に、各スイッチング時において、パケット調停が繰り返し実行され、スイッチング時間、費用及び電力コストが高くつく。最後に第6として、現行技術は、スケジューリングを貪欲で非決定論的方式で実行するので、それにより入力ポートと出力ポートにおいてセグメント化と再組立を必要とする
各入力ポートにレートウェイトを有するマルチレートマルチキャストパケットを含む、複数の入力ポート、複数の出力ポート、及び複数の入力キューを有する相互接続ネットワークを介してマルチレートマルチキャストパケットをスケジューリングするシステムは、本発明に従って、パケットのレートウェイトに相当する多くとも入力キューと同数のパケットを、各入力ポートから各出力ポートに対しスケジューリングすることにより、ノンブロッキング方式で作動する。スケジューリングは、各マルチキャストパケットが、2つ以下の相互接続ネットワークと2回以下のスイッチング回数を介してファンアウト分割されるように実行される。システムは、100%スループットで、作業節減、規則的であるが決定論的に作動し、それにより出力ポートを輻輳させることは決してない。このシステムは、相互接続ネットワークにおいて数学的に最小限のスピードアップを用い、調停を1度だけの繰り返しで実行する。このシステムは、相互接続ネットワークにおけるパケットの順序付け問題、パケットの内部バッファリングが決して無く、したがって、真にカットスルーで分散的な方式で作動する。別の実施例においては、各出力ポートも複数の出力キューを含み、各パケットは、パケットのレートウェイトに相当する宛先出力ポート内の出力キューへ、パケットのサイズに違いがあっても、決定論的方式でパケットのセグメント化及び順序付けの必要なしに転送される。一実施例においては、スケジューリングは、相互接続ネットワークにおいて少なくとも3のスピードアップを用いて、厳密なノンブロッキング方式で実行される。別の実施例においては、スケジューリングは、相互接続ネットワークにおいて少なくとも2のスピードアップを用いて、再配置可能なノンブロッキング方式で実行される。このシステムは、マルチレートマルチキャストパケットのため、入力ポートから出力ポートまで、エンドツーエンドの保証帯域幅とレイテンシを提供する。すべての実施例において、相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、クロスネットワーク、ハイパーキューブネットワーク、又はあらゆる内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークであってよい。
本発明は、入力ポートに到着するマルチレートユニキャスト及びマルチレートの任意ファンアウトマルチキャストパケットを含むスイッチファブリックにおける、通信の性質に無関係なノンブロッキングで決定論的スケジューリングの設計及び操作に関連する。具体的には、本発明は、パケットスケジューリングシステムにおける以下の問題に関する。1)パケットの、厳密に再配列可能なノンブロッキングスケジューリング、2)入力ポートから出力ポートへ(必要な場合は、出力ポート内の特定の出力キューへ)マルチレートパケットをレートウェイトに基づいて、決定論的に、即ち、出力ポートを輻輳させることなくスケジューリングすること、3)パケットのセグメント化と再配列(SAR)の実施を必要としないこと、4)調停は、1度の繰り返しだけで行われること、5)相互接続ネットワークにおいて、数学的に最小限のスピードアップを使用すること、及び6)パケットのサイズが可変な場合であっても、100%スループットで作動すること。
入力ポートにあるパケットが2つ以上の出力ポートを宛先としている場合、1対多数のパケット転送を必要とするので、そのパケットをマルチキャストパケットと呼ぶ。入力ポートにあるパケットが唯1つの出力ポートを宛先としている場合、1対1のパケット転送を必要とするので、そのパケットをユニキャストパケットと呼ぶ。入力ポートにあるパケットがすべての出力ポートを宛先としている場合、1対全部のパケット転送を必要とするので、そのパケットをブロードキャストパケットと呼ぶ。一般的に、マルチキャストパケットは、2つ以上の出力ポートを宛先とすることを意味するので、ユニキャスト及びフロードキャストパケットを含む。相互接続ネットワークを介して転送される1組のマルチキャストパケットは、マルチキャスト割当と呼ばれる。スイッチファブリックにおけるマルチキャストパケット割当は、入力ポートにおいて利用可能な任意のパケットが、任意の利用可能な出力ポートに常に転送することができる場合は、ノンブロッキングである。
ここに記述する型のスイッチファブリックは、出力ポートにおいて仮想出力キュー(VOQ)を採用する。一実施例において、各入力ポートにおいて受信されるパケットは、存在する出力ポートと同数のキューの中に配置される。各キューは、出力ポートの1つのみを宛先とするパケットを保持する。したがって、ユニキャストパケットは、その宛先出力ポートに対応する対応入力キューの中に置かれ、マルチキャストパケットは、その宛先出力ポートの1つに対応する対応入力キューのいずれか1つの中に置かれる。しかしながら、各入力キューの中にあるパケットは、パケットのレートを示すパケットのレートウェイトにより、任意に異なるレートでデータを運ぶ。入力キューにおけるパケットのレートウェイトは、正の整数を用いて示す。例えば、入力キューにおいて、2のレートウェイトを有するパケットは、別の入力キュー内のレートウェイト1のパケットより2倍速いレートで出力ポートにスイッチングされる。スイッチファブリックは、出力ポートに出力キューがあることも、ないこともある。出力キューがある場合は、一実施例において、存在する入力ポートと同数のキューが各出力ポートに存在する。パケットは、レートウェイトに関係なく、各出力キューが1つの入力ポートのみからスイッチングされたパケットを保持するよう、出力キューにスイッチングされる。
ここに記述するタイプのスイッチファブリックの一定のものにおいては、すべての入力ポート内の各入力キューは、マルチレートの任意ファンアウトマルチキャストパケットを有すると、入力キューにおけるパケットのレートウェイトにしたがって、出力ポートにおいて異なる帯域幅を割り当てる。本発明は、このようなマルチレートの任意ファンアウトマルチキャストパケットのためのノンブロッキングで決定論的スイッチファブリックに関する。一定レートのユニキャストパケットを有し、すべての入力ポートの中に各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて同等の帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号V−0005号及びPCT出願、弁理士整理番号S−0005号に詳細な記述がある。
一定レートのマルチキャストパケットを有し、すべての入力ポート内に各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて同一の帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号V−0006号及びそのPCT出願、弁理士整理番号S−0006号に詳細な記述がある。マルチレートユニキャストパケットを有し、各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて異なる帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号V−0009号及びそのPCT出願、弁理士整理番号S−0009号に詳細な記述がある。
図1Aを参照すると、模範的なスイッチファブリック10は、4つの入力ポート151−154を含む入力ステージ110と、3つの4×4クロスバーネットワーク131−133を含む相互接続ネットワークの中間ステージ130を経由して、4つの出力ポート191−194を含む出力ステージ120から成る。各入力ポート151−154は、それぞれ入口リンク141−144を介してマルチレートマルチキャストパケットを受信する。各出力ポート191−194は、それぞれ出口リンク201−204を介してマルチレートマルチキャストパケットを送信する。各クロスバーネットワーク131−133は、8つのリンク(以下「第1内部リンク」と言う)FL1−FL8を介して、4つの入力ポート151−154にそれぞれ接続され、さらに8つのリンク(以下「第2内部リンク」と言う)SL1−SL8を介して、4つの出力ポート191−194にそれぞれ接続されている。図1Aのスイッチファブリック10においては、入口リンク141−144、第1内部リンクFL1−FL8、第2内部リンクSL1−SL8、及び出口リンク201−204のそれぞれは、同一レートで作動する。
各入力ポート151−154において、入口リンク141−144を介して受信されるマルチレートマルチキャストパケットは、出力ポート191−194を宛先とするパケットが、各入力ポート151−154においてそれぞれ入力キュー171−174の中に置かれるように、存在する出力ポートと同数の入力キュー171−174(4個)に、それらマルチレートマルチキャストパケットの宛先出力ポートに応じてソートされる。一実施例においては、図1Aのスイッチファブリック10に示すように、マルチレートマルチキャストパケットを入力キューに置く前に、優先順位キュー161−164の中に置いてもよい。各優先順位キュー161−164は、「1−f」の優先順位に対応するマルチレートマルチキャストパケットを保持するf 個のキューを含む。例えば、出力ポート191を宛先とするパケットは、パケット「1−f」の優先順位に基づいて、優先順位キュー161の中に置き、最高優先順位のパケットは、次の最優先順位パケットを置く前に、最初に入力キュー171の中に置く。優先順位キュー161−164の使用は、スイッチファブリック10の作動には関係しないので、図1Aのスイッチファブリック10は、別の実施例においては優先順位キュー161−164無しで実施することもできる。(優先順位キューの使用は、本発明に記述するすべての実施例に無関係なので、すべての実施例は、優先順位キュー無しで、ノンブロッキングで決定論的方式で実施することもできる。)
このネットワークは、入力ステージ110、出力ステージ120及び中間ステージ130に結合されて、入力ポート51−154から出力ポート191−194へパケットをスイッチングするスケジューラも含む。スケジューラはメモリの中に、中間ステージ130内の相互接続ネットワークを通る経路のため利用可能な宛先のリストを保存している。
一実施例においては、図1Aに示すように、各出力ポート191−194は、存在する入力ポート(4個)と同数の出力キュー181−184を含み、入力ポート151−154からスイッチングされるパケットが、各出力ポート191−194において、それぞれ出力キュー181−184内に置かれるようになっている。図1Aのスイッチファブリック10における4つの入力ポート151−154内の各入力キュー171−174は、入力ポート151内の入力キュー171の中にA1−A4、および入力ポート164内の第4の入力キュー174の中にP1−P4の4個のパケットが、出力ポートに対してスイッチングされる態勢の整った模範的な状態を示す。4つの入力ポート151−154における16個のすべての入力キュー内の行頭パケットは、それぞれA1−P1で指定される。
表1は、図1Aのスイッチファブリック10における、出力キュー割当に対する模範入力キューを示す。入力ポート151内の入力キュー171内のI{1,1}で示すユニキャストパケットは、O{1,1}で示される出力ポート191内の出力キュー181に対して割当てられ、スイッチングされる。入力ポート151内の入力キュー172内のI{1,2}で示されるユニキャストパケットは、O{1,2}で示される出力ポート192内の出力キュー181に対してスイッチングされ割当てられる。同様に、残りの16個の入力キュー内のパケットは、表1に示すように、残りの16個の出力キューに割り当てられる。任意に与えられた入力キューからのマルチレートユニキャストパケットは、表1に示すように、常に同一指定出力キューにスイッチングされる。別の実施例においては、入力キューから出力キューへの割当は、表1と異なるが、本発明に従うと、各出力ポート内の出力キューに対しパケットをスイッチングするのに割当てられる各入力ポート内の入力キューは、1つのみであり、その逆も真である。
Figure 2007528636
マルチキャスト割当を特徴付けるには、x,y∈{1−4}であるときI{x,y}について、OP⊂{1,2,3,4}が入力キューI{x,y}のマルチキャストパケットが宛先とする出力ポートのサブセットを示すとき、I{x、y}=OPとする。一実施例において、入力キューI{x、a}=OP{a,b,c,d}からのマルチキャストパケットは、4つの出力ポートa、b、c、及びd内の出力キューO{a,x}、O{b,x}、O{c,x}、及びO{d,x}に対してスイッチングされる。例えば、入力キューI{1、1}=OP{1,2}内のマルチキャストパケットは、出力キューO{1,1}とO{2,1}に対してスイッチングされる。同様に、入力キューI{1、1}=OP{1,2,3,4}内のマルチキャストパケットは、出力キューO{1,1}、O{2,1}、O{3,1}、及びO{4,1}に対して交換される。
入口リンク141においてOP⊂{1,2,3,4}で受信するマルチキャストパケットは、入力キューI{1,1}、I{2,1}、I{3,1}、及びI{1,4}の任意の1つに置かれる。それは、パケットの宛先出力ポートは、すべての出力ポート191−194であるからである。しかしながら、出願者は、一旦マルチキャストパケットが、例えば入力キューI{1,1}に、置かれると、続く残りの同一のソースと宛先アドレスを持つパケットは、入口リンク141により受信されたパケットの順序を維持するように、同一入力キューに置かれることに注目する。例えば、マルチキャストパケットが、入力キューI{1,2}=OP{1,2,3,4}に置かれることもあるが、そのときは、出力キューO{1,1}、O{2,1}、O{3,1}、及びO{4,1}に対しスイッチングされる。したがって、どの入力キューに置かれるかに関わりなく、宛先出力ポート内の同一出力キューに対してスイッチングされる。マルチレートユニキャストパケットと全く同様に、与えられた任意の入力キューからのマルチレートユニキャストパケットは、常に同一指定出力キューに対してスイッチングされる。
表2は、図1Aのスイッチファブリック10において、入力ポートの入力キューにより、入力リンク141−144を介して受信されるマルチレートマルチキャストパケット要求の模範的セットを示す。入力キューI{1,1}におけるマルチキャストパケットは、レートウェイト2の出力キューO{1,1}、及びO{4,1}を宛先としてスイッチングされる。入力キューI{1,3}におけるマルチキャストパケットは、レートウェイト1の出力キューO{1,1}、及びO{3,1}を宛先としてスイッチングされる。同様に、残りの16個の入力キューのうち、出力キューに対して割当てられたマルチレートパケットを有する入力キューのみを、表2に示す。すべての入力ポート151−154の各入力キュー171−174からのパケットのレートウェイトを、図1Aに示すように211−214で表示する。
出願者は、図1Aのスイッチファブリック10は4×4ポートであるため、各入力ポート内のすべての入力キューのレートウェイトの合計は4を超えることが出来ないことを承知している。各入力ポート内の4つのすべての入力キューが、各出力ポートに等しい帯域幅を割り振る場合は、各入力キューのレートウェイトは1である。入力キューの1つが、1より大きいレートウェイトを有する場合、それは同一入力ポート内の別の入力キューの犠牲で成り立っている。それは、各入口リンクは、各スイッチング時に1つのみのパケットしか受信できないからである。したがって、各入力ポート内のすべての入力キューのレートウェイトの合計は、図1Aのスイッチファブリック10においては4(出力ポートの数)を超えることが出来ない。しかしながら、入力キューが、表2に示すようなマルチレートユニキャストパケットを含む場合は、入力ポートの競合が生じる。(出願者は、入力ポートの競合は、マルチキャストプロパティのため生じるのであって、パケットのマルチレートプロパティのためではないことに注目する)。各出力ポートは4回のスイッチングで(以下「ファブリックスイッチングサイクル」と言う)多くとも4個のパケットを受信することができるので、各入力ポートの入力キュー内の、受信した異なるファンアウトのすべてのマルチキャストパケットは、出力ポートにスイッチングすることができず、入力ポートの競合が生じる。したがって、そのうちの少ほんの数個のみが、選択され出力ポートにスイッチングされる。
Figure 2007528636
図1Bは、本発明にかかる、調停及びスケジューリング方法を、中間ステージ130に3個の4×4クロスバーネットワーク131−133を用いて、即ち、3のスピードアップにより、図1Aのスイッチファブリック10を厳密なノンブロッキングな決定論的方式で作動させる一実施例により示す。厳密なノンブロッキングな決定論的スイッチングの実施に当たって使用される具体的な方法は、本開示の観点から当業者には明らかな多くの異なる方法の中の任意の方法でよい。このような調停及びスケジューリング方法の1つを、図1Bを参照して以下に記述する。
図1Bの方法40の調停部分は(詳細は後述)、3つのステップからなる。即ち、入力ポートによる要求の生成、出力ポートによる許可の発行、及び入力ポートによる許可の承認である。ファブリックスイッチングサイクル毎に出力ポートは、出力ポートを輻輳状態にすることなく、最大4個のパケットを受信することができるので、マルチキャストパケットをそのファンアウト回数だけカウントし、最大4個のパケットを入力ポートからスイッチングすることができる。従って、1回のファブリックスイッチングサイクルにおいて、調停を実行して、各入力ポートからスイッチングすべき最大4個のパケットを選択する。表3は、表2に示すパケットの入力競合を解消した後、出力ポートに対してスイッチングされる各入力ポートからの4個のパケットを示す。入力ポート競合を解消するのに使用される特定の調停基準は、多くとも4個のパケットがファブリックスイッチングサイクル毎に各入力ポートからスイッチングされるように、マルチキャストパケットが選択される限り、本発明には関係がない。
表3に示すように、入力ポート151からは、連続する2つパケットがファブリックスイッチングサイクル毎に、I{1,1}から出力ポート191、及び194に対し、即ちレートウェイト2でスイッチングされる。明らかに、ファブリックスイッチングサイクル毎に入力ポート151からスイッチングされるパケットの総数は、マルチキャストパケットをそのファンアウトと同じ回数をカウントすると4個である。表2に示すI{1,2}及びI{1,3}からのパケットは、出力ポートにスイッチングされない。これらは、入力ポート競合の解消中の調停において選択されなかったからである。同様に、残りの入力ポートにおいても、表3に示すように、4個のパケットのみが選択され、これらは、ファブリックスイッチングサイクル毎に、出力ポートにスイッチングされる。
Figure 2007528636
Figure 2007528636
表4は、表3の入力ポートにおいて生成されたパケット要求に対応する、出力ポートにより受信されるパケット要求を示す。マルチレートパケットは、出力ポートにおいて予約過多を生じることがある。出力ポートの予約過多がある場合、出力ポート競合が生じる。表5は、パケットプロパティとポート競合の可能性との関係を示す。パケットのマルチキャストプロパティにより、入力ポート競合が生じ、パケットのマルチレート性により、出力ポート競合が生じる。表5に示すように、入力キュー内のユニレートユニキャストパケットは、入力ポート競合も出力ポート競合も生じない。入力キュー内のユニレートマルチキャストパケットは、入力ポート競合を生じるが、出力ポート競合は生じない。入力キュー内のマルチレートユニキャストパケットは、出力ポート競合を生じるが、入力ポート競合は生じない。入力キュー内のマルチレートマルチキャストパケットは、入力ポートと出入力ポート双方に競合を生じる。(マルチレートユニキャストパケットに関しては、前回スイッチング時に、エグレスポートの予約過多のため、未処理のトラフィックがあるときは、入力ポート競合が生じることがあることにも注目しなければならない。)
Figure 2007528636
図1Aのスイッチファブリック10において、1つの入口リンクは、各スイッチング時に多くとも1個のパケットを受信し、1つの出口リンクは、各スイッチング時に多くとも1個のパケットを送信する。また、本発明に基づき、ノンブロッキングスイッチングのためだけに、中間ステージにおいてスピードアップを使用することにより、各スイッチング時に、各入力ポートは、それはマルチキャストパケットでもよいが、多くとも1個のパケットを、指定出力ポートに対してスイッチングし、各出力ポートは、多くとも1個のパケットを入力ポートから受信する。したがって、図1Aの4×4スイッチファブリック10においては、各ファブリックスイッチングサイクルに、1つの出力ポートは、多くとも4個のパケットを受信する。したがって、入力ポートから受信し、各出力ポートによるスイッチングの許可が可能なすべての要求のレートウェイトの合計は、1回のファブリックスイッチングサイクルにおいて、多くとも4である。
代わりに、すべてのパケット要求のレートウェイトの合計が1つの出力ポートにおいて4より多いとき、それは、出力ポートが予約過多であることを意味する。出願者は、出力ポートが1回のファブリックスイッチングサイクルにおいて受信することのできる4つのすべてのパケットの外に、入力ポート内の同じ入力キューから、2つ以上のパケットを受信することがある、即ち、その入力キューからパケットのレートウェイトが、1を超える場合があることも注意する。
表4に示すように、各出力ポート191−194において要求されるすべての出力キューのレートウェイトの合計は、それぞれ7、3、3、及び3である。明らかに、出力ポート191は予約過多である。出力ポート192−194は、予約過多ではなく、すべての要求をそれぞれの入力ポートに対して許可する。1つの出力ポートにおいて予約過多がある場合は、多くとも4つの要求が、出力ポート競合解消基準に基づいて許可される。一実施例においては、表6に示すように、出力ポート191は、入力ポート151、153,及び154に対して許可を発行して、すべての要求のレートウェイトの合計を4に制限する。第1調停ステップにおいて、各入力ポートは、すべての要求の合計が多くとも4になる要求を生成するので、各入力ポートにおけるすべての許可のレートウェイトの合計は、決して4を超えることはない。したがって、出力ポートが発行する許可は、表6に示すように、直接入力ポートによる承認となる。出力ポートがスイッチングを許可しない入力キュー、例えば表2のI{1,3}及びI{1,4}は、パケットを出力ポートにスイッチングすることが出来ない。また、表7は、図1Aのスイッチファブリック10における、入力ポートによるパケット承認の受信を示す。
Figure 2007528636
表3及び表6において使用する入力ポート競合及び出力ポート競合の解消策は、入力ポートから出力ポートへの特定の帯域幅割当目標に基づくことに注意しなければならない。しかしながら、この目標は、スイッチファブリックを100%スループットで活用する目標と対立する。100%スループットで活用するには、別の実施例において、調停を1回より多い繰り返しが必要となる。何れの基準を使用して入力ポート競合及び出力ポート競合を解消するにしても、図1Aのスイッチファブリック10は常に、本発明にかかるノンブロッキングな決定論的方式で作動する。
Figure 2007528636
本発明により、16個の入力キューから、承認許可を有するすべての行頭パケットが、4回のスイッチングによりノンブロッキング方式で、中間ステージ130の相互接続ネットワークを経由して、入力ポートから出力ポートへスイッチングされる。各スイッチング時に、多くとも1個のパケット、それはマルチキャストパケットでもよいが、各入力ポートから各出力ポートに多くとも1個のパケットがスイッチングされる。1より大きいレートウェイトを有する各パケット要求は、レートウェイトと等しい別個の要求があるが、同一のスイッチング入力キューからスイッチングされ、同一のスイッチング出力キューにスイッチングされるように扱われる。ここで、出願者は、図1Aのスイッチファブリック10において16個の入力キューから出力ポート191−194に対してスイッチングすることを承認されたパケットの決定論的でノンブロッキングなスケジューリングの問題は、図1Cに示す3ステージクロスネットワーク14のノンブロッキングなスケジューリングに関係するという重要な見方をしている。
図1Cを参照すると、中間ステージ130を経由して入力ステージ110と出力ステージ120との間の通信要求を満足する11個のスイッチの時間−空間−時間(TST)構成で作動する、模範的な対称3ステージクロスネットワーク14が示されている。この場合、入力ステージ110は、4個の4×3スイッチIS1−IS4を含み、出力ステージ120は、4個の3×4スイッチOS1−OS4を含み、中間ステージ130は、3個の4×4スイッチMS1−MS3を含む。入力ステージ110の各スイッチに対する入口リンクの数、及び出力ステージ120の各スイッチに対する出口リンクの数をnで表示し、入力ステージ110及び出力ステージ120のスイッチの数をrで表示する。3個の各中間スイッチMS1−MS3は、r個のリンク(例えば、各入力スイッチIS1−IS4から中間スイッチMS1に対し接続されるリンクFL1−FL4)を介してr個の各入力スイッチに接続され、r個の第2内部リンク(例えば、中間スイッチMS1から各出力スイッチOS1−OS4に対して接続されるリンクSL1−SL4)を介して、各出力スイッチに接続される。このネットワークは、16個の入口リンク、即ちI{1,1}−I{4,4}及び16個の出口リンク、即ちO{1,1}−O{4,4}を有する。図1Aのスイッチファブリック10と全く同様に、図1Cの3ステージクロスネットワーク14においては、16個のすべての入力リンクが、表1に示すように16個の出力リンクに割当てられる。図1Cのネットワーク14は、第1ステージにおける各接続要求を多くとも2回、中間ステージ130におけるスイッチの数が
Figure 2007528636
個に等しいとき、中間ステージにおいては必要とする回数だけ、ファンアウトすることにより、マルチキャスト接続要求のため厳密なノンブロッキング方式で作動することができる(本発明の背景として参照して組込まれる、Venkat Kondaにより現出願と同一出願人に譲渡された2001年9月27日提出の「STRICTLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連米国特許出願番号09/967,106号、及び2003年9月6日提出の、その一部継続PCT出願番号PCT/US03/27972号を参照)。
本発明にしたがって、中間ステージ130に3個の4×4クロスバーネットワーク131−133を有する、即ち、3のスピードアップを有する一実施例において、図1Aのスイッチファブリック10は、入力ポートにおける各パケット要求を、多くとも2回及び、中間ステージ相互接続ネットワークにおいては、必要とする回数だけファンアウトすることにより、厳密ノンブロッキング方法で作動する。厳密なノンブロッキングで決定論的なスイッチングを実施するに当たって使用する具体的な方法は、本開示の観点で当業者には明らかな多数の異なる方法のうちいずれでもよい。このようなスケジューリング方法の1つは、図1Bの調停及びスケジューリング方法のスケジューリング部分である。
Figure 2007528636
表8は、表7の承認に関する4回の各スイッチング時における、図1Bの調停及びスケジューリング方法のスケジューリング部分を使用した一実施例によるパケットのスケジューリングを示す。図1D〜図1Hは、各スイッチング後の図1Aのスイッチファブリック10の状態を示す。図1Dは、パケットA1、K1及びM1が、出力キューにスイッチングされる1回目のスイッチング後の図1Aのスイッチファブリック10の状態を示す。入力ポート151からのレートウェイト2を有するマルチキャストパケットA1は、出力ポート191と194を宛先とする。本発明により、マルチキャストパケットは、多くとも2つの相互接続ネットワーク131−133を介して、4回のスイッチングのいずれかにおいてファンアウトされる。例えば、図1Dに示すように、入力ポート151からのパケットA1は、クロスバーネットワーク131を経由して、1回目のスイッチングで、出力ポート194の出力キュー181の中にスイッチングされる。(パケットA1は、後述するように、図1Eに示す2回目のスイッチングで、クロスバースイッチ131を介して、出力ポート191の出力キュー181に対してスイッチングされる)。従って、マルチキャストパケットE1は、2つのクロスバーネットワークのみ、即ち1回目のスイッチングにおけるクロスバーネットワーク131、および2回目のスイッチングにおけるクロスバーネットワーク131を介して、ファンアウトされる。その上、パケットA1は、レートウェイト2を有するマルチレートなので、パケットA2も、最初の4回のスイッチング時に出力ポート91及び194に対してスイッチングされる。(パケットA2は、中間スイッチ132を介して、そこから出力ポート191及び194へ、4回目のスイッチングでファンアウトされる。パケットA1およびパケットA2は、別個にスケジューリングされ、それらが同一経路を行き来することはなく、同一の中間スイッチを介してファンアウトされる必要もないことに注意しなければならない)。
本発明により、入力ポートからのマルチキャストは、中間ステージにある多くとも2つのクロスバーネットワークを介して、おそらくは2回のスイッチングでファンアウトされ、中間ステージ(クロスバー)ネットワークからのマルチキャストパケットは、必要な数の出力ポートに対してファンアウトされる。また、マルチキャストパケットが宛先出力ポートに対して、2回の別にスケジューリングされたスイッチングにおいてスイッチングされる場合、1回目のスイッチング後、そのマルチキャストパケットは、2回目にスケジューリングされたスイッチングで、残りの出力ポートに対してスイッチングされるまで、入力キューの行頭に保たれるままである。したがって、図1Dにおいて、パケットA1は、まだ入力ポート151の入力キュー171の行頭にある。
図1Dにおいて、入力ポート153からの、レートウェイト1を有するユニキャストパケットK1は、クロスバーネットワーク131を経由して出力ポート193の出力キュー183にスイッチングされる。入力ポート154からの、レートウェイト1を有する(出力ポート191−194を宛先とする)マルチキャストパケットM1は、クロスバーネットワーク132を介してファンアウトされ、クロスバーネットワーク132から、出力ポート192の出力キュー184及び出力ポート194の出力キュー184にファンアウトされる。パケットM1は、後述するように、2回目のスイッチングで、出力ポート193−194にスイッチングされる。マルチキャストパケットM1も、まだ入力ポート154の入力キュー171の行頭に残されている。出願者は、すべての出力ポートは、各スイッチング時において、多くとも1個のパケットを受信するが、マルチキャストパケットがスイッチングされる場合は、すべての入力ポートは、各スイッチング時において、多くとも1個のパケットをスイッチングするわけではないないことを承知している。
図1Eは、パケットA1、J1及びM1が出力キューにスイッチングされる2回目のスイッチングの後の、図1Aのスイッチファブリック10の状態を示す。入力ポート151からのマルチキャストパケットA1は、クロスバーネットワーク131を経由して出力ポート191の出力キュー181にスイッチングされる。マルチキャストパケットA1は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットA2が入力ポート151の入力キュー171の行頭になる。入力ポート153からのユニキャストパケットJ1は、クロスバーネットワーク133を経由して出力ポート192の出力キュー183にスイッチングされる。入力ポート153からのマルチキャストパケットM1は、クロスバーネットワーク132を介してファンアウトされ、そこから出力ポート193の出力キュー184、及び出力ポート194の出力キュー184にファンアウトされる。マルチキャストパケットM1は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットM2が、入力ポート154のキュー171の行頭になる。ここでも、2回目のスイッチングで、各入力ポートからパケット1つだけがスイッチングされ、各出力ポートはパケット1つだけを受信する。ここでも、2回目のスイッチングにおけるすべての出力ポートは、多くとも1個のパケットを受信する。
図1Fは、パケットG1及びI1が出力キューにスイッチングされる3回目のスイッチング後の、図1Aのスイッチファブリック10の状態を示す。入力ポート152からのユニキャストパケットG1は、クロスバーネットワーク131を経由して、出力ポート193の出力キュー182にファンアウトされる。入力ポート153からのユニキャストパケットI1は、クロスバーネットワーク132を経由して、出力ポート191の出力キュー183にスイッチングされる。ここでも、3回目のスイッチングにおけるすべての出力ポートは、多くとも1個のパケットを受信する。
図1Gは、パケットA2及びJ2が出力キューにスイッチングされる、4回目のスイッチング後の、図1Aのスイッチファブリック10の状態を示す。入力ポート151の入力キュー171からのパケットは、2のレートウェイトを有するので、入力ポート151からのマルチキャストマルチレートパケットA2は、クロスバーネットワーク132内にファンアウトされ、そこから出力ポート191の出力キュー181及び出力ポート194の出力キュー181にファンアウトされる。マルチキャストパケットA2は、すべての宛先にスイッチングし尽くされるので、入力ポート151のキュー171の行頭から削除される。入力ポート153の入力キュー172からのパケットはレートウェイト2を有するので、入力ポート153からのマルチキャストパケットJ2は、クロスバーネットワーク131を経由して、出力ポート192の出力キュー183の中にスイッチングされる。ここでも、4回目のスイッチングにおけるすべての出力ポートは、多くとも1個のパケットを受信する。
図1Hは、パケットA3、K2,及びM2が出力キューにスイッチングされる4回目のスイッチング後の、図1Aのスイッチファブリック10の状態を示す。入力ポート151からの、レートウェイト2を有するマルチキャストパケットA3は、出力ポート191及び194を宛先とする。図1Dにおけるのと全く同様に、入力ポート151からのパケットA3は、クロスバーネットワーク131を経由して、5回目のスイッチングで、出力ポート194の出力キュー181にスイッチングされる。(パケットA3は、パケットA1がスイッチングし尽くされるのと全く同様に、後のスイッチングにおいて、出力ポート191の出力キュー181に対しスイッチングされる)。パケットA3は、レートウェイト2を有するマルチレートなので、パケットA3も、同一ファブリックスイッチングサイクルの中で、出力ポート191及び194に対しスイッチングされる。パケットA3は、まだ宛先ポートすべてに対してスイッチングされていないので、入力ポート151の入力キュー171の行頭に残されている。入力ポート153からの、レートウェイト1を有するユニキャストパケットK2は、クロスバーネットワーク133を経由して、出力ポート193の出力キュー183の中にスイッチングされる。
入力ポート154からの(出力ポート191−194を宛先とする)レートウェイト1を有するマルチキャストパケットM2は、クロスバーネットワーク132を介してファンアウトされ、クロスバーネットワーク132から出力ポート192の出力キュー184及び出力ポート194の出力キュー184の中にファンアウトされる。パケットM2は、パケットM1と全く同様に、後で同一ファブリックスイッチングサイクルの中で、出力ポート191−194に対しスイッチングされる。したがって、マルチキャストパケットM2も、まだ入力ポート154のキュー171の行頭にある。出願者は、すべての出力ポートは、各スイッチング時において、多くとも1個のパケットを受信するが、マルチキャストパケットがスイッチングされる場合は、すべての入力ポートが各スイッチング時において、多くとも1個のパケットをスイッチングするわけではないことを承知している。したがって、図1Bの調停及びスケジューリング方法40は、第1ファブリックスイッチングサイクルのためのスケジュールを実行した後、再スケジューリングを行う必要はない。したがって、いずれかの特定の入力キューから宛先出力キューに対するパケットは、同一経路に沿ってスイッチングされ、入力ポートがそれを受信した通りの順序で移動するので、パケット順序付けの問題は決して生じない。
4回のスイッチングにおいては、最大16個のマルチキャストパケットが出力ポートにスイッチングされるので、このスイッチは、本発明に基づき、ノンブロッキングで、100%スループットで作動する。図1Aのスイッチファブリック10は、各出力ポートが、それを宛先とする入力キューのいずれか1つから少なくとも1個のパケットがある限り、スイッチング時に、少なくとも1個のパケットを受信するように作動するので、以後、このスイッチファブリックを「作業節約システム」と呼ぶ。スイッチファブリックがノンブロッキングであるとき、スイッチファブリックがそのままで作業節約的であることに気付くのは容易である。本発明により、図1Aのスイッチファブリック10は、各入力キューの行頭にあるパケットが、各入力ポートにある入力キュー(4個)の数に等しいスイッチング回数を超えては保持たれないよう作動する。以後このスイッチファブリックを「公正システム」と呼ぶ。仮想出力キューを使用するので、行頭ブロッキングも、ユニキャスト及びマルチキャスト双方のパケットに関して削除される。
本発明により、図1Bの調停及びスケジューリング方法40を用いて、図1Aのスイッチファブリック10は、各出力ポートは、相互接続ネットワークにおける3のスピードアップを用いて、スイッチング時に3個のパケットをスイッチングすることが可能であっても、スイッチング時に、多くとも1個のパケットを受信するように作動する。しかもスピードアップは、相互接続ネットワークをノンブロッキング方式で、決して出力ポートを輻輳させないように作動させることのみに厳密に使用される。したがって、図1Aのスイッチファブリック10において、パケットをスイッチングする図1Bの調停及びスケジューリング方法40は、決定論的である。各入口リンク141−144は、パケットを、各出口リンク201−204が送信するのと同一レート、即ち各スイッチング時に1個のパケットを受信する。各スイッチング時において、1個のパケットのみが、各入力ポート151−154から決定論的にスイッチングされ、1個のパケットのみが、各出力ポート191−194の中にスイッチングされるので、図1Aのパケットファブリック10は、決して出力ポートを輻輳させない。
本発明に基づく決定論的スイッチングの重要な利点は、スイッチファブリックが予約過多であるときであっても、入力ポートからパケットを高くともピークレートでスイッチングされることである。これは、出力ポートにおいてパケットは高くてもピークレートで受信されることをも意味する。それは、出力ポートにおいてトラフィック管理が不要であり、パケットは、出力ポートから決定論的に送信されることを意味する。従って、トラフィック管理は、図1Aのスイッチファブリック10内の入力ポートにおいてのみ必要である。
図1Aのスイッチファブリック10の別の重要な特徴は、特定の入力キューに属するすべてのパケットが、宛先出力ポートの同一出力キューに対してスイッチングされることである。出願者は、出力キューによる3つの重要な利点に注目する。1)スイッチングにおいて、1バイト又は数バイトが入力ポートから出力ポートに対しスイッチングされる。あるいは、スイッチファブリックのスイッチング回数は可変なので、スイッチファブリックの設計段階では、これは柔軟性のあるパラメータである。2)したがって、パケットA1−P1が任意に長く可変のサイズであっても、入力キュー内の各パケットは、宛先出力ポート内の同一出力キューに対してスイッチングされるので、スイッチング時に完全なパケットをスイッチングする必要はない。また、出力キューの第2の利点は、長いパケットを入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要がないことである。物理的にパケットをセグメント化することなく、パケットは、出力キューに対して論理的にセグメント毎にスイッチングされる(パケットセグメントのサイズは、スイッチングの回数により決定される)。各パケットにおけるパケットセグメントも、同一経路を介して、入力キューから宛先出力キューへスイッチングされる。3)出力キューの第3の利点は、パケット及びパケットセグメントが、入力ポートに受信されるのと同一の順序でスイッチングされるので、パケット順序付けの問題が決して生じないことである。
図1Iは、長いパケットをスイッチングするスイッチファブリック16を示す。表1は、図1Aのスイッチファブリック10におけると全く同様の方法で、図1Iのスイッチファブリック16における入力キューの出力キューに対する割当の模範例を示す。16個のすべての入力キュー内のユニキャストパケットは、表1に示すように、16個の出力キューに対し割当てられる。与えられた任意の入力キューからのマルチキャストパケットは、図1Aのスイッチファブリック10において記述したように、常に同一指定出力キューに対してスイッチングされる。
表2は、図1Aのスイッチファブリック10と全く同様に、図1Iのスイッチファブリック16おいて受信される、入力ポートの入力キューからのマルチレートマルチキャストパケット要求の模範的セットを示す。表7は、表2における要求に関し、図1Bの調停及びスケジューリング方法40の調停部分を実行した後スイッチングされるようスケジューリングされたパケットを示す。入力キューI{1,1}内のマルチレートパケット{A1−A4}は、レートウェイト2を有する出力キューO{1,1}、及びO{4,1}に対し、スイッチングされるよう割当てられる。入力キューI{1,3}及びI{1,4}からのパケットは、出力ポートに対しスイッチングされない。これらは、図1Bの調停及びスケジューリング方法40の調停部分において、スイッチングされるよう承認されていないからである。同様に、残りの16個の入力キューの中で、出力キューに割当てられたマルチレートパケットを有する入力キューのみを、表7に示す。全入力ポート151−154の各入力キュー171−174からのパケットのレートウェイトは、図1Iに示すように211−214で表す。
これらの長いパケットはそれぞれ、等しいサイズの4個のパケットセグメントから成る。例えば、パケット{A1−A4}は、4個のパケットセグメント、即ちA1、A2、A3、及びA4から成る。パケットが、パケットセグメントのサイズの完全な4の倍数でないときは、4番目のパケットセグメントはサイズが短いことになる。しかしながら、4個のパケットセグメントの何れも最大パケットセグメントサイズより大きくない。パケットセグメントのサイズは、スイッチング回数により定まる。即ち、各スイッチング時において、いずれかの入力ポートからいずれかの出力ポートに対して、1個のパケットセグメントのみがスイッチングされる。長いパケットサイズを除けば、図1Iのスイッチファブリック16の図は、図1Aのスイッチファブリック10の図と同様である。
図1Bの調停及びスケジューリング方法40も、中間ステージにおける3のスピードアップを用いて、図1Iのスイッチファブリック16を、ノンブロッキングな決定論的方式で作動させる。図1Aのスイッチファブリック10の場合に実行されるのと全く同様の方法で、図1Bの方法40の調停部分は、3つのステップを備える。即ち、入力ポートによる要求の生成、出力ポートによる許可の発行、及び入力ポートによる許可の承認である。図1Bの調停及びスケジューリング方法40のスケジューリング部分を用いた、一実施例においける、表2は、入力ポートにより受信される調停要求、表3は、入力ポートにより生成される調停要求、表4は、出力ポートにより受信される調停要求、表6は、出力ポートにより発行される調停許可、表7は、入力ポートにより生成される承認、表8は、計算したスケジュールを、それぞれ示す。
図1J‐図1Mは、各ファブリックスイッチングサイクルの後の、図1Iのスイッチファブリック16の状態を示す。図1Jは、その間に承認パケット要求の中のすべての行頭パケットセグメントを、所望のレートウェイトにしたがって、出力キューにスイッチングする、第1ファブリックスイッチングサイクル後の、図1Iのスイッチファブリック16の状態を示す。これらのパケットセグメントは、図1D−1Gに示すように、図1Aのスイッチファブリック10において承認パケット要求を出力キューにスイッチングするように、図1Bの調停及びスケジューリング方法40を使用して、全く同様の方法で出力キューに、スイッチングされる。図1Kは、その間に行頭パケットセグメントの次のすべてのセットを、出力キューにスイッチングする、第2ファブリックスイッチングサイクル後の、図1Iのスイッチファブリック16の状態を示す。図1Lは、その間にすべての行頭パケットセグメントを、出力キューにスイッチングする第3ファブリックスイッチングサイクル後の、図1Iのスイッチファブリック16の状態を示す。図1Mは、その間にすべての行頭パケットセグメントを、出力キューにスイッチングする第4ファブリックスイッチングサイクル後の、図1Iのスイッチファブリック16の状態を示す。
第1、第2、第3及び第4の各ファブリックスイッチングサイクルにおいて、パケットセグメントは、図1D−1Gに示すように、図1Aのスイッチファブリック10において、パケットが出力キューにしてスイッチングされるのと全く同様の方法で、出力キューにスイッチングされる。明らかに、すべてのパケットセグメントは、各入力ポートで受信されるのと同一の順序でスイッチングされる。したがって、パケット順序付けの問題はない。パケットはまた、100%スループットで、作業節約的、及び公正な方法でスイッチングされる。
図1J−1Mにおいては、パケットは、論理的にセグメント化され出力ポートにスイッチングされる。一実施例において、タグビット「1」も各パケットセグメントの特定の指定ビット位置に詰め込んで、そのパケットセグメントがそれぞれのパケット内の最初のパケットセグメントであることを表示する。「1」のタグビットを読み取ることにより、出力ポートは、承認パケットのパケットセグメントA1−P1が、新規パケット内の最初のパケットであることを認識する。同様に、各パケットセグメントは、「0」のタグビットを詰め込まれる最後のパケットセグメントを除いて、指定ビット位置に「1」のタグビットが詰め込まれる。(例えば、図1Iのスイッチファブリック16内のパケットセグメントにおいて、パケットセグメントA1−P1、A2−P2及びA3−P3には「1」のタグビットが詰め込まれる一方で、パケットセグメントA4−P4には「0」のタグビットが詰め込まれる)。タグビットが「0」であると検出されると、出力ポートは、次は新規パケットのパケットセグメント、又は新規パケットであると予測する。パケットの中にパケットセグメントが1つしかない場合、入力ポートにより「0」のタグビットが表示される。出力ポートは、「0」の指定タグビットのパケットセグメントを2個続けて受信すると、2個目のパケットセグメントは、新規パケットの唯一のパケットセグメントであると判定する。
図1Iのスイッチファブリック16において、パケットは4セグメント分の長さである。しかしながら、一般的にパケットの長さは、任意である。加えて、同一キュー内の異なるセグメントは、異なるサイズである可能性がある。いずれの場合にも、図1Bの調停及びスケジューリング方法40は、スイッチファブリックをノンブロッキング方式で作動させ、パケットは100%スループット、作業節約的、及び公正な方法でスイッチングされる。また、入力ポート内のパケットを物理的にセグメント化し、出力ポート内に再組立する必要もない。スイッチファブリックのスイッチング回数も柔軟な設計パラメータであって、各スイッチング時において、パケットをバイト毎、又は数バイト毎にスイッチングするように設定される。
図1Bは、図1Aのスケジューラにより遂行される、一実施例における、図1Bの調停及びスケジューリング方法40の高レベルフローチャートである。この実施例によると、レートウェイトを有する多くともr 個の要求が、アクト41において各入力ポートから生成される。各入力ポートが、レートウェイトが1のr個のユニキャストパケット要求を有するとき、各入力キューからの1つの要求に伴って、各入力ポートから多くともr個の要求がある。第2に、ユニキャストパケット要求が、1つ以上の入力キューから1より大きいレートウェイトを有するときは、生成される要求の数は、rより小さくなる。しかしながら、各入力ポートからの生成されるすべての要求のレートウェイトの合計は、多くともr である。出願者は、マルチレートユニキャストパケットは、入力ポート競合を生じないことを承知している。
第3に、レートウェイト1のマルチキャストパケットがあるときは、1回のファブリックスイッチングサイクルにおいて、各出力ポートは、多くともr個のパケットしか受信できないので、各入力ポートからのr個の要求を満足することは出来ない。このように、マルチキャストパケットは、入力ポートにおいてレートウェイト1であっても、入力ポート競合を生じる。しかしながら、各入力ポートは、1回のファブリックスイッチングサイクルにおいて、多くともr個のパケットだけスイッチングすることができる。したがって、1つの入力ポートからの1つマルチキャストパケット要求は、同一入力ポートの別の入力キューからの別のパケット要求の犠牲の上に成り立つ。そこで、各入力ポートからのr個のマルチキャスト要求は、r個の異なる出力ポートに対して成されることを承知している必要がある。第4に、マルチレートマルチキャストパケットは、パケットのマルチキャストプロパティのため、入力ポート競合を引き起こすが、1つの入力キューからの複数のパケットは、パケットのマルチレートプロパティのため、1回のファブリックスイッチングサイクルにおいてスイッチングする必要がある。
そのため、アクト41において、調停方針を用いることにより、すべての要求のパケットの合計が、r個以下になるように、即ち、マルチキャストパケットを、そのファンアウトの回数だけカウントし、各マルチレートパケットを、そのレートウェイト倍だけカウントすることにより、各入力ポートの中にマルチレートマルチキャスト要求のセットが生成される。一実施例において、この調停方針は優先順位スキームに基づいてもよい。しかしながら、アクト41において入力ポート競合を解消するのに使用される選択方針のタイプは、本発明には無関係である。
アクト42において、各出力ポートは、各要求が関連付けられる出力キューに対応する、多くともr個の許可を発行する。出力ポートは、許可されるすべての要求のレートウェイトの合計が、多くともrになるように、要求を許可する。しかしながら、1つの出力ポートは、レートウェイトの合計がrを超える要求を受信することがある。その場合、その出力ポートは、予約過多となるので、出力ポート競合が生じる。ここでも、出願者は、パケットのマルチレートプロパティが出力ポート競合を引き起こすのであって、パケットのマルチキャストプロパティは、出力ポート競合を引き起こさないことを承知している。選択方針を用いて、レートウェイトの合計が多くともrとなるように、許可が選択される。一実施例においては、これは優先順位スキームに基づいてもよい。しかしながら、予約過多を制御するのに使用される選択方針のタイプは、本発明には無関係である。アクト43において、各入力ポートは、発行される許可のすべてを承認するが、それは、入力ポートに対して発行される許可すべてのレートウェイトとファンアウトの合計が、多くともrであるからである。
アクト44においては、多くともr個のすべての要求が、以前にスケジューリングされたパケットの経路を再配置することなく、スケジューリングされる。一実施例においては、1より大きいレートウェイトを有する各要求は、宛先出力ポートの同一出力キューを有するレートウェイト1の、その数の別個の要求と考えられる。本発明にしたがうと、r個のすべての要求は、厳密なノンブロッキング方式で、中間ステージ130において少なくとも3のスピードアップを用いてスケジューリングされる。要求の生成、許可の発行、及び承認の生成の調停は、1度だけの繰り返しで実行されることに注目しなければならない。アクト44の後、制御はアクト45に戻る。アクト45においては、入力ポートに、新規で異なる要求があるか否かを点検する。答が「ノー」であれば、制御はアクト45に戻る。新規の要求はあるが、それらが、出力キュー要求に対し同一の入力キューを有する点で異ならないときは、同一スケジュールを用いて、次の多くともr個の要求をスイッチングする。入力ポートからの新規で異なる要求があるとき、制御はアクト45からアクト41に移り、アクト41−45は、ループで実施される。
図1Cのネットワーク14は、中間ステージ130におけるスイッチが
Figure 2007528636
個であるとき、マルチキャスト接続要求のため再配置可能なノンブロッキング方式で作動させることができる。(本発明に対する背景として参照して組込まれる、Venkat Kondaにより現出願と同一出願人に譲渡され、2001年9月27日提出の「REARRANGEABLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連の米国特許出願番号09/967,815号、及び2003年9月6日提出の、その一部継続PCT出願番号PCT/US03/27971号を参照)。同様に、本発明にかかる、入力キューの中にマルチレートマルチキャストパケットを有し、中間ステージ130に2個のみ4×4クロスバーネットワーク131を用いる、即ち、2のスピードアップを有する別の実施例において、図1Nのスイッチファブリック18は、再配置可能なノンブロッキング方式で作動する。
厳密なノンブロッキングネットワークにおいては、すべての入力キューの行頭にあるパケットを1度にスケジューリングするので、パケットのための入力キューから宛先出力キューへのネットワークを介した経路を、以前にスケジューリングしたパケットの経路を阻害することなくスケジューリングすることが常に可能であり、1つより多いこのような経路を利用することができるときは、残りのパケットのスケジューリングを懸念することなく、任意の経路を選択することができる。再配置可能なノンブロッキングネットワークにおいては、すべての入力キューの行頭にあるパケットは、1度にスケジューリングされるので、パケットのための入力キューから宛先出力キューへの経路のスケジューリングは、必要に応じて以前にスケジューリングしたパケットの経路を再配置する、スケジューラの再配置能力の結果として、満足されることが保証されている。本発明により、図1Nのスイッチファブリック18は、再配置可能なノンブロッキング方式で作動する一方、図1Aのスイッチファブリック10は、厳密なノンブロッキング方式で作動する。
図2Aを参照すると、スイッチファブリック20は、出力キューを有しない以外は、図2Aのスイッチファブリック20の図は、図1Aのスイッチファブリック10の図と全く同様である。本発明により、スイッチファブリック20は、入力ポート及び出力ポートにSARを必要とすることを除いて、図1Aのスイッチファブリック10について開示したあらゆる側面において、同様に厳密にノンブロッキングな決定論的方式で作動する。パケットは、スイッチング時に判定された通りに、入力ポートにおいてセグメント化する必要があり、別個に再組立の必要がある出力ポートにスイッチングされる。しかしながら、図1Bの調停及びスケジューリング方法40は、図2Aのスイッチファブリック20において、パケットをスイッチングするためにも使用される。ここでも、スケジューリングは、すべての承認パケット要求について同時に実行され、図1Aのスイッチファブリック10の場合と同様に、出力ポートには仮想的に16個の出力キューあると推定して、多くとも16個のパケットが、レートウェイトにしたがって、4回のスイッチングでスイッチングされる。しかしながら、そのスイッチングの間に、パケットは、図1Aのスイッチファブリック10における出力キューと異なり、宛先出力ポート内にスイッチングされる。図2B−2Fは、表2に示すパケット要求をスケジューリングすることにより、ファブリックスイッチングサイクルにおける各スイッチング後の、図2Aのスイッチファブリック20の状態を示す。図1Bの調停及びスケジューリング方法を用い、図1Aのスイッチファブリック10において記述したのと同じステップにしたがって、各スイッチング時においてスケジューリングされるパケットを表8に示す。
図2Bは、その間にパケットA1、K1、及びM1が出力キューにスイッチングされる1回目のスイッチング後の、図2Aのスイッチファブリック20の状態を示す。入力ポート151からのマルチキャストパケットA1は、クロスバーネットワーク131を経由して、1回目のスイッチングにおいて、出力ポート194の中にスイッチングされる。(パケットA1は、後述するように、図2Cに示す2回目のスイッチングにおいてクロスバースイッチ131を介して、出力ポート191にスイッチングされる)。そのようにして、マルチキャストパケットE1は、クロスバーネットワーク2つのみ、即ち1回目のスイッチングにおけるクロスバーネットワーク131、および2回目のスイッチングにおけるクロスバーネットワーク131を介してファンアウトされる。さらに、パケットA1は、レートウェイト2を有するマルチレートなので、パケットA2も、最初の4回のスイッチングで、出力ポート91及び194にてスイッチングされる。(パケットA2は、中間スイッチ132を介し、そこから出力ポート191及び194に、4回目のスイッチングにおいてファンアウトされる。パケットA1とパケットA2は、別個にスケジューリングされ、それらは同一経路を行き来しないし、同一中間スイッチを介してファンアウトされる必要もないことに注意しなければならない)。
本発明により、入力ポートからのマルチキャストは、中間ステージにおいて、多くとも2つのクロスバーネットワークを介して、おそらくは2回のスイッチングでファンアウトされ、中間ステージ(クロスバー)ネットワークからのマルチキャストパケットは、必要な数の出力ポートにファンアウトされる。マルチキャストパケットが、宛先出力ポートに異なるスケジューリングの2回のスイッチングにおいてスイッチングされるときも、1回目のスイッチング後、そのマルチキャストパケットは、2回目のスイッチングに残りの出力ポートにスイッチングされるまで、入力キューの行頭に保たれるままである。したがって、図2Bにおいて、パケットA1は、まだ入力ポート151の入力キュー171の行頭にある。
図2Bにおいて、入力ポート153からの、レートウェイト1を有するユニキャストパケットK1は、クロスバーネットワーク133を経由して出力ポート193の中にスイッチングされる。入力ポート154からの、レートウェイト1を有する(出力ポート191−194を宛先とする)マルチキャストパケットM1は、クロスバーネットワーク132を介してファンアウトされ、クロスバーネットワーク132から出力ポート192及び出力ポート194内にファンアウトされる。パケットM1は、後述するように、2回目のスイッチングで出力ポート193−194にスイッチングされる。マルチキャストパケットM1も、まだ入力ポート154の入力キュー171の行頭にある。出願者は、マルチキャストパケットがスイッチングされると、すべての入力ポートが各スイッチング時において、多くとも1個のパケットをスイッチングするわけではないが、すべての出力ポートは、各スイッチング時において多くとも1個のパケットを受信することを承知している。
図2Cは、その間にパケットA1、J1及びM1が出力キューにスイッチングされる2回目のスイッチング後の、図2Aのスイッチファブリック20の状態を示す。入力ポート151からのマルチキャストパケットA1は、クロスバーネットワーク131を経由して出力ポート191の中にスイッチングされる。マルチキャストパケットA1は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットA2は、入力ポート151の入力キュー171の行頭にある。入力ポート153からの、ユニキャストパケットJ1は、クロスバーネットワーク133を経由して出力ポート192の中にスイッチングされる。入力ポート153からの、マルチキャストパケットM1は、クロスバーネットワーク132を介してファンアウトされ、そこから出力ポート193及び出力ポート194の中にファンアウトされる。マルチキャストパケットM1は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットM2は、入力ポート154の入力キュー171の行頭にある。ここでも、2回目のスイッチングにおいて、各入力ポートからパケット1つのみがスイッチングされ、各出力ポートは、パケット1つのみを受信する。さらにここでも、すべての出力ポートは、2回目のスイッチングにおいて、多くとも1個のパケットを受信する。
図2Dは、その間にパケットG1及びI1が出力キューにスイッチングされる3回目のスイッチング後の、図2Aのスイッチファブリック20の状態を示す。入力ポート152からのユニキャストパケットG1は、クロスバーネットワーク131を経由して出力ポート193内にファンアウトされる。入力ポート153からのユニキャストパケットI1は、クロスバーネットワーク132を経由して出力ポート191内にスイッチングされる。ここでも、すべての出力ポートは、3回目のスイッチングにおいて、多くとも1個のパケットを受信する。
図2Eは、その間にパケットA2及びJ2が、出力キューにスイッチングされる4回目のスイッチング後の、図2Aのスイッチファブリック20の状態を示す。入力ポート151の入力キュー171からのパケットは、レートウェイト2を有するので、入力ポート151からのマルチキャストマルチレートパケットA2は、クロスバーネットワーク132の中にファンアウトされ、そこから出力ポート191の及び出力ポート194の中にファンアウトされる。マルチキャストパケットA2は、すべての宛先にスイッチングし尽くされるので、それは入力ポート151の入力キュー171の行頭から削除される。入力ポート153の入力キュー172からのパケットは、レートウェイト2を有するので、入力ポート153からのマルチレートユニキャストパケットJ2は、クロスバーネットワーク131を経由して出力ポート192の中にスイッチングされる。ここでも、すべての出力ポートは、4回目のスイッチングにおいて、多くとも1個のパケットを受信する。
図2Fは、その間にパケットA3、K2,及びM2が出力キューにスイッチングされる5回目のスイッチング後の、図2Aのスイッチファブリック20の状態を示す。入力ポート151からの、レートウェイト2を有するマルチキャストパケットA3は、出力ポート191及び194を宛先としている。図2Bと全く同様に、入力ポート151からのパケットA3は、クロスバーネットワーク131を経由して、5回目のスイッチングにおいて、出力ポート194内にスイッチングされる。(パケットA3は、パケットA1がスイッチングし尽くされるのと全く同様に、後のスイッチング時に、出力ポート191にスイッチングされる)。パケットA3は、レートウェイト2を有するマルチレートなので、パケットA3も、同一のファブリックスイッチングサイクルの中で出力ポート191及び194にスイッチングされる。パケットA3は、まだすべての宛先出力ポートにスイッチングされていないので、入力ポート151の入力キュー171の行頭に残されている。入力ポート153からの、レートウェイト1を有するユニキャストパケットK2は、クロスバーネットワーク133を経由して、出力ポート193内にスイッチングされる。
入力ポート154からの(出力ポート191−194を宛先とする)レートウェイト1を有するマルチキャストパケットM2は、クロスバーネットワーク132を介してファンアウトされ、クロスバーネットワーク132から出力ポート192及び出力ポート194の中にファンアウトされる。パケットM2は、パケットM1と全く同様に、後で同一ファブリックスイッチングサイクルの中で出力ポート191−194にスイッチングされる。したがって、マルチキャストパケットM2は、まだ入力ポート154の入力キュー171の行頭にある。出願者は、マルチキャストパケットがスイッチングされるときは、すべての入力ポートが、各スイッチング時において、多くとも1個のパケットをスイッチングするわけではないが、すべての出力ポートは、各スイッチング時において、多くとも1個のパケットを受信することを承知している。したがって、図1Bの調停及びスケジューリング方法40は、1回目のファブリックスイッチングサイクルのためのスケジュールの実行後に、再スケジューリングをおこなう必要はない。したがって、いずれかの特定の入力キューから宛先出力ポートへのパケットは、同一経路に沿ってスイッチングされ、入力ポートがそれらを受信した通りの順序で移動するので、パケット並べ換えの問題は決して生じない。
図1Bの調停及びスケジューリング方法40は、図2Aのスイッチファブリック20も、厳密なノンブロッキング方式で作動させ、パケットは100%スループット、作業節約的、及び公正な方法でスイッチングされる。このスイッチファブリックのスイッチング回数も、柔軟な設計パラメータであって、各スイッチング時において、パケットをバイト毎、又は数バイト毎にスイッチングするように設定にすることができる。しかしながら、スイッチファブリック20はSARを必要とし、それは、パケットは入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要があることを意味する。それにも拘わらず、スイッチファブリック20においては、パケット及びパケットセグメントは、出力ポートへ、入力ポートに受信されるのと同一順序でスイッチングされる。事実、SARを除いて、図1Bの調停及びスケジューリング方法40は、スイッチファブリック20を、あらゆる側面において図1Aのスイッチファブリック10と同様の方法で作動させる。
スイッチファブリックのノンブロッキングな作動のための、中間ステージにおける3のスピードアップは、2つの方法で実現される。1)並列性 及び 2)スイッチング速度の3倍化である。並列性は、中間ステージにおいて3つの相互接続ネットワークを、例えば図1Aのスイッチファブリック10に示すように、並行して使用することにより実現される。スイッチング速度の3倍化は、相互接続ネットワーク、第1及び第2内部リンクを、入力ポート及び出力ポートにおける各クロックに関し、2倍のクロックレートで作動させることより実現される。第1のクロックにおいては、単一相互接続ネットワークを、3つの並列相互接続ネットワークを用いて実施するのと同等のスイッチファブリックの第1相互接続ネットワークとして、例えば、図1Aのスイッチファブリック10における相互接続ネットワーク131として、スイッチングのため作動させる。同様に、第2のクロックにおいては、単一相互接続ネットワークは、第2相互接続ネットワークとして、例えば、図1Aのスイッチファブリック10における相互接続ネットワーク132として作動させる。また第3のクロックにおいては、単一相互接続ネットワークを第2相互接続ネットワークとして、例えば、図1Aのスイッチファブリック10における相互接続ネットワーク133として作動させる。したがって、この実施においては、相互接続ネットワークのクロックにおいて、及び第1、第2、及び第3内部リンクにおいて、3倍のレートが必要である。図1Bの調停及びスケジューリング方法40は、並列性又は3倍のレートによりスピードアップを実行して、双方のスイッチファブリックを、本発明において記述するようなあらゆる側面において、ノンブロッキングな決定論的方式で作動させる。
図3Aを参照すると、中間ステージ130のクロスバー相互接続ネットワーク1つのみにおけるクロック速度の3のスピードアップ及び第1および第2の内部リンクにおける3のスピードアップを用いて3のスピードアップを備えている点を除いて、図1Aのスイッチファブリック10の図と同様のスイッチファブリック30を示す。図1Aのネットワークの別の実施例においては、中間ステージにある各相互接続ネットワークは、共有メモリネットワークである。図3Bは、スイッチファブリック50を示すが、これは、中間ステージ130において3つの共有メモリ相互接続ネットワークにより、3のスピードアップを備えている点を除いて、図1Aのスイッチファブリック10と同様である。図3Cは、スイッチファブリック60を示すが、これは、中間ステージ130にあるただ1つの共有メモリ相互接続ネットワークのクロック速度の3のスピードアップと、第1および第2の内部リンクにおける3のスピードアップにより、3のスピードアップを備える点を除いて、図3Aのスイッチファブリック30と同様である。
同様に、図3Dは、スイッチファブリック70を示すが、それは、中間ステージ130に、3つのハイパーキューブ相互接続ネットワークを用いて、3のスピードアップを備える点を除いて、図1Aのスイッチファブリック10と同様である。図3Eは、中間ステージ130のハイパーキューブに基づくただ1つの相互接続ネットワークのクロック速度と、第1および第2の内部リンクにおける3のスピードアップを用いて、3のスピードアップを備える点を除いて、図3Aのスイッチファブリック30と同様のスイッチファブリック60を示す。
図1Aの10、図1Iの16、図1Nの18、図2Aの20、図3Aの30、図3Bの50、図3Cの60、図3Dの70、及び図3Eの80の各スイッチファブリックにおいて、入力ポート110と出力ポート120の数を、各ステージに一般的に変数rを用いて表示する。中間ステージにおけるスピードアップをsで表示する。中間ステージにおけるスピードアップは、並列性、即ち、(図4A、図4B、図4C、及び図4Eに示すように)3つの相互接続ネットワークを用いるか、又は(図4B、図4D、及び図4Fに示すように)1つの相互接続ネットワークにおける2倍のスイッチングレートを用いることにより実現される。各入力ポート151−{150+r}のサイズは、一般的にr*s(各入力ポートがr個の入力キューを有し、s個の第1内部リンク有するs個の相互接続ネットワークに接続されることを意味する)を用いて表示し、各出力スイッチ191−{190+r}のサイズは、一般的にs*r(各出力ポートがr 個の出力キューを有し、s個の第2内部リンクを有するs個の相互接続ネットワークに接続されることを意味する)を用いて表示する。同様に、中間ステージ130にある各相互接続ネットワークのサイズは、r*r と表示する。ここに記述する相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、又はサブネットワークのネットワークのいずれでもよく、その各々は順にクロスバー又は共有メモリネットワーク、又は3ステージクロスネットワーク、又はハイパーキューブ、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークである。3ステージスイッチファブリックは、V(s,r)の表示を用いて表す。
存在する出力キュー181−{180+r}と同数の入力のキュー171−{170+r}が存在する必要はないが、対称ネットワークにおいては、これらは同数である。s 個の各中間ステージ相互接続ネットワーク131−132は、r個の第1内部リンクを介してr 個の各入力ポートに接続され、r個の第2内部リンクを介して各出力ポートに接続される。各第1内部リンクFL1−FLr及び第2内部リンクSL1−SLrは、新規パケットにより利用可能であるか、又は別のパケットが既に取得しているときは利用不能であるか、のいずれかである。
図1Aのスイッチファブリック10は、図4Aの一般的対称スイッチファブリックの一例であって、中間ステージ130において3つクロスバー相互接続ネットワークを使用することにより、3のスピードアップをもたらす。図4Bを参照して、1つのみの中間ステージ130のクロスバー相互接続ネットワークにおけるクロック速度の3のスピードアップと、第1および第2の内部リンクにおける3のスピードアップを用いて、3のスピードアップを備える点を除いて、図4Aのスイッチファブリックと同様の一般的対称スイッチファブリックを示す。
図4Cは、中間ステージ130に3つの共有メモリ相互接続ネットワークを用いることにより3のスピードアップを備える一般的対称スイッチファブリックを示す。図4Dは、中間ステージ130において1つのみの共有メモリ相互接続ネットワークのクロック速度の3のスピードアップと、第1および第2の内部リンクにおける3のスピードアップを用いて3のスピードアップを備える一般的対称スイッチファブリックを示す。
図4Eは、中間ステージ130に3つの3ステージクロス相互接続ネットワークを用いることにより、3のスピードアップを備える一般的対称スイッチファブリックを示す。図4Fは、中間ステージ130において1つのみの3ステージクロス相互接続ネットワークのクロック速度に3のスピードアップと第1および第2の内部リンクにおける3のスピードアップを用いることにより3のスピードアップを備える一般的対称スイッチファブリックを示す。
一般的に、中間ステージ130における相互接続ネットワークは、任意の相互接続ネットワークでよく、ハイパーキューブ、又はバッチャー−バンヤン相互接続ネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークなどが挙げられる。一実施例において、相互接続ネットワーク131−133は、3つの異なるネットワーク型である。例えば、相互接続ネットワーク131はクロバーネットワーク、相互接続ネットワーク132は、共有メモリネットワーク、及び相互接続ネットワーク133は、ハイパーキューブネットワークでよい。本発明により、中間ステージに使用される相互接続ネットワークの型に関わりなく、中間ステージにおける少なくとも3のスピードアップは、図1Bの調停及びスケジューリング方法40を用いて、スイッチファブリックを厳密なノンブロッキング方式で作動させる。また、中間ステージにおける少なくとも2のスピードアップは、スイッチファブリックを再配置可能なノンブロッキング方式で作動させる。
スイッチファブリックにおけるスピードアップは、相互接続ネットワークの内部スピードアップには関係しないことに注目しなければならない。例えば、クロスバーネットワーク及び共有メモリネットワークは、完全に接続される形態なので、いかなる追加の内部スピードアップをせずに、内部的にノンブロッキングである。例えば、クロスバーネットワーク又は共有メモリネットワークである図1Aのスイッチファブリック10又は図3Bのスイッチファブリック50いずれかの相互接続ネットワーク131−133において、ノンブロッキング方式で作動するために、いずれの相互接続ネットワーク131−133にもスピードアップは必要でない。しかしながら、相互接続ネットワーク131−133が3ステージクロスネットワークであるときは、各3ステージクロスネットワークは、厳密なノンブロッキング方式で作動するためには、3の内部スピードアップを必要とする。中間ステージ相互接続ネットワーク131−133が3ステージクロスネットワークであるスイッチファブリックにおいては、3のスピードアップのスイッチファブリックは、131−133のような3つの異なる3ステージクロスネットワークの形で備えられる。加えて、各3ステージクロスネットワーク131−133も、それらが内部的に厳密にノンブロッキングであるためには、やはり付加的なのスピードアップを必要とする。明らかに、スイッチファブリックのスピードアップは、相互接続ネットワークの内部スピードアップとは異なる。
同様に、中間ステージ131−133における相互接続ネットワークがハイバーキューブネットワークである場合は、一実施例において、ノンブロッキングなネットワークにするためには、(2ノードを備える)d−ランクハイパーキューブにおいて、dの内部スピードアップが必要である。本発明にしたがうと、図1Bの調停及びスケジューリング方法40を使用し、中間ステージにおける少なくとも3のスピードアップにより厳密なノンブロッキング方式で作動させ、また中間ステージにおける少なくとも2のスピードアップを用いて再配置可能なノンブロッキング方式で作動させるためには、中間ステージ相互接続ネットワーク131−133は、内部的にノンブロッキングな任意の相互接続ネットワークでよい。
図4Gを参照すると、図3Dのスイッチファブリック70及び図3Eのスイッチファブリック80の、中間ステージ相互接続131−133の一実施例における4×4ポート(2ランク)ハイパーキューブに基づく相互接続ネットワークの詳細図を示す。4−ノードハイパーキューブメモリには4つのノード、即ち00、01、10、及び11、がある。ノード00は、双方向リンクAを用いてノード01に接続される。ノード01は、双方向リンクBを用いてノード11に接続される。ノード11は、双方向リンクCを用いてノード10に接続される。ノード10は、双方向リンクDを用いてノード00に接続される。また、4つの各ノードは、スイッチファブリックの入力ポート及び出力ポートに接続される。ノード00は、第1内部リンクFL1及び第2内部リンクSL1に接続される。ノード01は、第1内部リンクFL2及び第2内部リンクSL2に接続される。ノード10は、第1内部リンクFL3及び第2内部リンクSL3に接続される。ノード11は、第1内部リンクFL4及び第2内部リンクSL4に接続される。図4Gに示すハイパーキューブネットワーク131又は132が内部的にノンブロッキングであるためには、一実施例において、リンクA、B、C、及びDを両方向に、スイッチファブリックの入口リンク(又は出口リンク)と同一速度か、又はハーパーキューブネットワークのスケジューリング構想により何らかの係数のスピードアップを用いて、作動させることが必要である。本発明にかかるとハイパーキューブについては内部的にノンブロッキング方式で作動すること、及びスイッチファブリックについては、図1Bの調停及びスケジューリングの方法40を用いて少なくとも3のスピードアップを用いる厳密なノンブロッキング方式で作動すること、及び中間ステージにおける少なくとも2のスピードアップを用いて再配置可能なノンブロッキング方式で作動することが必要である。
図4A−4Fは、対称スイッチファブリックの場合のように、同数の第1内部リンクと第2内部リンクを示しているが、本発明をここで、非対称スイッチファブリックに拡張する。一般に、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする(r*r)非対称スイッチファブリックであって、各入力ポートがr個の入力キューを有するr個の入力ポート、各出力ポートがr個の出力キューを有するr個の出力ポート、及びs個のサブネットワークのある少なくとも
Figure 2007528636
のスピードアップを有する相互接続ネットワークを備え、各サブネットワークは、全体で少なくともr個の第1内部リンクのため各入力ポートに接続される第1内部リンク少なくとも1つを備え、各サブネットワークはさらに全体で少なくともr個の第2内部リンクのため各出力ポートに接続される少なくとも1つの第2内部リンクを備えた、対称スイッチファブリックは、本発明にしたがい、r≦rであるときは、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、またパケットのセグメント化及び再組立を必要としないで、レートウェイトに応じてスケジューリングすることにより、厳密なノンブロッキング方式で作動する。別の実施例においては、このスイッチファブリックは、r≦rであるときは多くともr回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、またパケットのセグメント化及び再組立を必要とせず、レートウェイトに応じてスケジューリングすることにより、厳密なノンブロッキング方法で作動する。このスケジューリングは、各マルチキャストパケットが、2つを超えないサブネットワークを介し、2回を超えないスイッチングでファンアウト分割するように実行される。
このような、一般的な非対称スイッチファブリックを、V{s,r,r}と表示する。一実施例においては、システムは調停について1度だけの繰り返しで、相互接続ネットワークにおける数学的に最低限のスピードアップを用いて実行する。このシステムは、100%スループット、作業節約的,公正、さらに決定論的に作動し、それにより出力ポートを決して輻輳させない。図1Bの調停及びスケジューリング方法40は、V{s,r,r}スイッチファブリックにおけるパケットのスケジューリングにも使用される。
図1Bの調停及びスケジューリング方法40は、一般的V{s,r,r}スイッチファブリックをノンブロッキング方式で作動させ、パケットは100%スループット、作業節約的,及び公正な方式でスイッチングされる。スイッチファブリックのスイッチング回数も、柔軟な設計パラメータであって、パケットを各スイッチング時に、バイト毎又は数バイト毎にスイッチングするよう設定することができる。また、本発明において記述した通りに、SARの必要はない。出力キューのない実施例においては、パケットを入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要がある。
一実施例においては、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックV{s,r,r}は、r≦rであるときは多くともr回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、パケットのセグメント化および再組立を必要とせずに、レートウェイトに応じてスケジューリングすることにより、相互接続ネットワークにおいて少なくとも
Figure 2007528636
のスピードアップを用いて再配置可能でノンブロッキング方式で作動する。別の実施例においては、非対称スイッチファブリックV{s,r,r}は、r≦rであるときは多くともr回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、パケットのセグメント化および再組立を必要とせずに、レートウェイトに応じてスケジューリングすることにより、相互接続ネットワークにおいて少なくとも
Figure 2007528636
のスピードアップを用いて再配置可能でノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、2つを超えないサブネットワークを介し、2回を超えないスイッチング回数でファンアウト分割されるように実行される。
同様に、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックV{s,r,r}であって、各入力ポートがr個の入力キューを有するr個の入力ポート、r個の出力ポート、及び少なくとも
Figure 2007528636
のスピードアップを有しs個のサブネットワーク持つ相互接続ネットワークを備え、各サブネットワークは、全体で少なくともr個の第1内部リンクのための各入力ポートに接続される少なくとも1個の第1内部リンクを備え、各サブネットワークはさらに全体で少なくともr個の第2内部リンクのための各出力ポートに接続される少なくとも1個の第2内部リンクを備えた、非対称スイッチファブリックは、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、パケットのセグメント化及び再組立を必要として、レートウェイトに応じてスケジューリングすることにより、本発明にかかる、厳密にノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、2つを超えないサブネットワークを介し、2回を超えないスイッチング回数でファンアウト分割されるように実行される。図1Bの調停及びスケジューリング方法40は、出力キューを使用せずにスイッチファブリックV{s,r,r}においてパケットをスイッチングするのにも使用される。
レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックV{s,r,r}であって、各入力ポートがr個の入力キューを有するr個の入力ポート、r個の出力ポート、及び
Figure 2007528636
のスピードアップを有しs個のサブネットワーク持つ相互接続ネットワークを備え、各サブネットワークは、全体で少なくともr個の第1内部リンクのための各入力ポートに接続される少なくとも1つの第1内部リンクを備え、各サブネットワークはさらに全体で少なくともr個の第2内部リンクのための各出力ポートに接続される少なくとも1つの第2内部リンクを備えた非対称スイッチファブリックは、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともr個のパケットを、決定論的方式で、パケットのセグメント化及び再組立を必要として、ウェイトレートに応じてスケジューリングすることにより、本発明にかかる、再配置可能でノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、2つを超えないサブネットワークを介し、2回を超えないスイッチング回数でファンアウト分割されるように実行される。
出願者はここで、本発明において記述するすべてのスイッチファブリックは、入力ポート対出力ポートのレート及び保証レイテンシを提供することに注目する。エンドツーエンド保証帯域幅、即ち、所望のレートウェイトを持つ任意の入力ポートから任意出力ポートまでの保証帯域幅は、ユニキャスト及びマルチキャストパケットの入力キューの出力キューに対する割当に基づいて提供される。一定の保証レイテンシは、複数の入力ポートから任意の出力ポートへのパケットに提供される。各入力ポートは、宛先出力ポート内のその割当出力キューの中にパケットをスイッチングするので、1つの入力ポートからのパケットは、2番目の入力ポートから同一出力ポート内に別のパケットがスイッチングされるのを妨げないので、すべての入力ポートからのパケットの保証レイテンシは、強化される。スイッチファブリックのスイッチング回数は、各フローにおけるパケットのレイテンシ、及び各パケットのパケットセグメントのレイテンシも判定する。
図5Aは、図1Bの調停及びスケジューリング方法40のアクト44の実施を示す。アクト44においては、r個のパケットのスケジューリングが実行される。アクト44Aにおいては、スケジューリングするパケットがさらに存在するか否かを点検する。さらにスケジューリングするパケットがあるとき、即ち、r個のすべてのパケットがスケジューリングされていないときは、制御は、44B1に移る。アクト44B1においては、r回のスケジューリングのいずれかを介して中間ステージの3つの相互接続ネットワークのうち1つを通る経路が空いているか否かを点検する。答が「イエス」であるとき、制御は、アクト44Cに移る。アクト44B1における答が「ノー」であるとき、制御はアクト44B2に移る。アクト44B2においては、1回のスイッチング時又はr 回のスケジューリングのうち任意の2回のいずれかにおける経路2つと相互接続ネットワークを2つだけを、パケット要求のすべての宛先出力ポートまでの利用可能な経路を確保するように検索する。本発明によれば、パケット要求のすべての宛先出力ポートに対し空いた経路があるように、中間ステージ相互接続ネットワーク2つを見出すことは、常に可能である。次に、制御は44Cに移る。パケットは、アクト44Cにおいて選択された1つの経路又は2つの経路を介してスケジューリングされる。44Dにおいては、同一スケジューリング時に別のパケットがこれらのリンクを選択しないよう、選択した第1及び第2内部リンクに選択済みの標識を付ける。次に、制御は44Aに戻り、こうして44A、44B、44C、及び44Dはループで実行され、各パケットをスケジューリングする。
図5Bは、図5Aの方法44の方法のアクト44B、44C、及び44Dの1つの変形の低レベルフローチャートである。44BA1に対する制御は、スケジューリングすべき新規パケットがあるとき、アクト44Aから移る。アクト44BA1は、新規パケット要求にcを割当て、インデックス変数iは、(1,1)を割当てられ、それぞれスケジューリング時1及び相互接続ネットワーク1を表す。次に、アクト44BA2は、iは(r,3)より大きいか否かを点検する。これは、r回のスケジューリングすべてにおいて、3つの相互接続ネットワークすべてが点検されるか否かを意味する。答が「ノー」であるとき、制御はアクト44BA4に移る。アクト44BA4は、パケット要求cが、スケジューリング時i.1(ここで、i.1はタプルiの第1要素、i.2は第2要素を表す)において、相互接続ネットワークi.2に対する利用可能な第1内部リンクを有しないか否かを点検する。答が「ノー」であるときは、アクト44BA5において、2つのセット、即ちOとOkを生成し、iからの利用可能なリンクを有する宛先スイッチのセットと有しない宛先スイッチのセットをそれぞれ判定する。アクト44BA6においては、Oはパケット要求c の必要とする宛先出力ポートすべてを有するか否かを点検する。答が「イエス」であるときは、制御は44C1に移り、ここでスケジューリング時i.1時の相互接続ネットワークi.2を介して、パケット要求はスケジューリングされる。アクト44D1は、i への出入りに使用した第1及び第2内部リンクに利用不可の標識を付ける。アクト44D1から、制御はアクト44Aに移る。
アクト44BA4における答が「イエス」であるときは、制御はアクト44BA13に移る。アクト44BA13においては、i.2が3未満のときは、i.2を1だけ増加させるようにタプルiを調節して、同一スケジューリング時i.1における次の相互接続ネットワークを点検する。i.2が3に等しいときは、i.1を1だけ増加させるようにタプルiを調節して、次のスケジューリング及び相互接続ネットワーク1を点検する。次に、制御はアクト44BA2に移る。本発明によれば、アクト44BA2は、決してイエスの結果にならないので、アクト44BA3には、決して到達しない。このように、アクト44BA2、44BA4、44BA5、44BA6、44BA7、44BA8、及び44BA13は、二重ネストループの外側ループを形成し、パケット要求c をスケジューリングする。
アクト44BA6が「ノー」の結果になるときは、制御はアクト44BA7に移る。アクト44BA7においては、別のインデックス変数jに、それぞれスケジューリング回数1及び相互接続ネットワーク1を意味する(1,1)が割当てられる。次に、アクト44BA8で、jは(r,3)より大きいか否かを点検する。これは、r回のスケジューリングすべてにおける3つのすべての相互接続ネットワークが点検されるか否かを意味する。答が「ノー」であるとき、制御はアクト44BA9に移る。アクト44BA9においては、iがjに等しいか否か、即ち、i.1はj.1に等しく且つ、i.2もj.2に等しいか否かを点検する。アクト44BA9が「ノー」の結果になるときは、制御はアクト44BA10に移る。アクト44BA10においては、Ojのセットが生成され、jからの利用可能なリンクを有するcの宛先スイッチのセットを判定する。アクト44BA11においては、OkはOjのサブセットであるか否かを点検する。答が「イエス」であるときは、パケット要求cが、タプルi及びjで表示される2つの相互接続ネットワークを介してすべての宛先出力ポートまで、空いた経路を有することを意味する。その場合、アクト44C2において、パケット要求は、パケット要求cの入力ポートにおいて2回ファンアウトすることにより、スケジューリング時i.1の相互接続ネットワークi.2及びスケジューリングj.1の相互接続ネットワークj.2を介してスケジューリングされる。アクト44D2は、使用したi及びj双方に出入する第1及び第2内部リンクに利用不可の標識を付ける。制御は、アクト44D2からアクト44Aに移る。
アクト44BA11が「ノー」の結果になるときは、制御はアクト44BA12に移る。また、アクト44BA9が「ノー」の結果になるときは、制御はアクト44BA12に移る。アクト44BA12においては、j.2が3未満のときは、j.2を1だけ増加させるようにタプルjを調節して、同一スケジューリング時j.1における次の相互接続ネットワークを点検する。j.2が3に等しいときは、j.1を1だけ増加させるようにタプルj を調節して、次のスケジューリング及び相互接続ネットワーク1を点検する。次に制御は、アクト44BA8に移る。また、アクト44BA2が「イエス」の結果になるときは、制御はアクト44BA13に移る。このように、アクト44BA8、44BA9、44BA10、44BA11、及び44BA12は、二重ネストループの内側ループを形成し、パケット要求cをスケジューリングする。
スケジューリング方法の疑似コード
ステップ1: c=現在のパケット要求
ステップ2: i= 各スケジューリングにおける相互接続ネットワークdo{
ステップ3: もし(c にはiに対する利用可能リンクがない)継続;
ステップ4: Oj=iから利用可能なリンクを有するc のすべての宛先出力ポ
ートのセット
ステップ5: Ok=iから利用可能なリンクのないc のすべての宛先出力ポー
トのセット
ステップ6: if(Oj=c 必要とされるすべての宛先出力ポート){
iを介してc をスケジューリング;
使用したiに出入りするすべてのパスに利用不可の標識を付ける

ステップ7: for j= 各スケジューリング時の各相互接続ネットワーク
実行{
ステップ8: if(i=j){
継続;
ステップ9: }else{
j=jから利用可能なリンクを有するc のすべての宛先出力ポ
ートのセット
ステップ10: if(Ok ⊆Oj){
iとjを介してc をスケジューリング;
使用したiとjに出入りするすべての経路に利用不可の標
識を付ける



上記の方法は、図5Aのスケジューリング方法44のアクト44B、44C、及び44Dの一実施例が、r個のパケット要求を、図4A−4Fのスイッチファブリックの中間ステージ130において(3つの相互接続ネットワークを用いるか、又はクロック速度とリンク速度において3のスピードアップのいずれかを用いる)3のスピードアップを用いて、厳密なノンブロッキング方式でスケジューリングする疑似コードを示す。
上記のステップ1は、現在のパケット要求に“c”のラベルを付ける。ステップ2は、二重ネストループの外側ループを開始し、r回のスケジューリングにおいてすべての相互接続ネットワークを通過する。cの入力スイッチに、iで表すスケジューリングの相互接続ネットワークへの利用可能なリンクが無いときは、ステップ3において、iとなるべき、同一スケジューリングにおける次の相互接続ネットワーク、又は次のスケジューリングにおける最初の相互接続ネットワークが選択される。ステップ4及び5は、iからの利用可能なリンクを有するcの宛先出力ポートのセットと有さないcの宛先出力ポートのセットをそれぞれ判定する。ステップ6においては、iで表すスケジューリングにおける相互接続ネットワークが、パケット要求cのすべての宛先出力ポートへの利用可能なリンクを有するときは、iで表すスケジューリングにおける相互接続ネットワークを介してパケット要求cを設定する。また、iで表すスケジューリングにおける相互接続ネットワークの出力ポートまで及び入力ポートからの使用したリンクすべてに、今後の要求のために利用不可の標識が付けられる。ステップ7は、内側ループを開始してスケジューリングにおけるすべての相互接続ネットワークを通過し、スケジューリングにおける第2相互接続ネットワークを検索し、iがjと同一であるときは、ステップ8が、jとなるべき同一スケジューリング時の次の相互接続ネットワーク、又は次のスケジューリング時における最初の相互接続ネットワークの選択を継続する。ステップ9は、jからの利用可能なリンクを有するすべての宛先出力ポートのセットを判定する。そしてステップ10において、iから利用不可のすべてのリンクが、jから利用可能であるときは、i及びjを介してパケット要求cはスケジューリングされる。i及びjから出力ポートへの、使用したすべての経路には、利用不可の標識が付けられる。これらのステップは、r回の各スケジューリングにおいて、すべての相互接続ネットワークのすべてのペアについて繰り返される。r回のスケジューリングのうち1回又は2回における1つ又は2つの相互接続ネットワークは、常に見出すことができ、それを介してcをスケジューリングすることができる。このスケジューリング方法が実行するステップの数は、s*rに比例し、その際mはネットワーク内の中間スイッチの数であり、したがってこのスケジューリング方法は、時間複雑度O(s*r)の性質を持つことに気付くのは容易である。
スイッチファブリックの厳密にノンブロッキングなスケジューリングにおいては、マルチレートパケット要求を入力キューから出力キューへスケジューリングするため、既にスケジューリングされたパケットの経路を妨げることなくその要求を満足する、相互接続ネットワークを介した経路を見出すことは常に可能であり、このような経路が2つ以上利用可能なときは、それらの中の任意の経路を、残りのパケット要求のスケジューリングについて心配することなく選択することができる。厳密なノンブロッキングネットワークにおいては、スイッチハードウエアのコストは上昇するが、パケットをスケジューリングするのに必要な時間は、再配置可能なノンブロッキングスイッチファブリックに比較して減少する。時間複雑度O(s*r)の図5Aのスケジューリング方法44を用いる、中間ステージに3のスピードアップを使用する厳密なノンブロッキングスイッチファブリックの実施例を、図1Aのスイッチファブリック10及び図1Iのスイッチファブリック16に示す。
再配置可能なノンブロッキングスイッチファブリックにおいて、スイッチハードウエアのコストは、パケットをスイッチングするために必要な時間の増加を犠牲に、削減される。再配置可能なノンブロッキングスイッチファブリックにおけるスケジューリング時間は、新規パケットのスケジューリングに加えて、再配置を実施するため分断されたスケジューリング済みのパケットの経路を、再度スケジューリングする必要があるために、増加する。このため、新規パケットをスケジューリングするときは、スケジューリング済みパケットの再配置の必要性を最小限にするか、寧ろ削除するのが望ましい。再配置の必要性が除去されると、そのネットワークは、中間ステージ相互接続ネットワーク及びスケジュール方法次第で、厳密なノンブロッキングである。中間ステージにおいて2のスピードアップを用いる、再配置可能なノンブロッキングスイッチファブリックの一実施例を、図1Nのスイッチファブリック18に示す。要求の生成、許可の発行、及び承認の生成の調停は、スイッチファブリックを厳密なノンブロッキング方式で作動させるか、又は再配置可能ノンブロッキング方式で作動させるかに関わりなく、たった1度の繰り返しで実行されることに注目しなければならない。
本発明に記述する厳密なノンブロッキングスイッチファブリックは、O(s*r)時間複雑度のスケジュール方法を必要とする。中間ステージ相互接続ネットワークにおけるスピードアップをさらに増加すると、スケジュール方法時間複雑度はO(s*r)に減少する。線形スケジューリング時間複雑度を有する厳密なノンブロッキングスイッチファブリックは、上で参照して組込まれる「STRICTLY NON-BLOCKING MULTICAST LINEAR-TIME MULTI-STAGE NETWORKS」と題する,関連米国特許出願番号10/933,899号、並びににそのPCT出願番号04/29043号、及び「STRICTLY NON-BLOCKING MULTICAST MULTI-SPLIT LINEAR-TIME MULTI-STAGE NETWORKS」と題する、関連米国特許出願番号10/933,900号並びにそのPCT出願番号04/29027号、に記述されている。出願者は、スイッチファブリックは、これら2つの関連米国特許の記述にあるように、中間ステージにおけるスピードアップを直接拡大することにより、またそれにより線形時間複雑度のスケジューリング方法を用いることにより、厳密なノンブロッキング方式で作動させることもできることに注目する。
したがって、追加のスピードアップと、それによる線形時間複雑度のスケジューリング方法を用いて、図6Aは、図1Bの調停及びスケジューリング方制御44Bに移す。アクト44B法40のアクト44の、一実施を示す。アクト44においては、r個のパケットのスケジューリングが実行される。アクト44においては、スケジューリングすべきさらなるパケットがあるか否かを点検する。スケジューリングすべきさらなるパケットがあるとき、即ち、r個のすべてのパケットがスケジューリングされていないとき、制御は44Bに移る。アクト44Bにおいては、中間ステージにおける3つの相互接続ネットワークのうち1つを介した空き経路を、r回のスケジューリングを介して検索することにより選択する。パケットは選択された経路及び選択されたスケジューリング回数を介して、アクト44Cにおいて、スケジューリングされる。44Dにおいては、選択された第1内部リンク及び第2内部リンクに、選択済みの標識を付け、同一スケジューリング時に他のパケットがこれらのリンクを選択しないようにする。次に、制御はアクト44Aに戻り、このようにアクト44A、44B、44C、及び44Dがループで遂行され、それぞれのパケットをスケジューリングする。
図6Bは、図6Aのアクト44の一変形の低レベルのフローチャートを示す。アクト44は、スケジューリングする新規パケットがあるとき、1は、新規パケット要求をcに割当てる。アクト44B2においては、スケジューリング回数1がインデックス変数iに割当てられる。次にアクト44B3において、iがスケジューリング回数rより小さいか又は等しいかを点検する。答が「イエス」であるとき、制御は44B4に移る。アクト44B4において、別のインデックス変数jを相互接続ネットワーク1に設定する。アクト44B5は、jは相互接続ネットワーク1−xの何れであるかを点検するが、xの値は関連米国仮特許申請において記述されている通りである。答が「イエス」であるとき、制御はアクト44B6に移る。アクト44B6は、パケット要求c がスケジューリング時iにおいて相互接続ネットワークjへの利用可能な第1内部リンクを全く有しないかを点検する。答が「ノー」であるとき、アクト44B7が、スケジューリング時iにおいて相互接続ネットワークjはパケット要求cの宛先出力ポートへの利用可能な第2内部リンクを全く有しないことを点検する。答が「ノー」であるとき、制御はアクト44Cに移る。アクト44Cにおいて、スケジューリング時iにおける相互接続ネットワークjを介してパケット要求cをスケジューリングし、次に、アクト44Dにおいて、スケジューリング時iにおける相互接続ネットワークjに対応する第1及び第2の内部リンクに、使用済みの標識が付けられる。次に、制御は44Aに進む。アクト44B6又はアクト44B7の何れかにおいて「イエス」の結果となるとき、制御はアクト44B9に移り、そこでjを1だけ増加させてから制御はアクト44B5に進む。アクト44B5において「ノー」の結果となるとき、制御はアクト44B10に移る。アクト44B10は、iを1だけ増加してから、制御はアクト44B3に移る。アクト44B3が「ノー」の結果になることは決してなく、それはパケット要求cが、r回のスケジューリングにおいて、スケジューリングされることが保証されることを意味する。アクト44Bは2つのループを含む。内側ループは、アクト44B5、44B6、44B7、及び44B9を含む。外側ループは、アクト44B3、44B4、44B5、44B6、44B7、44B9、及び44B10を含む。アクト44は、r個のパケット要求すべてがスケジューリングされるまで、すべてのパケット要求について繰り返される。
以下の方法は、図6Aのスケジューリング方法44の一実施例のための、r個のパケット要求を、図4A−4Fのスイッチファブリックにおける中間ステージ130に(3つの相互接続ネットワークを用いるか、又はクロック速度およびリンク速度において3のスピードアップいずれかを用いる)3のスピードアップを用いて、厳密なノンブロッキング方式でスケジューリングする疑似コードを示す。
スケジューリング方法の疑似コード
ステップ1: 各パケット要求のスケジューリング 実行{
ステップ2: c=パケットスケジューリング要求;
ステップ3: for i=shed_time_1 to shed_time_r do{
ステップ4: for j=inter_conn_net_1 tointer_conn_net_x do{
ステップ5:if(c にはjへの利用可能な第1内部リンクがない)継続;
ステップ6:elseif(jにはcの宛先出力ポートへの利用可能な第2内部リンクが
ない)継続;
ステップ7: else{
スケジューリング時1に相互接続ネットワークjを介してc
をスケジューリング;
相互接続ネットワークjに出入する使用済みリンクに利用不
可と標識;



ステップ1は、各パケットをスケジュールするループを開始する。ステップ2は、現在のパケット要求に“c”のラベルを付ける。ステップ3は、第2ループを開始し、r回のスケジューリングすべてを通過する。ステップ4は、第3ループを開始して、x個の相互接続ネットワークすべてを通過する。ステップ5において、パケット要求cの入力ポートが、スケジューリング時iにおいて利用可能な相互接続ネットワークjへの第1内部リンクを有しないときは、制御はステップ4に移って、iとなるべき次の相互接続ネットワークを選択する。ステップ6は、パケット要求cの宛先出力ポートがスケジューリング時iにおいて利用可能な相互接続ネットワークjへの第2内部リンクを有しないか否かを点検し、そうであるときは、制御はステップ4に移って、iとなるべき次の相互接続ネットワークを選択する。ステップ7においては、パケット要求cを、スケジューリング時iにおいて相互接続ネットワークjを介して設定する。また、スケジューリング時iにおける相互接続ネットワークjへの第1および第2内部リンクには、今後のパケット要求のため、利用不可の標識が付けられる。これらのステップは、r回のすべてのスケジューリングにおいてx個のすべての相互接続ネットワークについて、利用可能な第1及び第2内部リンクが見出されるまで、繰り返される。本発明により、それを介してパケット要求cをスケジューリングすることのできる、r回のうちの1回のスケジューリングにおける1つの相互接続ネットワークを、常に見出すことができる。このスケジューリング方法が実行するステップの数は、s*rに比例し、その際sはxに等しいスピードアップ、rはスケジューリング回数の数であり、したがって、このスケジュール方法が、時間複雑度O(s*r)の性質を持つことに気付くのは容易である。
表9に、特定の一実施例において、上述の疑似コードのステップ1−8が図6Bに示す方法のフローチャートの実施方法を示す。
Figure 2007528636
また、本発明により、スイッチファブリックがノンブロッキング方式で作動するため、中間ステージ130に必要なスピードアップの直接の拡張は、出力ポートにスイッチングされる前にパケットに付加された制御ビットの数に応じて比例的に調節される。例えば、(パケットを入力ポートから出力ポートにスイッチングするだけのため、これらの制御ビットを導入する場合に)入力ポートから出力ポートにスイッチングするパケット又はパケットセグメント毎に1%の付加制御ビットを追加すると、スイッチファブリックのため中間ステージ130において必要なスピードアップは、厳密なノンブロッキング方式で作動させるには、3.01であり、再配置可能なノンブロッキング方式で作動させるには2.01である。
同様に、本発明によれば、パケットがセグメント化されて出力ポートにスイッチングされる場合、最後のパケットセグメントは、パケットセグメントと同一であることもないこともある。その代わり、パケットのサイズがパケットセグメントのサイズの完全な倍数でない場合、スイッチファブリックのスループットは100%未満になる。最後のパケットセグメントが頻繁にパケットセグメントより小さい場合は、システムを100%スループットで作動させるため、中間ステージにおけるスピードアップを比例的に増加する必要がある。
本発明のノンブロッキングで決定論的スイッチファブリックは、任意に大きい数の入力キューに直接拡張することができる。即ち、宛先出力ポート内の1つより多い出力キューにスイッチングする1つより多い入力キューを各入力ポート内に備えることができ、すべての入力ポート内の異なるマルチレートマルチキャストフロー、又はマルチレートマルチキャストのマイクロフローのグループを保持する各入力キューが、レート及び保証レイテンシを有するフロー毎のQoSを提供することができる。エンドツーエンド保証帯域幅、即ち、入力ポートの様々な入力キューにおける複数のマルチレートマルチキャストの、任意の宛先出力ポートへのフローを提供することができる。その上、保証された一定のレイテンシを、入力ポートにおける複数の入力キューから任意の宛先出力ポートへのパケットのフローに提供する。入力ポートにおける各入力キューは様々なフローを保持しているが、パケットを同一宛先出力ポートの中にスイッチングするので、1つの入力キューからの長いパケットは、同一入力ポートの第2の入力キューからの別の小さいパケットが同一宛先出力ポートの中にスイッチングされるのを妨げない。こうして、入力ポートからのパケットのフローのレイテンシ保証を強化する。ここでも、スイッチファブリックのスイッチング回数が、各フローにおけるパケットのレイテンシ及び各パケット内のパケットセグメントのレイテンシを判定する。
入力キューから出力ポートの中に別個にスイッチングされるマルチレートマルチキャストのフローの数を増加させることにより、エンドツーエンド保証帯域幅、及びレイテンシを、細かい粒度のフローのため提供することができる。その上、多数の細かい粒度のフローにより、マルチキャストフローのレートウェイトをさらに粒度の細かいレートで提供することもできる。また、各フローを個別に形成することもでき、必要に応じて、予約過多の状況下では、予測して所望のフローからパケットの末尾廃棄(tail dropping)し、サービスプロバイダに、個々のフローに対しレートとレイテンシ保証とを提案する機会を与え、それにより追加の収入の機会を可能にする。
ここに記述した実施例、実施、及び模範例に関する多数の変更及び翻案は、開示の観点から当業者には明らかであろう。
本発明に記述する実施例は、パラレルコンピュータ、ビデオサーバ、負荷バランサ、及びグリッド計算アプリケーションの用途においても直接有用である。本発明に記述する実施例は、ハイブリッドスイッチ、及びルータにおいて、回路スイッチタイムスロットおよび、パケットスイッチパケット又はセルでスイッチングするのにも有用である。
このような多数の変更及び翻案は、添付請求項に包含される。
本発明にかかる、短いパケット及び、クロスバーに基づく相互接続ネットワークにおける3のスピードアップを含む入力及び出力マルチレートマルチキャストキューを有する模範的な4×4ポートのスイッチファブリックの図である。 パケットを入力ポートから出力ポートにスイッチングするのに使用される、本発明にかかる、調停及びスケジューリング方法40の高レベルフローチャートである。 図1Aのスケジューリングスイッチファブリック10おける場合と同様の3ステージネットワークの図である。 本発明にかかる連続する5回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図1Aのスイッチファブリック10の状態を示す。 本発明にかかる連続する5回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図1Aのスイッチファブリック10の状態を示す。 本発明にかかる連続する5回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図1Aのスイッチファブリック10の状態を示す。 本発明にかかる連続する5回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図1Aのスイッチファブリック10の状態を示す。 本発明にかかる連続する5回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図1Aのスイッチファブリック10の状態を示す。 本発明にかかる、長いパケット及び、クロスバーに基づく相互接続ネットワークにおける3のスピードアップを含む、入力及び出力マルチレートマルチキャストキューを有する模範的な4×4ポートのスイッチファブリックの図である。 本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する4回のファブリックスイッチングサイクル後における、図1Iのスイッチファブリック16の状態を示す。 本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する4回のファブリックスイッチングサイクル後における、図1Iのスイッチファブリック16の状態を示す。 本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する4回のファブリックスイッチングサイクル後における、図1Iのスイッチファブリック16の状態を示す。 本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する4回のファブリックスイッチングサイクル後における、図1Iのスイッチファブリック16の状態を示す。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおける3のスピードアップを有する模範的な4×4ポートスイッチファブリックの図である。 本発明にかかる、入力マルチレートマルチキャストキュー、及びクロスバーに基づく相互接続ネットワークにおける3のスピードアップを有する模範的な4×4ポートのスイッチファブリックの図である。 本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する5回のスイッチング時における図2Aのスイッチファブリック20の状態を示す。 本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する5回のスイッチング時における図2Aのスイッチファブリック20の状態を示す。 本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する5回のスイッチング時における図2Aのスイッチファブリック20の状態を示す。 本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する5回のスイッチング時における図2Aのスイッチファブリック20の状態を示す。 本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する5回のスイッチング時における図2Aのスイッチファブリック20の状態を示す。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおけるリンク速度とクロック速度が3のスピードアップを有する模範的な4×4ポートのスイッチファブリック図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおける3のスピードアップを有する模範的な4×4ポートのスイッチファブリックの図である。 本発明にかかる入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおけるリンク速度とクロック速度における3のスピードアップを有する模範的な4×4ポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、ハイパーキューブに基づく相互接続ネットワークにおける3のスピードアップを有する模範的な4×4ポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、ハイパーキューブに基づく相互接続ネットワークにおけるリンク速度およびクロック速度が3のスピードアップを有する模範的な4×4ポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおける3のスピードアップを有する一般的r*rポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおいて、リンク速度とクロック速度が3のスピードアップを有する、一般的r*rポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにける3のスピードアップを有する一般的r*rポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおいて、リンク速度とクロック速度が3のスピードアップを有する一般的r*rポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、3ステージクロスネットワークに基づく相互接続ネットワークにおける3のスピードアップを有する一般的r*rポートスイッチファブリックの図である。 本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、3ステージクロスネットワークに基づく相互接続ネットワークにおける、リンク速度とクロック速度が3のスピードアップを有する一般的r*rポートスイッチファブリックの図である。 図3Dのスイッチファブリック70及び図3Eのスイッチファブリック80における中間ステージ相互接続ネットワーク131−133の一実施例における4×4ポート(2−ランク)ハイパーキューブに基づく相互接続ネットワークの詳細図を示す。 図1Bの調停及びスケジューリング方法40のアクト44の中間レベル実施である。 図5Aのアクト44の一変形の低レベルのフローチャートである。 線形時間複雑度スケジューリング方法を用いる図1Bの調停及びスケジューリング方法40のアクト44の中間レベルの実施である。 図6Aのアクト44の一変形の低レベルのフローチャートである。

Claims (122)

  1. 複数の入力ポートと複数の出力ポートとを有する相互接続ネットワークを介して、各パケットが指定出力ポートとレートウェイトとを有するマルチレートマルチキャストパケットをスケジューリングするシステムであって、
    前記各入力ポートにおける複数の入力キューであって、前記マルチレートマルチキャストパケットを有する入力キューと、
    前記各入力ポートが、前記指定出力ポートに対し、多くとも前記各入力ポートにおける入力キューの数と同数の前記マルチレートマルチキャストパケットのサービスを要求する手段と、
    前記各出力ポートが、複数の要求を許可するための手段と、
    前記各入力ポートが、多くとも前記入力キューと同数の許可を承認するための手段と、
    多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可を有する前記各入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングする手段とを含むことを特徴とするシステム。
  2. 前記各出力ポートにあり、前記相互接続ネットワークを通じて前記マルチレートマルチキャストパケットを受信する複数の出力キューと、
    前記各出力ポートが、多くとも前記出力キューと同数の要求を許可する手段と、
    多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可およびを出力キューの数と同数の前記マルチレートマルチキャストパケット有する前記各入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングする手段とをさらに含むことを特徴とする、請求項1に記載のシステム。
  3. 前記相互接続ネットワークは、ノンブロッキング相互接続ネットワークであることを特徴とする、請求項1に記載のシステム。
  4. 前記ノンブロッキング相互接続ネットワークは、少なくとも3のスピードアップを含むことを特徴とする、請求項3に記載のシステム。
  5. 前記スピードアップは、
    並列性の手段、即ち、前記相互接続ネットワークを、少なくとも3回物理的に複製し、前記各入力ポート、および前記各出力ポートからの別個のリンクにより接続する手段、または、
    前記入力ポートと前記相互接続ネットワークとの間、および前記出力ポートと前記相互接続ネットワークとの間のリンク帯域幅において、また前記相互接続ネットワークのクロック速度においても、少なくとも3のスピードアップをする手段により実現することを特徴とする、請求項4に記載のシステム。
  6. さらに、前記ノンブロッキング相互接続ネットワークを介して、マルチレートマルチキャストパケットの経路を、別のマルチレートマルチキャストパケットのため既に選択された経路を決して変更しないことにより、常に選択可能であることを特徴とする請求項4に記載のシステムであって、
    以後、前記相互接続ネットワークを「厳密なノンブロッキングネットワーク」と称する、前記システム。
  7. 前記ノンブロッキング相互接続ネットワークは、少なくとも2のスピードアップを含むことを特徴とする、請求項3に記載のシステム。
  8. 前記スピードアップを、
    並列性の手段、即ち、前記相互接続ネットワークを、少なくとも2回物理的に複製し、前記各入力ポート、および前記各出力ポートからの別個のリンクにより接続する手段、または、
    前記入力ポートと前記相互接続ネットワークとの間、および前記出力ポートと前記相互接続ネットワークとの間のリンク帯域幅において、また前記相互接続ネットワークのクロック速度においても、少なくとも2のスピードアップをする手段により実現することを特徴とする、請求項7に記載のシステム。
  9. さらに、前記ノンブロッキング相互接続ネットワークを介して、マルチレートマルチキャストパケットの経路を、必要なときは、別のマルチレートマルチキャストパケットのため既に選択した経路を変更することにより、常に選択可能であることを特徴とする、請求項7に記載のシステムであって、
    以後、前記相互接続ネットワークを「再配置可能なノンブロッキングネットワーク」と称する、前記システム。
  10. 既にスケジューリングされた前記パケットのスケジュールを保持する前記スケジューリング手段に結合されたメモリを、さらに含むことを特徴とする、請求項1に記載のシステム。
  11. 既にスケジューリングされた前記パケットのスケジュールを保持する前記スケジューリング手段に結合されたメモリを、さらに含むことを特徴とする、請求項2に記載のシステム。
  12. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、1度の繰り返しのみで実行することを特徴とする、請求項1に記載のシステム。
  13. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、1度の繰り返しのみで実行することを特徴とする、請求項2に記載のシステム。
  14. 前記パケットは、実質的に同一サイズであることを特徴とする、請求項1に記載のシステム。
  15. 前記入力ポートにおいて行頭ブロッキングが、ユニキャストパケットおよびマルチキャストパケットの双方に関して完全に削除されることを特徴とする、請求項1に記載のシステム。
  16. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項1に記載のシステム。
  17. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項2に記載のシステム。
  18. 前記スケジューリング手段は、スイッチング時に多くとも1個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項1に記載のシステム。
  19. 前記スケジューリング手段は、スイッチング時に多くとも1個のパケットを、承認された許可および多くとも1個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項2に記載のシステム。
  20. 前記各出力ポートは、前記パケットが少なくとも1つある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するよう作動することを特徴とする、請求項1に記載のシステムであって、
    以後、前記システムは「作業節約システム」と称する、前記システム。
  21. 前記各出力ポートは、前記パケットが少なくとも1つある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するよう作動することを特徴とする、請求項2に記載のシステムであって、
    以後、前記システムは「作業節約システム」と称する、前記システム。
  22. 前記各出力ポートは、
    2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも1個のパケットを受信するよう作動可能であり、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項1に記載のシステム。
  23. 前記各出力ポートは、
    2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも1個のパケットを受信するよう作動可能であり、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項2に記載のシステム。
  24. 前記入力キューの1つからのパケットは、
    それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないように作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項1に記載のシステムシステム。
  25. 前記入力キューのうち1つからのパケットは、
    それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの1つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項2に記載のシステムシステム。
  26. 前記各入力キューの行頭にある前記調停承認パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項1に記載のシステムであって、
    以後、前記システムは「公正なシステム」と称する、前記システム。
  27. 前記各入力キューの行頭にある前記調停承認パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項2に記載のシステムであって、
    以後、前記システムは「公正なシステム」と称する、前記システム。
  28. 前記相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク、又はネットワークのネットワークであることを特徴とする、請求項1に記載のシステム。
  29. 前記システムは、100%スループットで作動することを特徴とする、請求項1に記載のシステム。
  30. 前記システムは、100%スループットで作動することを特徴とする、請求項2に記載のシステム。
  31. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項1に記載のシステム。
  32. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項2に記載のシステム。
  33. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項1に記載のシステム。
  34. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項2に記載のシステム。
  35. 前記システムは、前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項1に記載のシステム。
  36. 前記システムは、前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項2に記載のシステム。
  37. 複数の入力ポートと複数の出力ポートとを有する相互接続ネットワークを介し、マルチレートマルチキャストパケットをスケジューリングする前記方法であって、前記各入力ポートは、複数のキューを含み、前記パケットは、それぞれ少なくとも1つの指定出力ポートとレートウェイトとを有する前記方法において、
    多くとも前記各入力ポートにおける入力キューの数と同数の前記マルチレートマルチキャストパケットのための前記指定出力ポートから前記各入力ポートに対してサービスを要求するステップと、
    前記各出力ポートに対して、複数の要求を許可するステップと、
    多くとも前記入力キューの数と同数の許可を、前記各入力ポートに対して承認するステップと、
    多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可を有する前記入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングするステップと、の各ステップを含むことを特徴とする方法。
  38. 前記各出力ポートに複数の出力キューを備え;
    前記各出力ポートが多くとも前記出力キューの数と同数の要求を許可するステップと、
    多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可および出力キューの数と同数の前記マルチキャストパケットを有する前記入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングするステップと、の各ステップをさらに含むことを特徴とする、請求項37に記載の方法。
  39. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、入力ポートによる前記許可の承認とは、1度の繰り返しのみで実行されることを特徴とする、請求項37に記載の方法。
  40. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、入力ポートによる前記許可の承認とは、1度の繰り返しのみで実行されることを特徴とする、請求項38に記載の方法。
  41. 前記パケットは、実質的に同一サイズであることを特徴とする、請求項37に記載の方法。
  42. 前記入力ポートにおいて行頭ブロッキングが完全に削除されることを特徴とする、請求項37に記載の方法。
  43. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項37に記載の方法。
  44. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項38に記載の方法。
  45. 前記スケジューリングは、スイッチング時に多くとも1個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項37に記載の方法。
  46. 前記スケジューリングは、スイッチング時に多くとも1個のパケットを、承認された許可と多くとも1個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対してスケジューリングすることを特徴とする、請求項38に記載のシステム。
  47. 前記各出力ポートは、少なくとも前記1個のパケットがある限り、スイッチング時に少なくとも1個のパケットを、その出力ポートを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項37に記載の方法。
  48. 前記各出力ポートは、少なくとも前記1個のパケットがある限り、スイッチング時に少なくとも1個のパケットを、その出力ポートを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項38に記載の方法。
  49. 前記各出力ポートは、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも1個のパケットを受信するよう作動可能であり、
    それにより、相互接続ネットワークにおけるスピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項37に記載の方法。
  50. 前記各出力ポートは、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも1個のパケットを受信するよう作動可能であり、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項38に記載の方法。
  51. 前記入力キューの1つからのパケットは、
    それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項37に記載の方法。
  52. 前記入力キューのうち1つからのパケットは、
    それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの1つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項38に記載の方法。
  53. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項37に記載の方法。
  54. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項38に記載方法。
  55. 前記方法は、100%スループットでスケジューリングすることを特徴とする、請求項37に記載の方法。
  56. 前記方法は、100%スループットでスケジューリングすることを特徴とする、特徴とする請求項38に記載の方法。
  57. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項37に記載の方法。
  58. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項38に記載の方法。
  59. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項37に記載の方法。
  60. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項38に記載の方法。
  61. マルチレートマルチキャストパケットを、相互接続ネットワークを介して、スケジューリングするシステムであって、
    前記各パケットが指定出力ポートとレートウェイトとを有するr個の入力ポートおよびr個の出力ポートと、
    前記r個の各入力ポートにある、前記パケットを含むr個の入力キューと、
    s≧1個のサブネットワークを含む前記相互接続ネットワークであって、各サブネットワークは、全体でr個の第1内部リンクのために各入力ポートに接続される、少なくとも1つのリンク(以後、「第1内部リンク」と称する)を備え、各サブネットワークはさらに、全体でr個の第2内部リンクのために各出力ポートに接続される、少なくとも1つのリンク(以後、「第2内部リンク」と称する)を備えた前記相互接続ネットワークと、
    前記各入力ポートが、その各入力ポートからの、多くともr個の前記マルチレートマルチキャストパケットに対し、前記指定出力ポートからのサービスを要求する手段と、
    前記各出力ポートが、複数の要求を許可する手段と、
    前記各入力ポートが、多くともr個のパケットの許可を承認する手段と、
    多くともr個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングする手段と、を備えたことを特徴とするシステム。
  62. 前記r個の各出力ポートにあるr個の出力キューであって、前記相互接続ネットワークを介してマルチレートマルチキャストパケットを受信する前記出力キューと、
    s≧1個のサブネットワークを備え、各サブネットワークは、各入力ポートに対し全体で少なくともr個の第1内部リンクのための接続される少なくとも1つのリンク(以後、「第1内部リンク」と称する)を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともr個の第2内部リンクのために接続される少なくとも1つのリンク(以後、「第2内部リンク」と称する)を備えた前記相互接続ネットワークと、
    前記各出力ポートが、多くともr個のパケットを許可する手段と、
    ≦rであるときは、多くともr個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、r≦rであるときは、多くともr個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジューリングする手段と、をさらに備えたことを特徴とする、請求項61に記載のシステム。
  63. 前記相互接続ネットワークは、ノンブロッキング相互接続ネットワークであることを特徴とする、請求項61に記載のシステム。
  64. サブネットワークは、
    Figure 2007528636
    個であり、
    さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して、既に選択された経路を決して変更しないことにより、マルチレートマルチキャストパケットに対し、経路が常に選択可能である
    ことを特徴とする、請求項63に記載のシステムであって、
    以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
  65. サブネットワークは、s≧1個であり、
    前記第1内部リンクと前記第2内部リンクとの双方が、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも3倍速く作動することと、
    前記サブネットワークが、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも3倍速く作動することと、
    さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して、既に選択された経路を決して変更しないことにより、マルチレートマルチキャストパケットに対し、経路が常に選択可能である請求項63に記載のシステムであって、
    以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
  66. サブネットワークは、
    Figure 2007528636
    個であり、
    さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して既に選択された経路を、必要であれば変更することにより、マルチレートマルチキャストパケットに対し経路が常に選択可能である請求項63に記載のシステムであって、
    以後、前記相互接続ネットワークは「再配置可能なノンブロッキングネットワーク」と称する、前記システム。
  67. サブネットワークは、s≧1個であり、
    前記第1内部リンクと前記第2内部リンクとの双方が、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも2倍速く作動することと、
    前記サブネットワークが、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも2倍速く作動することと、
    さらに、前記ノンブロッキングな相互接続ネットワークを介して、別のマルチレートマルチキャストパケットのため既に選択された経路を、必要であれば変更することにより、マルチレートマルチキャストパケットに対し経路が常に選択可能であることを特徴とする、請求項63に記載のシステムであって、
    以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
  68. 前記スケジューリングの手段に結合されるメモリをさらに含み、既にスケジューリングされた前記パケットを保持することを特徴とする、請求項61に記載のシステム。
  69. 前記スケジューリングの手段に結合されるメモリをさらに含み、既にスケジューリングされた前記パケットを保持することを特徴とする、請求項62に記載のシステム。
  70. 調停、即ち、前記入力ポートによるサービスの要求と、前記出力ポートによる要求の許可と、前記入力ポートによる許可の承認とは、1度の繰り返しのみで実行されることを特徴とする、請求項61に記載のシステム。
  71. 調停、即ち、前記入力ポートによるサービスの要求と、前記出力ポートによる要求の許可と、前記入力ポートによる許可の承認とは、1度の繰り返しのみで実行されることを特徴とする、請求項62に記載のシステム。
  72. =r=rであり、
    前記スケジューリングのための手段が、多くともr個のパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、許可を承認されて前記許可に結合する前記各出力ポートに対してスケジューリングすることを特徴とする、請求項61に記載のシステム。
  73. =r=rであり、
    前記スケジューリングの手段が、多くともr個の承認された許可を有するパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、スケジューリングすることを特徴とする、請求項62に記載のシステム。
  74. 前記パケットは、実質的に同一サイズであることを特徴とする、請求項61に記載のシステム。
  75. 前記入力ポートにおいて行頭ブロッキングが完全に削除されることを特徴とする、請求項61に記載のシステム。
  76. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項61に記載のシステム。
  77. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項62に記載のシステム。
  78. 前記スケジューリング手段は、スイッチング時に多くとも1個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キューに対しスケジューリングすることを特徴とする、請求項61に記載のシステム。
  79. 前記スケジューリング手段は、スイッチング時に多くとも1個のパケットを、承認された許可および多くとも1個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キューに対しスケジューリングすることを特徴とする、請求項62に記載のシステム。
  80. 前記各出力ポートは、少なくとも前記1個のパケットがある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項61に記載のシステムであって、
    以後、前記システムは「作業節約システム」と称する、前記システム。
  81. 前記各出力ポートは、少なくとも前記1個のパケットがある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項62に記載のシステムであって、
    以後、前記システムは「作業節約システム」と称する、前記システム。
  82. 前記各出力ポートは、
    スイッチング時に、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも1個のパケットを受信するように作動し、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項61に記載のシステム。
  83. 前記各出力ポートは、
    スイッチング時に、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも1個のパケットを受信するように作動し、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項62に記載のシステム。
  84. 前記入力キューの1つからのパケットは、
    それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項61に記載のシステム。
  85. 前記入力キューのうち1つからのパケットは、
    それらが前記相互接続ネットワークを通じて前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの1つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項62に記載のシステム。
  86. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項61に記載のシステムであって、
    以後、前記システムは「公正なシステム」と称する、前記システム。
  87. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項62に記載のシステムであって、
    以後、前記システムは「公正なシステム」と称する、前記システム。
  88. 前記相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク、又はネットワークのネットワークであることを特徴とする、請求項61に記載のシステム。
  89. 前記システムは、100%スループットで作動することを特徴とする、請求項61に記載のシステム。
  90. 前記システムは、100%スループットで作動することを特徴とする、請求項62に記載のシステム。
  91. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項61に記載のシステム。
  92. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項62に記載のシステム。
  93. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項61に記載のシステム。
  94. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項62に記載のシステム。
  95. 前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項61に記載のシステム。
  96. 前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項62に記載のシステム。
  97. 相互接続ネットワークを介したマルチレートマルチキャストパケットのスケジューリングの方法であって、
    前記各パケットが少なくとも1つの宛先出力ポートとレートウェイトとを有するr個の入力ポートおよびr個の出力ポートと、
    前記r個の各入力ポートにある、前記パケットを備えたr個の入力キューと、
    s≧1個のサブネットワークを備えた前記相互接続ネットワークであって、各サブネットワークは、各入力ポート対し全体で少なくともr個の第1内部リンクのため接続される、少なくとも1つのリンク(以後、「第1内部リンク」と称する)を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともr個の第2内部リンクのため接続される、少なくとも1つのリンク(以後、「第2内部リンク」と称する)を備えた相互接続ネットワークとを有し、
    前記方法は、前記各入力ポートに対する、前記指定出力ポートからの、多くともr個の前記マルチレートマルチキャストパケットのサービスを要求するステップと、
    前記各出力ポートに対する、複数の要求を許可するステップと、
    前記各入力ポートに対する、多くともr個のパケットに許可を承認するステップと、
    多くともr個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも2回ファンアウト分割することによりスケジュールするステップと、の各ステップを含むことを特徴とする方法。
  98. 個の前記各出力ポートにあるr個の出力キューであって、前記相互接続ネットワークを介してマルチレートマルチキャストパケットを受信する前記出力キューと、
    s≧1個のサブネットワークを備えた前記相互接続ネットワークであって、各サブネットワークは、各入力ポート対し全体で少なくともr個の第1内部リンクのため接続される、少なくとも1つのリンク(以後、「第1内部リンク」と称する)を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともr個の第2内部リンクのため接続される、少なくとも1つのリンク(以後、「第2内部リンク」と称する)を備えた相互接続ネットワークと、
    前記各出力ポートに対し、多くともr個のパケットを許可するステップと、
    ≦rであるときは多くともr個の、承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、r≦rであるときは多くともr個の、承認された許可を有する前記マルチレートマルチキャストパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも2倍にファンアウト分割することにより、スケジュールするステップと、の各ステップをさらに備えたことを特徴とする請求項97に記載の方法。
  99. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、1度の繰り返しのみで実行することを特徴とする、請求項97に記載の方法。
  100. 調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、1度の繰り返しのみで実行することを特徴とする、請求項98に記載の方法。
  101. =r=rであり、
    前記スケジューリングは、承認された許可を有する多くともr個のパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項97に記載の方法。
  102. =r=rであり、
    前記スケジューリングは、承認された許可を有する多くともr個のパケットを、多くともr回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項98に記載の方法。
  103. 前記パケットは、実質的に同一サイズであることを特徴とする、請求項97に記載の方法。
  104. 前記入力ポートにおける行頭ブロッキングは、ユニキャストパケットおよびマルチキャストパケットの双方について完全に削除されることを特徴とする、請求項97に記載の方法。
  105. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項97に記載の方法。
  106. 前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項98に記載の方法。
  107. 前記スケジューリングは、スイッチング時に多くとも1個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項97に記載の方法。
  108. 前記スケジューリングは、スイッチング時に多くとも1個のパケットを、承認された許可および多くとも1個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項98に記載の方法。
  109. 前記各出力ポートは、少なくとも1つの前記パケットがある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項97に記載の方法。
  110. 前記各出力ポートは、少なくとも1つの前記パケットがある限り、スイッチング時に少なくとも1個のパケットを、それを宛先とする前記入力キューのいずれか1つから受信するように作動することを特徴とする、請求項98に記載の方法。
  111. 前記各出力ポートは、
    スイッチング時に、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも1個のパケットを受信するように作動し、
    それにより、相互接続ネットワークにおける前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用し、前記出力ポートは決して輻輳しないことを特徴とする、請求項97に記載の方法。
  112. 前記各出力ポートは、
    スイッチング時に、2つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも1個のパケットを受信するように作動し、
    それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用し、前記出力ポートは決して輻輳しないことを特徴とする、請求項98に記載の方法。
  113. 前記入力キューの1つからのパケットは、
    それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、ことを特徴とする請求項97に記載の方法。
  114. 前記入力キューのうち1つからのパケットは、それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの1つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
    それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項98に記載の方法。
  115. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある前記入力キューの数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項97に記載の方法。
  116. 前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある前記入力キューの数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項98に記載の方法。
  117. 前記方法は、前記パケットを100%スループットでスケジューリングすることを特徴とする、請求項97に記載の方法。
  118. 前記方法は、前記パケットを100%スループットでスケジューリングすることを特徴とする、請求項98に記載の方法。
  119. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項97に記載の方法。
  120. 前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項98に記載の方法。
  121. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供するように作動することを特徴とする、請求項97に記載の方法。
  122. 複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供するように作動することを特徴とする、請求項98に記載の方法。

JP2006538329A 2003-10-30 2004-10-29 ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング Pending JP2007528636A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51598503P 2003-10-30 2003-10-30
PCT/US2004/036052 WO2005048501A2 (en) 2003-10-30 2004-10-29 Nonblocking and deterministic multirate multicast packet scheduling

Publications (1)

Publication Number Publication Date
JP2007528636A true JP2007528636A (ja) 2007-10-11

Family

ID=34590123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006538329A Pending JP2007528636A (ja) 2003-10-30 2004-10-29 ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング

Country Status (6)

Country Link
US (1) US20070053356A1 (ja)
EP (1) EP1690394A2 (ja)
JP (1) JP2007528636A (ja)
CA (1) CA2544411A1 (ja)
IL (1) IL175268A0 (ja)
WO (1) WO2005048501A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050111356A1 (en) * 2003-11-25 2005-05-26 Whittaker Stewart Mark A. Connection controller
US7539190B2 (en) * 2004-01-05 2009-05-26 Topside Research, Llc Multicasting in a shared address space
DE602006008324D1 (de) * 2005-09-13 2009-09-17 Ibm Verfahren und vorrichtung zur koordination von unicast- und multicast-verkehr in einer verbindungsstruktur
US8687628B2 (en) * 2006-03-16 2014-04-01 Rockstar Consortium USLP Scalable balanced switches
US20070248111A1 (en) * 2006-04-24 2007-10-25 Shaw Mark E System and method for clearing information in a stalled output queue of a crossbar
US8121122B2 (en) 2006-08-23 2012-02-21 International Business Machines Corporation Method and device for scheduling unicast and multicast traffic in an interconnecting fabric
US20080137666A1 (en) * 2006-12-06 2008-06-12 Applied Micro Circuits Corporation Cut-through information scheduler
US8761188B1 (en) * 2007-05-01 2014-06-24 Altera Corporation Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs
US8170040B2 (en) * 2007-05-25 2012-05-01 Konda Technologies Inc. Fully connected generalized butterfly fat tree networks
US20090161590A1 (en) * 2007-12-19 2009-06-25 Motorola, Inc. Multicast data stream selection in a communication system
US8060729B1 (en) 2008-10-03 2011-11-15 Altera Corporation Software based data flows addressing hardware block based processing requirements
US8995456B2 (en) * 2009-04-08 2015-03-31 Empire Technology Development Llc Space-space-memory (SSM) Clos-network packet switch
CN101562737B (zh) * 2009-05-19 2010-12-29 华中科技大学 一种对等直播系统中多码率调度方法
US8675673B2 (en) * 2009-07-29 2014-03-18 New Jersey Institute Of Technology Forwarding cells of partitioned data through a three-stage Clos-network packet switch with memory at each stage
US8274988B2 (en) * 2009-07-29 2012-09-25 New Jersey Institute Of Technology Forwarding data through a three-stage Clos-network packet switch with memory at each stage
CN102281183B (zh) * 2010-06-09 2015-08-26 中兴通讯股份有限公司 处理网络拥塞的方法、装置和核心网络实体
US9166928B2 (en) * 2011-09-30 2015-10-20 The Hong Kong University Of Science And Technology Scalable 3-stage crossbar switch
US9471537B2 (en) 2013-03-14 2016-10-18 Altera Corporation Hybrid programmable many-core device with on-chip interconnect
US9471388B2 (en) 2013-03-14 2016-10-18 Altera Corporation Mapping network applications to a hybrid programmable many-core device
US9577956B2 (en) * 2013-07-29 2017-02-21 Oracle International Corporation System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US10320677B2 (en) 2017-01-02 2019-06-11 Microsoft Technology Licensing, Llc Flow control and congestion management for acceleration components configured to accelerate a service
US10326696B2 (en) * 2017-01-02 2019-06-18 Microsoft Technology Licensing, Llc Transmission of messages by acceleration components configured to accelerate a service
US10425472B2 (en) 2017-01-17 2019-09-24 Microsoft Technology Licensing, Llc Hardware implemented load balancing
CN110115011B (zh) * 2017-03-06 2021-02-05 华为技术有限公司 组播业务处理方法及接入设备
US10911366B2 (en) * 2017-06-30 2021-02-02 Intel Corporation Technologies for balancing throughput across input ports of a multi-stage network switch
US10708127B1 (en) * 2017-12-29 2020-07-07 Arista Networks, Inc. Low-latency network switching device with latency identification and diagnostics

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0484597B1 (en) * 1990-11-06 1995-08-30 Hewlett-Packard Company Multicast switch circuits and method
US5267235A (en) * 1992-05-21 1993-11-30 Digital Equipment Corporation Method and apparatus for resource arbitration
US5299190A (en) * 1992-12-18 1994-03-29 International Business Machines Corporation Two-dimensional round-robin scheduling mechanism for switches with multiple input queues
US5541914A (en) * 1994-01-19 1996-07-30 Krishnamoorthy; Ashok V. Packet-switched self-routing multistage interconnection network having contention-free fanout, low-loss routing, and fanin buffering to efficiently realize arbitrarily low packet loss
US5862137A (en) * 1995-07-19 1999-01-19 Fujitsu Network Communications, Inc. Point-to-multipoint arbitration
US6212182B1 (en) * 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US5768257A (en) * 1996-07-11 1998-06-16 Xylan Corporation Input buffering/output control for a digital traffic switch
US5870396A (en) * 1996-12-31 1999-02-09 Northern Telecom Limited Output queueing in a broadband multi-media satellite and terrestrial communications network
JPH10254843A (ja) * 1997-03-06 1998-09-25 Hitachi Ltd クロスバスイッチ、該クロスバスイッチを備えた並列計算機及びブロードキャスト通信方法
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
US6125112A (en) * 1998-03-23 2000-09-26 3Com Corporation Non-buffered, non-blocking multistage ATM switch
US6351466B1 (en) * 1998-05-01 2002-02-26 Hewlett-Packard Company Switching systems and methods of operation of switching systems
US6667984B1 (en) * 1998-05-15 2003-12-23 Polytechnic University Methods and apparatus for arbitrating output port contention in a switch having virtual output queuing
US6212194B1 (en) * 1998-08-05 2001-04-03 I-Cube, Inc. Network routing switch with non-blocking arbitration system
US6611519B1 (en) * 1998-08-19 2003-08-26 Swxtch The Rules, Llc Layer one switching in a packet, cell, or frame-based network
JP3735471B2 (ja) * 1998-10-05 2006-01-18 株式会社日立製作所 パケット中継装置およびlsi
US6477169B1 (en) * 1999-05-14 2002-11-05 Nortel Networks Limited Multicast and unicast scheduling for a network device
KR100382142B1 (ko) * 2000-05-19 2003-05-01 주식회사 케이티 단순반복매칭을 이용한 입출력버퍼형 스위치의 셀스케줄링 방법
US7224671B2 (en) * 2000-09-28 2007-05-29 Force10 Networks, Inc. Method and apparatus for load balancing in network processing device
US6940851B2 (en) * 2000-11-20 2005-09-06 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
JP4320980B2 (ja) * 2001-06-19 2009-08-26 株式会社日立製作所 パケット通信装置
US20030048792A1 (en) * 2001-09-04 2003-03-13 Qq Technology, Inc. Forwarding device for communication networks
US8432927B2 (en) * 2001-12-31 2013-04-30 Stmicroelectronics Ltd. Scalable two-stage virtual output queuing switch and method of operation
US7154885B2 (en) * 2001-12-31 2006-12-26 Stmicroelectronics Ltd. Apparatus for switching data in high-speed networks and method of operation
GB0208797D0 (en) * 2002-04-17 2002-05-29 Univ Cambridge Tech IP-Capable switch
KR100488478B1 (ko) * 2002-10-31 2005-05-11 서승우 다중 입력/출력 버퍼형 교환기

Also Published As

Publication number Publication date
CA2544411A1 (en) 2005-05-26
WO2005048501A3 (en) 2009-04-16
WO2005048501A2 (en) 2005-05-26
US20070053356A1 (en) 2007-03-08
IL175268A0 (en) 2006-09-05
EP1690394A2 (en) 2006-08-16

Similar Documents

Publication Publication Date Title
JP2007528636A (ja) ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング
US7042883B2 (en) Pipeline scheduler with fairness and minimum bandwidth guarantee
US8531968B2 (en) Low cost implementation for a device utilizing look ahead congestion management
CA2317637C (en) Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
JP3871327B2 (ja) 最適化されたスケーラブル・ネットワーク・スイッチ
US7170903B2 (en) Method and apparatus for parallel, weighted arbitration scheduling for a switch fabric
WO2003017594A1 (en) Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric
US6990072B2 (en) Method and apparatus for arbitration scheduling with a penalty for a switch fabric
US20050117575A1 (en) Nonblocking and deterministic unicast packet scheduling
Shim et al. Static virtual channel allocation in oblivious routing
Pappu et al. Distributed queueing in scalable high performance routers
JP2007510379A (ja) ノンブロッキングで決定論的マルチキャストパケットスケジューリング
Kim et al. Performance enhancement techniques for InfiniBand/sup TM/Architecture
US7486683B2 (en) Algorithm and system for selecting acknowledgments from an array of collapsed VOQ's
JP2007510378A (ja) ノンブロッキングで決定論的マルチレートユニキャストパケットスケジューリング
Gómez et al. VOQ/sub SW: a methodology to reduce HOL blocking in InfiniBand networks
JP2007510376A (ja) ノンブロッキングで決定論的ユニキャストパケットスケジューリング
Cheocherngngarn et al. Queue-Length Proportional and Max-Min Fair Bandwidth Allocation for Best Effort Flows
WO2023170476A1 (en) Method and apparatus for avoiding packet mis-ordering when using virtual channel fifos in a direct interconnect computer network
Gamvrili et al. Multicast schedulers for ATM switches with multiple input queues
Salankar et al. SOC chip scheduler embodying I-slip algorithm
Kokkalis et al. SCALABLE STRATEGIES FOR ALLEVIATING THE HOL BLOCKING PRODUCED BY CONGESTION TREES IN LOSSLESS INTERCONNECTION NETWORKS