JP4958745B2 - 分散型スイッチファブリック - Google Patents
分散型スイッチファブリック Download PDFInfo
- Publication number
- JP4958745B2 JP4958745B2 JP2007301134A JP2007301134A JP4958745B2 JP 4958745 B2 JP4958745 B2 JP 4958745B2 JP 2007301134 A JP2007301134 A JP 2007301134A JP 2007301134 A JP2007301134 A JP 2007301134A JP 4958745 B2 JP4958745 B2 JP 4958745B2
- Authority
- JP
- Japan
- Prior art keywords
- cell
- destination
- unit
- cells
- packet
- 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.)
- Active
Links
- 239000004744 fabric Substances 0.000 title claims abstract description 131
- 230000007246 mechanism Effects 0.000 claims description 79
- 230000005540 biological transmission Effects 0.000 claims description 55
- 239000006185 dispersion Substances 0.000 claims description 12
- 238000000034 method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000032823 cell division Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1523—Parallel switch fabric planes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/501—Overload detection
- H04L49/503—Policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
Description
ポート数を増加させるには、要素スイッチを多段結合し、オメガ網やクロス網、ファットツリー網等を形成することにより実現が可能である。また、スイッチLSI(Large Scale Integration)のポート容量を増加させることでスイッチファブリックのポート容量を増加させることも可能であるが、LSIに実装可能なピン数は、その時代のCMOS(Complementary MOS)の実装限界によって制限されるため、大容量ポートを実現すると、スイッチLSIあたりのポート数は減少する。
大容量ポートを少数持つスイッチLSIを多段結合することでスイッチファブリック全体の交換容量を向上することは可能であるが、次のような課題が発生する。すなわち、総ポート数を増やすと接続段数が増加し、スイッチファブリック通過のレイテンシが大きくなる課題、また、異なる宛先でもスイッチファブリック内で衝突が発生してスループットが低下する課題が発生する。これらの課題を回避して、目的の交換容量を実現する方法として、分散型スイッチファブリック(パラレルパケットスイッチ)が知られている。
分散型スイッチファブリックを最も容易に構成する場合、交換部用に用いる複数のスイッチLSIを完全に同期させ、更に完全に同一の宛先調停動作を実施する。よって、宛先(スイッチの出力)には、完全に予測可能なタイミングで順番通りにセルが到着するため、容易にパケットを元通りに復元可能であり、更にフロー内のパケット順番も容易に復元可能である。
ところが、近年、スイッチに要求されるポート容量、交換容量は非常に大きくなっており、分散型スイッチファブリックを構成する各スイッチLSI自体も高速してきている。例えば、LSI間の通信には、SerDes(SERialization/DE−Serialization)と呼ばれる高速シリアル伝送が利用されたり、セルの交換処理ピッチも短縮化されたりしているため、各スイッチLSIを完全同期させることが事実上困難である。よって、各スイッチが非同期動作する、すなわち、各スイッチが独立してデータ交換を行なう分散型スイッチファブリックが必要である。
US2004/0143593(A1)(特許文献1)では、パケットのシーケンス番号(整理番号)、送信元番号、ルーティングインデックス(単一の宛先、もしくは複数の宛先の組合せを参照するための値)、優先度を利用して、宛先において各フローのパケットを十分な量溜め込んだのち、パケット順番を元通りに復元する方法が開示されている。しかしながら、US2004/0143593(A1)のパケット順番復元方法は、送信元番号、ルーティングインデックス、優先度の積で表現される数のフローについて、十分な量のパケット保持機構が必要と考えられ、ハードウェア量が多くなりうる課題を持つ。
また、US2004/0143593(A1)とWO02/43329(A1)では、各スイッチの負荷に応じて、スイッチファブリックの入力にあたる分散部においてロードバランスを取りながら分散動作を行うことが開示されている。しかしながら、一般に、単純なロードバランス動作を行うと、輻輳状態にあるスイッチに溜まっているセルやパケットが目的の宛先、すなわち、スイッチファブリックの出力にあたる整列部に到着する前に、後続のセルやパケットが非輻輳状態のスイッチを経由して到着しうる。よって、整列部においてセルやパケットの順番を復元するために、整列部は大量のセルやパケットの保持が必要であり、ハードウェア量が多くなりうる課題を持つ。
本発明は、以上の点に鑑み、各交換部が非同期動作する分散型スイッチファブリックの整列部において、複数の交換部から順不同に到着するセルを、元通りのパケットに復元する方法を小容量のハードウェアで実現する分散型スイッチファブリックを提供することを目的とする。
スイッチファブリックの入力にあたる分散部は、可変長のパケットを1個以上の固定長のセルに分割する機構と、任意の二つの宛先を2ビット表現(ビットが1の場合にセルを送信)し、前記2ビットの組合せとして01、10、11の3種類を該当する2宛先へのフローとして定義し、フロー毎に連続する整理番号を管理する機構と、パケット先頭セルには先頭記号、パケット末尾セルには末尾記号を付与し、全セルに分散部の番号と宛先を示す宛先ビットマップを付与し、更に前記宛先に対応する前記整理番号を指定の範囲内で複数個付与する機構と、前記の1個以上の交換部へセルを出力する機構を備え、
スイッチファブリックでセルを目的の宛先へ配信する各交換部は、同一送信元のセル群の間の送信順番を維持したまま、セル単位で宛先毎出力調停する機構を備え、
スイッチファブリックの出力にあたる整列部は、
受信セルを分散部の番号と宛先ビットマップの中から同宛先を含む指定の2ビットで示されるフロー番号で分類してから整理番号の期待値とセルの持つ当該宛先の整理番号との比較を行う機構と、前記比較で一致したものを格納する送信元毎及びフロー番号毎の整列済みFIFOキューと、前記整列済みFIFOキューのうち、パケット末尾セルまで到着している整列済みFIFOキューを選び、パケット先頭セルからパケット末尾セルまでを取り出す機構とを備えることを特徴のひとつとする。
上述の分散型スイッチファブリックは、例えば、分散部からセル化したパケットを送信途中で当該宛先が輻輳して送信できなくなった場合、同宛先を含まない他の宛先へのパケットをセル化して送信を開始することを特徴のひとつとする。
スイッチファブリックの入力にあたる分散部は、可変長のパケットを1個以上の固定長のセルに分割する機構と、個々の宛先毎に連続する整理番号を管理する機構と、パケット先頭セルには先頭記号、パケット末尾セルには末尾記号を付与し、全セルに分散部の番号と宛先を示す宛先ビットマップを付与し、更に前記宛先に対応する前記整理番号を指定の範囲内で複数個付与する機構と、前記の1個以上の交換部へセルを出力する機構を備え、
スイッチファブリックの各交換部を経由して目的の出力にあたる整列部において、期待する整理番号のセルから順番に取り出すことを特徴のひとつとする。
それぞれが非同期にデータ交換を行う複数の交換部を有する分散型スイッチファブリックにおいて、
スイッチファブリックの入力にあたる分散部は、可変長のパケットを1個以上の固定長のセルに分割する機構と、任意の二つの宛先を2ビット表現(ビットが1の場合にセルを送信)し、前記2ビットの組合せとして01、10、11の3種類を該当する2宛先へのフローとして定義し、フロー毎に連続する整理番号を管理する機構と、パケット先頭セルには先頭記号、パケット末尾セルには末尾記号を付与し、全セルに分散部の番号と宛先を示す宛先ビットマップを付与し、更に前記宛先に対応する前記整理番号を指定の範囲内で複数個付与する機構と、前記の1個以上の交換部へセルを出力する機構を備え、
スイッチファブリックの各交換部は、同一送信元のセル群の間の送信順番を維持したまま、セル単位で宛先毎出力調停する機構を備え、スイッチファブリックの各交換部を経由して目的の出力にあたる整列部において、期待する整理番号のセルから順番に取り出すことを特徴のひとつとする。
スイッチファブリックの入力にあたる複数の分散部と、
スイッチファブリックの出力にあたる複数の整列部と、
それぞれが非同期に、前記分散部から前記整列部へのデータ交換を行う複数の交換部と
を備え、
前記分散部は、
入力される可変長のパケットを固定長のセルに分割し、パケット先頭セルには先頭記号を付与し、パケット末尾セルには末尾記号を付与し、全セルに対して自分散部を示す送信元識別子と宛先となるひとつ又は複数の整列部を示す宛先情報とを付与する機構と、
セルからパケットを復元するためのセルの順番を示す整理番号を、宛先となる整列部毎に管理する機構と、
宛先情報に基づき前記管理する機構を参照して、宛先に対応するひとつ又は複数の前記整理番号をセルに付与する機構と、
複数の前記交換部へセルを振り分けて出力する機構と
を有し、
前記整列部は、
複数の前記交換部を介して受信したセルの送信元識別子に従い、送信元の分散部毎に受信セルを分類する機構と、
分散部毎に分類されたセルに対して、該セルに付与された自宛先に対応する整理番号に従い、前記セルを整列する機構と、
整列されたセルを順に格納する分散部毎の整列済みキューと、
前記整列済みキューのうち、末尾記号が付与されたパケット末尾セルまで格納している前記整列済みキューを選び、先頭記号が付与されたパケット先頭セルから前記パケット末尾セルまでを取り出してパケットを復元し、出力する機構と
を有する分散型スイッチファブリックが提供される。
スイッチファブリックの入力にあたる複数の分散部と、
スイッチファブリックの出力にあたる複数の整列部と、
それぞれが非同期に、前記分散部から前記整列部へのデータ交換を行う複数の交換部と、
を備え、
前記分散部は、
入力される可変長のパケットを固定長のセルに分割し、パケット先頭セルには先頭記号を付与し、パケット末尾セルには末尾記号を付与し、全セルに対して自分散部を示す送信元識別子と宛先となるひとつ又は複数の整列部を示す宛先情報とを付与する機構と、
各ビットが前記整列部に対応し、ビットの値が1の前記整列部へセルを送信し及びビットの値が0の前記整列部へはセルを送信しないための宛先ビットマップに対し、予め定められたふたつの宛先に対応する2ビットずつを組み合わせ、該2ビットの組合せパターンのうち01、10、11の3種類の組合せパターンが該ふたつの宛先へのフローとして予め定義され、該ふたつの宛先の組み合わせ毎に、該3種類のフローに対応したセルの順番を示す整理番号を管理する機構と、
宛先ビットマップの予め定められたふたつの宛先に対応する2ビットずつを組み合わせ、前記整理番号を管理する機構を参照して、該ふたつの宛先の組み合わせと、該2ビットの組合せパターンで定義されるフローに対応するひとつ又は複数の前記整理番号をセルに付与する機構と、
複数の前記交換部へセルを振り分けて出力する機構と
を有し、
前記整列部は、
複数の前記交換部を介して受信したセルの送信元識別子に従い、送信元の分散部毎に受信セルを分類する機構と、
宛先ビットマップを参照して、自整列部に対応するビットを含む予め定められた2ビットの組み合わせに基づき、組合せパターンが01又は10である第1のフローか、組合せパターンが11である第2のフローかを判別し、第1及び第2のフロー毎に、セルに付与された整理番号に従いセルを整列する機構と、
整列されたセルを順に格納する分散部毎及びフロー毎の整列済みキューと、
前記整列済みキューのうち、パケット末尾セルまで格納している前記整列済みキューを選び、パケット先頭セルからパケット末尾セルまでを取り出してパケットを復元し、出力する機構と
を有する分散型スイッチファブリックが提供される。
前記分散部の前記管理する機構は、
複数の宛先を含む宛先情報が予め指定したパターンのパケットについて、該パケットを復元するためのセルの順序を示す指定パターン用の整理番号をさらに管理し、
前記分散部の前記整理番号をセルに付与する機構は、
入力したパケットの宛先情報が予め指定したパターンである場合は、前記管理する機構を参照し、前記指定パターン用の整理番号をセルに付与し、
前記整列部では、宛先が指定パターンの場合の整理番号の期待値と宛先が指定パターンでない場合の整理番号の期待値とを別々に管理し、宛先が指定パターンか否かにより別々に、セルに付与された整理番号に従いセルを整列することを特徴とする分散型スイッチファブリックが提供される。
M個(Mは2以上の整数)の前記分散部はそれぞれ、j個(jは2以上の整数)の入力ポートを有し、
N個(Nは2以上の整数)の前記整列部はそれぞれ、i個(iは2以上の整数)の出力ポートを有し、
前記分散部は、宛先となる前記整列部及び前記出力ポートを示す、N×iビットの第1の宛先ビットマップを含むパケットを入力し、該第1の宛先ビットマップに対し、前記整列部に対応するiビット毎の論理和をとって、Nビットの第2の宛先ビットマップを作成し、分割されたセルに第2の宛先ビットマップを付与して前記交換部へ出力し、
前記交換部は、第2の宛先ビットマップに従いセルを前記整列部に送信し、
前記整列部は、受信したセルを整列してパケットを復元し、復元されたパケットに含まれるN×iビットの第1の宛先ビットマップを参照して、自整列部のi個の前記出力ポートのうち出力先をひとつ又は複数決定して、復元されたパケットを出力することを特徴とする分散型スイッチファブリックが提供される。
それぞれが非同期にデータ交換を行う複数の交換部を有する分散型スイッチファブリックにおいて、
スイッチファブリックの入力にあたる分散部は、
可変長のパケットを固定長のセルに分割し、セルに分散部の識別子と宛先の整列部を示す宛先ビットマップを付与する機構と、
個々の宛先毎にセルの順番を示す整理番号を管理する機構と、
前記管理する機構を参照して、前記宛先に対応する前記整理番号を指定の範囲内で複数個、セルに付与する機構と、
前記交換部へセルを出力する機構と
を備え、
スイッチファブリックの各交換部を経由したセルを受信した整列部において、セルに付与された複数の整理番号のうち、自整列部に対応する整理番号を判別し、該整理番号に従いセルを整列する分散型スイッチファブリックが提供される。
それぞれが非同期にデータ交換を行う複数の交換部を有する分散型スイッチファブリックにおいて、
スイッチファブリックの入力にあたる分散部は、
可変長のパケットを固定長のセルに分割し、セルに分散部の識別子と宛先の整列部を示す宛先ビットマップを付与する機構と、
各ビットが整列部に対応し、ビットが1の整列部にセルを送信するための宛先ビットマップに対して、任意のふたつの宛先を2ビット表現し、前記2ビットの組合せとして01、10、11の3種類を該当する2宛先へのフローとして定義し、フロー毎にセルの順番を示す整理番号を管理する機構と、
前記宛先に対応する前記整理番号を指定の範囲内で複数個付与する機構と、
前記交換部へセルを出力する機構と
を備え、
スイッチファブリックの各交換部は、同一送信元のセル群の間の送信順番を維持したまま、セル単位で宛先毎出力調停する機構を備え、
スイッチファブリックの各交換部を経由したセルを受信した整列部において、整理番号に従いセルを整列することを特徴とする分散型スイッチファブリックが提供される。
本発明により、各スイッチが非同期動作する分散型スイッチファブリックにおいて、各宛先の整列部は送信元毎に1パケットフローもしくは2パケットフローだけを扱うだけになる。このため、フロー内のセルおよびパケットの整列時に必要とする保持メモリ量を送信元数の1倍もしくは2倍に比例する量だけに削減することができ、従来方法より少ないコストで、高い交換容量の分散型スイッチファブリックを構成可能となる。
1.第1の実施の形態
図1に、本実施の形態による分散型スイッチファブリックの一構成例を示す。
分散型スイッチファブリックは、例えば、スイッチファブリックの入力にあたるN個の分散部100(100−1、100−2、、、100−N)、データ交換を行うM個の交換部200(200−1、200−2、、、200−M)、スイッチファブリックの出力にあたるN個の整列部300(300−1、300−2、、、300−N)を備える(N、Mは整数)。分散部100は、受信した可変長のパケットを固定長のセルに分割し、複数の交換部200へ送信する。宛先の整列部300では、受信したセルを元通りの順番に直してパケットとして出力する。交換部200は互いに独立に動作する、すなわち、入力セルに対して互いに独立に宛先調停を自立的に行うため、スイッチファブリック中では非同期型の分散スイッチとして振る舞うことになる。
パケットからセルへの分割は、従来方法でも本実施の形態の方法でも同じ手法を用いることができる。一般に、スイッチファブリックを内蔵するルータなどのパケット転送装置は、受信したパケット10の内容を解析して宛先やパケット長、優先度などを含む解析情報11を生成する。この解析情報11の生成は、分散部100で行っても良いし、分散部100へ入力する前に設置するネットワークプロセッサやパケット処理エンジンなどを利用して生成してもよい。いずれにしても、分散部100の中では、解析情報11を含むパケット20を、指定された固定長に分割しセルのペイロード32とする。固定長に満たない場合は、例えば最後のセルのペイロードに値ゼロを必要量パディングして固定長にする。そして、各セルペイロード32にセルヘッダ31を付与して固定長のセル30とする。
セルヘッダ31は、セル30を分散部100から、いずれかの交換部200を経由して宛先の整列部300まで通過させた後、元通りの順番で解析情報11を含むパケット20、またはパケット10を復元するために必要な情報を含んでいる。
一般にセルヘッダ31は、パケットの先頭セルであることを示す先頭記号41、パケットの末尾セルであることを示す末尾記号42、パケットの送信元分散部100を示す送信元番号43、スイッチファブリックにおけるパケットの宛先(整列部)を示す宛先ビットマップ44、複数の宛先のパターン(組み合わせ)を示すフロー番号46、同一のフロー内でのセルの順番を示す整理番号45を有する。場合によっては、セルの有効なペイロード長なども必要であり、先に示した情報以外は、ここではその他の情報49としてまとめて示す。尚、宛先ビットマップ44とは、例えば宛先が8個の場合、8ビットの情報で示し、各ビットを宛先に対応させ、値が1となっているビット(有効ビット)が配信対象の宛先であり、値が0のビット(無効ビット)は配信対象ではないことを示す。宛先ビットマップ44により、単一宛先へ送信するユニキャストだけでなく、複数宛先へ送信するマルチキャストも表現することが出来る。
例えば、US2004/0141510(A1)(特許文献4)ではCAM(Content Addressable Memory)を利用して宛先ビットマップから十分ビット数の小さいフロー番号を生成する方法が開示されている。これは、図6に示すように、宛先ビットマップ44をCAM60にサーチキーとして入力し、一致する宛先ビットマップパターンに対応するCAMエントリのアドレスを、フロー番号46として出力する方法である。この方法で得られたフロー番号46をアドレスとして、整理番号を収めたRAM70をアクセスし、当該フロー番号46に対応する整理番号45を得ることができる。ここで、整理番号はフロー番号ごとに管理されており、CAMのエントリ数に応じた領域が使用される。CAM60やRAM70のエントリ数は、フロー番号46のビット数をPとすると、2のP乗個である。宛先ビットマップのビット数をQビットすると、2のP乗は、2のQ乗より小さい値になる。このように宛先ビットマップを縮約する形でフロー番号を得る方法の場合、フロー番号で表現可能なフロー数は宛先ビットマップで表現可能な全組合せの量より少なくなる。よって、フロー番号を使い尽くした場合に、利用していないフロー番号を見つけて新しいフローに割り当てるといった操作が必要になる。また、この手法では、宛先の整列部300でも、フロー番号に対応する数の期待整理番号を管理する必要があり、その分のメモリが必要となる。期待整理番号の管理自体は大きなオーバーヘッドを伴わないが、同時に複数のフローのセルを管理しながらセル順番とパケットを復元する必要があるため、セル保持用のメモリが大量に必要となる。
次に、本実施の形態におけるセルヘッダ31の内容のうち、従来のセルヘッダ31との差分を、図3を用いて説明する。本実施の形態では、セルヘッダ31に複数個の整理番号を付与する。図3の例では、セルヘッダ31内に最大4個までの整理番号45を付与することを示している。この場合、分散部100の整理番号管理部は、図4に示すように宛先毎(整列部毎)に整理番号を管理する。これは、宛先パターンの組み合わせによらず、宛先ごとのパケットフローを管理することを意味する。なお、図4については後に詳述する。これにより、宛先となる整列部300では送信元あたり1フローだけを扱えばよく、フロー内のセルおよびパケットの整列時に必要とする保持メモリ量を送信元数の1倍に比例する量(送信元数に応じた量)だけに削減することができる。従来のようにフロー数に応じたメモリ量より削減できる。よって、従来方法より少ないコストで、高い交換容量の分散型スイッチファブリックを構成可能となる。
分散部100は、例えば、パケット受信部110、宛先毎及びマルチキャスト(MC)用の複数のVOQ(Virtual Output Queue)群120、セル生成部130、整理番号付与部140、整理番号管理部141及びセル振分部150を有する。なお、図19は、図1の分散部100のひとつに対応する。したがって、分散型スイッチファブリックでは、図19の構成をN個有している。
分散部100は、パケット受信部110でパケット20を受信後、宛先毎に独立したFIFOキューであるVOQ120のうち対応するVOQへパケットを積む。尚、マルチキャストの場合は、あらゆるパターンのマルチキャストで共用のVOQへパケットを積む。次に、セル生成部130は、分散部100に接続されている全ての交換部200の各宛先の空き状況を確認し、空きのある宛先に対応するVOQ120のうち一つを選択してパケット20を取り出し、セルペイロード32に分割し、セルヘッダ31を付与して固定長のセル30とする。この時点のセルヘッダ31では、セルヘッダ31のうち、先頭記号41、末尾記号42、送信元番号43、宛先ビットマップ44のみが確定している。また、セルヘッダ31の中に明示的には現れないが、送信する交換部200の番号もこの時点で確定している。尚、パケット20の取出し途中で当該宛先の空きが無くなった場合は、当該パケット20のセル化を一旦中断し、次のセル化の機会を得たときに、続きの部分からセル化を再開してもよい。なお、送信元番号43、整理番号45は、番号以外にも適宜の識別子を用いてもよい。また、宛先ビットマップはビットマップ以外にも、例えば宛先の識別子をひとつ又は複数含むなど、適宜の宛先情報でもよい。
図4は、整理番号管理部141の構成図である。
整理番号管理部141は、宛先毎に整理番号を管理する。整理番号管理部141には、整理番号付与部から宛先ビットマップ44が入力される。宛先ビットマップの第1ビットは、宛先1用整理番号に対応しており、以下、宛先ビットマップの第2〜第Nビットは、宛先2〜N用整理番号に対応している。入力された宛先ビットマップ44の有効ビット(例えば値が1になっているビット)に対応するひとつ又は複数の整理番号が出力される。
図7の上図の33はユニキャストの場合を示しており、対応する宛先の整理番号を整理番号領域1の位置45−1へ記録する。整理番号2、3、4のフィールドは利用しない。また、例えば0を入れてもよい。図7の下図の34は4つの宛先へのマルチキャストの場合を示しており、宛先ビットマップ44で1が記録されている宛先に対し、最も左側の(先頭側)宛先の整理番号をセルの整理番号領域1の位置45−1へ記録する。同様に、左側から2、3、4番目の宛先の整理番号を、セルの整理番号領域2、整理番号領域3、整理番号領域4の位置45−2、45−3、45−4へそれぞれ記録する。
本実施の形態において、宛先の数がセルに付与可能な整理番号の数(指定の個数)を超えない場合、すなわち、図3のセルヘッダの例では宛先の数が4個を超えない場合、分散部100から送信されたセルは、交換部200が宛先ビットマップ44で示される有効な宛先すべてに対してコピーし、対応する整列部300へ送信する。
宛先の数がセルに付与可能な整理番号の数を超えた場合は、分散部100でパケットおよびそこから生成されるセルをコピーしてから送信する。例えば、図3のセルヘッダの例では宛先の数が4個を超える場合、分散部100でコピーする。図8では宛先の数が6個の場合の例を示す。この場合、6ビットが有効な宛先ビットマップ44を、有効なビットがセルに付与可能な整理番号の数4を超えないように2分割する。図8の例では、有効な宛先の数が4ビットの一つ目のセルの一部35−1と、2ビットの二つ目のセルの一部35−2に2分割している。なお、分割の仕方は3ビットずつなど適宜の割合でわけてよい。分割後の宛先ビットマップ44の有効ビットと整理番号45−1、45−2、45−3、45−4の関係は図8に示す通りであり、一つ目のセル35−1では、分割された宛先ビットマップの有効ビットの示す宛先の整理番号を、それぞれ整理番号45−1、45−2、45−3、45−4の位置に記録する。二つ目のセル35−2では、分割された宛先ビットマップの有効ビットの示す宛先の整理番号を、それぞれ整理番号45−1、45−2の位置に記録する。図示はしないが、上述の説明と同様の考え方に基づき、宛先ビットマップ44の有効なビット数が8個を超えれば3分割、12個を超えれば4分割等すればよい。
この例では、パケット1は3セルで構成され、宛先1行きなので、それぞれのセルヘッダには宛先1用整理番号として0、1、2を整理番号領域1の位置へ記録する。パケット2は6セルで構成され、宛先1と宛先3へのマルチキャストなので、それぞれのセルヘッダには宛先1用整理番号として先ほどの続きの番号3〜8を整理番号領域1の位置へ、また、宛先3用整理番号として0〜5を整理番号領域2の位置へ記録する。
パケット3は3セルで構成され、宛先2行きなので、それぞれのセルヘッダには宛先2用整理番号として0、1、2を整理番号領域1の位置へ記録する。パケット4は5セルで構成され、宛先2と宛先3へのマルチキャストなので、それぞれのセルヘッダには宛先2用整理番号として先ほどの続きの番号3〜7を整理番号領域1の位置へ、また、宛先3用整理番号として6〜10を整理番号領域2の位置へ記録する。パケット5は3セルで構成され、宛先1〜宛先6へのマルチキャストなので、パケットをコピーし、宛先ビットマップを2分割する。例えば、宛先1〜宛先4が有効(宛先5、6は無効)な宛先ビットマップと宛先5、宛先6が有効(宛先1〜4は無効)なビットマップへ2分割する。そして、前者の宛先ビットマップを持つセルに対しては、それぞれのセルヘッダには宛先1用整理番号として9〜11をセルヘッダの整理番号領域1の位置へ、宛先2用整理番号として8〜10を整理番号領域2の位置へ、宛先3用整理番号として11〜13を整理番号領域3の位置へ、宛先4用整理番号として0〜2を整理番号領域4の位置へ記録する。また、後者の宛先ビットマップを持つセルに対しては、それぞれのセルヘッダには宛先5用整理番号として0〜2を整理番号領域1の位置へ、宛先6用整理番号として0〜2を整理番号領域2の位置へ記録する。
宛先の整列部300には、複数の交換部200からセルが到着する。同一の交換部200から到着するセルは、任意の一つの送信元だけに着目すると順番が揃ったままである。しかし、異なる交換部200の間での任意の一つの送信元に関する順番は保証されないため、整列部300はセル順序を適切に並べ直してからパケットを復元する必要がある。
図10に、本実施の形態における整列部300の構成例を示す。図11、図12は、セルの整列、パケットの復元のフローチャートである。図11および図12のフローチャートと合わせて、セル順序を適切に並べ直してパケットを復元する方法について説明する。
整列部300は、例えば、各交換部200に対応する振分部305と、各送信元の分散部100に対応する複数の整列ブロック310と、出力パケット選択部320を有する。交換部がM個ある場合、振分部はM個存在し、分散部100がN個ある場合、整列ブロック310はN個存在する。整列ブロック310は、その入力に交換部200に対応するFIFO(First In First Out)キュー311と、期待整理番号管理部312と、整理番号比較部313と、整列済みFIFOキュー314とを備える。交換部200がM個である場合、各整列ブロック310にはM個の交換部対応FIFOキュー311が存在する。なお、図10の整列部は、図1の整列部のひとつに対応する。従って、分散型スイッチファブリックは、図10の構成をN個有している。
比較結果が不一致であれば、整理番号比較部313は、他の交換部対応FIFOキュー311の先頭セルの検査を行う(図11のS504)。
比較結果が一致であれば、整理番号比較部313は、一致した交換部対応FIFOキュー311の先頭セルを整列済みFIFOキュー314へ移動し、次回の比較のために期待値整理番号312を1増加する(図11のS503)。この操作により、任意の送信元からのセル順番を適切に並べ直すことができる。以上の処理は、各整列ブロック310で実行される。
まず、本実施の形態では整列部300の整列ブロック310の整理番号比較部313では、各交換部対応のFIFOキュー311の先頭のセルが期待する整理番号のセルかどうか検査する。もし、障害で期待する整理番号を持つセルが消滅している場合、前述の期待整理番号の検査(S502、S504)が成功しなくなる。そこで、整列ブロック310では、障害検出のために任意の時間を設定しておく。そして、末尾記号42を持たない任意のセルが検査に成功してから次のセル(後続の整理番号を含むセル)が前記の任意の設定時間を経過しても到着しない場合、期待すべき整理番号を持つセルは障害で廃棄されたものとみなす。そして、現在の期待整理番号312のセルはエラーセルであるという情報を整列済みFIFOキュー314へ積む。また、期待整理番号312を1増加させて後続のセルの検査を続ける。
エラーセルを受信した整列済みFIFOキュー314は、エラーを含むパケットを出力できる状態にある。そこで、先頭セルからエラーセルまでを、エラーパケットであるという情報と共に出力する。尚、エラーセルを受信した整列済みFIFOキュー314は、その後、先頭記号41を含むセルでない限り、受信するセルを全て廃棄することで、整列部300の出力に誤った状態のパケットを出力することがなくなる。
以上、本実施の形態によるセル分散型スイッチファブリックについて詳細な説明を行った。上述の説明は、実施の一形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
第2の実施の形態では、図1における分散型スイッチファブリックの分散部100が特定の一宛先以外に、指定の宛先パターンに対しても整理番号を管理する。
図13に、第2の実施の形態における、整理番号管理部141の構成図を示す。
第2の実施の形態では、図13に示すように、N個の分散部100の整理番号管理部141は、いずれも特定の一宛先用の整理番号70−1〜70−N以外に、指定の宛先パターン用整理番号71を管理する。例えば、全ての宛先に対して送信を行うブロードキャストを指定宛先パターンとして設定すれば、ブロードキャスト用パケットを送信するセルに対しては、指定宛先パターン用整理番号71を図3のセルヘッダ31の中の整理番号1の位置45−1に付与する。
図14に、第2の実施の形態におけるパケットとセル、および、セルヘッダに付与する整理番号の関係の例を示す。
パケット1からパケット4までは第1の実施の形態と同じルールでセルヘッダに整理番号を付与する。3セルで構成されるパケット5が前述のブロードキャストであるとすれば、指定宛先パターン用整理番号として0、1、2を3個のセルヘッダの整理番号1の位置45−1へそれぞれ付与する。
図20に示すように宛先の整列部300では、整列ブロック310の中で2種類の期待整理番号を管理する期待整理番号管理部312Bと、2種類の整列済みFIFOキュー314Bと、整列ブロック内パケット選択部315とを有する。すなわち、特定の送信元に対して、2フローを管理することになる。この例では、1フローはブロードキャストフロー(フロー0とする。第1のフロー)であり、もう1フローはブロードキャスト以外の当該宛先を含むフロー(フロー1とする。第2のフロー)である。整列部300は、第1の実施の形態と同様にセルを適切な整列ブロック310に振り分けた後、セルヘッダの中の宛先ビットマップ44を参照して、2フローのうちいずれであるかを判別する。整列部300は、判別したフロー用の期待整理番号312Bと、受信セルの整理番号の一致検査を行い、一致したセルを対応するフローの整列済みFIFOキュー314Bへ格納する。そして、パケット末尾までのセルが揃ったいずれか一方の整列済みFIFOキュー314Bを整列ブロック内パケット選択部315で選択し、図10に示すパケット選択部320の選択候補とする。その後のパケット復元処理や障害発生時の処理に関しては第1の実施の形態と同様に行えばよい。なお、分散部100の他の構成、交換部200の構成、整列部300の他の構成は、第1の実施の形態と同様である。
本実施の形態では、宛先となる整列部300では送信元あたり2フローだけを扱えばよい。すなわち、フロー内のセルおよびパケットの整列時に必要とする保持メモリ量を送信元数の2倍に比例する量(送信元数の2倍に応じた量)だけに削減することができ、従来方法より少ないコストで、高い交換容量の分散型スイッチファブリックを構成可能となる。
以上、本実施の形態によるセル分散型スイッチファブリックについて詳細な説明を行った。本説明は、実施の一形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
本発明による第3の実施の形態では、図1における分散型スイッチファブリックの分散部100が任意の二つの宛先を2ビット表現(ビットが1の場合にセルを送信)し、前記2ビットの組合せとして01、10、11の3種類を該当する2宛先へのフローとして定義し、フロー毎に連続する整理番号を管理する。
図15に、第3の実施の形態の場合のセルヘッダの宛先ビットマップ44と整理番号45の関係の例を示す。
宛先が最大N個であればNを2で割った数の整理番号用フィールド45を用意する。この例では、宛先が最大8個であるため、8を2で割った4個の整理番号用のフィールド45−1、45−2、45−3、45−4を用意している。宛先ビットマップ44はどの2宛先をペアにしても良いが、図15の例では理解を容易にするために、隣り合う2宛先同士をペアにしている。なお、宛先最大個数Nを2で割った値が大きすぎる場合、第1の実施の形態のように、宛先ビットマップ44を適宜分割して整理番号用フィールド45の個数を抑え、分散部100でセルのコピーをするようにしてもよい。
2つの宛先の有効な組合せは上述のように3種類ずつなので、整理番号管理部141は宛先1と2に対して、図16に示すように、ビットの組み合わせ10に対応する宛先1用整理番号71−1、ビットの組み合わせ01に対応する宛先2用整理番号71−2、ビットの組み合わせ11に対応する宛先1かつ宛先2用整理番号71−3のように管理する。指定された宛先の有効な組合せに対応する整理番号をセルの指定の整理番号位置へ付与する。なお、他の宛先の組み合わせについても同様である。
例えば、整理番号管理部141は、入力された宛先ビットマップを2ビットずつに分割し、宛先1及び2(先頭の2ビット)に対して、ビットの組み合わせが10であれば、対応する宛先1用整理番号71−1を読み出し、ビットの組み合わせが01であれば、対応する宛先2用整理番号71−2を読み出し、ビットの組み合わせが11であれば、対応する宛先1及び2用整理番号71−3を読み出す。また、他の2つの宛先に対しても同様に整理番号を読み出す。整理番号管理部141は、読み出した複数の整理番号を整理番号付与部140に出力する。ここで出力される整理番号は、宛先ビットマップの宛先数をNとするとN/2である。
宛先1へのパケット1から生成されるセルに対しては、宛先1用整理番号をセルヘッダの整理番号1の位置45−1に付与する。宛先1と宛先3へのパケット2から生成されるセルに対しては、宛先1用整理番号をセルヘッダの整理番号1の位置45−1に、また、宛先3用整理番号をセルヘッダの整理番号2の位置45−2に付与する。宛先2へのパケット3から生成されるセルに対しては、宛先2用整理番号をセルヘッダの整理番号1の位置45−1に付与する。
宛先2と宛先3へのパケット4から生成されるセルに対しては、宛先2用整理番号をセルヘッダの整理番号1の位置45−1に、また、宛先3用整理番号をセルヘッダの整理番号2の位置45−2に付与する。宛先1から宛先6へのパケット5から生成されるセルに対しては、宛先1かつ宛先2用整理番号をセルヘッダの整理番号1の位置45−1に、また、宛先3かつ宛先4用整理番号をセルヘッダの整理番号2の位置45−2に、また、宛先5かつ宛先6用整理番号をセルヘッダの整理番号3の位置45−3に、それぞれ付与する。
また、第3の実施の形態は、第1の実施の形態や第2の実施の形態とは異なり、マルチキャストの宛先数が図3のセルヘッダが持つ整理番号フィールド45の個数を超えた場合でも、分散部100でのセルコピーを無くすことができる場合がある。例えば、総宛先数が16である場合、図3の整理番号フィールド45を8個(総宛先数を2で割った値)備えれば、あらゆるマルチキャストでも分散部100でセルのコピーが一切発生しない。同じ条件でも、第1の実施の形態では、総宛先数が8を越えると分散部100でセルを2個にコピーする必要がある。また、第2の実施の形態では指定の宛先パターンの場合はコピー不要であるが、それ以外で総宛先数が8を越えると分散部100でセルを2個にコピーする必要がある。
以上、本実施の形態によるセル分散型スイッチファブリックについて詳細な説明を行った。本説明は、実施の一形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
第4の実施の形態では、図1における分散型スイッチファブリックの分散部100と整列部300が複数の回線を収容する。
図18は、本実施の形態のスイッチファブリックの構成図である。
例えば、各分散部100および各整列部300がともに16個(N個)あり、いずれも4回線(i回線)を収容する場合、図18に示すようなスイッチファブリックとなる。ここで、N、iはそれぞれ、2以上の整数である。なお、分散部と整列部は同数でなくてもよく、例えば、分散部100はM個あり、j回線(j個の入力ポート)を収容するものでもよい。ここで、M、jはそれぞれ、2以上の整数である。
この場合、図19に示す分散部100において、パケット受信部110が1回線入力ではなく、4回線入力となる。また、図10に示す整列部300において、出力パケット選択部320が1回線出力ではなく、4回線出力となる。
任意の分散部100から見ると、スイッチファブリックとして総出力ポート数は16x4=64となる。この場合、図2のパケット20が持つ解析情報11において64ビット(N×iビット)の宛先ビットマップ54を保持する。この64ビットの宛先ビットマップ54では、連続する4ビットによって特定の宛先となる整列部300を選択できる。例えば、宛先ビットマップを先頭から整列部1のポート1〜4、整列部2のポート1〜4、、、に対応するよう定めれば、先頭の4ビットは整列部1宛、次の4ビットは整列部2宛に対応する。
例えば、パケット受信部110が、入力されたパケットの64ビットの宛先ビットマップを4ビットずつに区切り、区切られた4ビットに対し論理和をとって1ビットに変換し、変換された1ビットを並べた16ビットの宛先ビットマップを作成する。パケット受信部110は、作成した16ビットの宛先ビットマップに従い、上述の第1の実施の形態と同様に、宛先(ここでは整列部及びマルチキャストに対応)に対応するVOQ120にパケットを格納する。このとき、作成された16ビットの宛先ビットマップをパケットに付与してもよい。
セル生成部130は、作成された16ビットの宛先ビットマップを含むセルヘッダを用いて、パケットからセルを作成する。整理番号付与部140は、16ビットの宛先ビットマップに従い、上述の第1の実施の形態と同様に整理番号を付与し、セル振分部150はセルを交換部200に振り分ける。
目的の宛先の整列部300では、到着したセル群を上述の第1の実施の形態と同様に整列してパケット20を復元する。復元後、例えば出力パケット選択部320が、復元されたパケット20内の解析情報11として含まれる64ビットの宛先ビットマップ54の中の当該整列部300を示す4ビットの情報を参照し、4つある出力ポートのうち、目的となるひとつ又は複数の宛先ポートへパケットを送信する。
以上、本実施の形態によるセル分散型スイッチファブリックについて詳細な説明を行った。本説明は、実施の一形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。なお、本実施の形態は、上述の第1の実施の形態と組み合わせる以外にも、第2、第3の実施の形態と組み合わせることもできる。
200:交換部
300:整列部
10:パケット
11:解析情報
20:解析情報を含むパケット
30:セル
31:セルヘッダ
32:セルペイロード
44:宛先ビットマップ
45:整理番号110 パケット受信部
120 VOQ
130 セル生成部
140 整理番号付与部
141 整理番号管理部
150 セル振分部
305 振分部
310 整列ブロック
320 出力パケット選択部
311 FIFOキュー
312 期待整理番号管理部
313 整理番号比較部
314 整列済みFIFOキュー
315 整列ブロック内パケット選択部
Claims (11)
- スイッチファブリックの入力にあたる複数の分散部と、
スイッチファブリックの出力にあたる複数の整列部と、
それぞれが非同期に、前記分散部から前記整列部へのデータ交換を行う複数の交換部と
を備え、
前記分散部は、
入力される可変長のパケットを固定長のセルに分割し、パケット先頭セルには先頭記号を付与し、パケット末尾セルには末尾記号を付与し、全セルに対して自分散部を示す送信元識別子と宛先となるひとつ又は複数の整列部を示す宛先情報とを付与する機構と、
セルからパケットを復元するためのセルの順番を示す整理番号を、宛先となる整列部毎に管理する機構と、
宛先情報に基づき前記管理する機構を参照して、宛先に対応するひとつ又は複数の前記整理番号をセルに付与する機構と、
複数の前記交換部へセルを振り分けて出力する機構と
を有し、
前記整列部は、
複数の前記交換部を介して受信したセルの送信元識別子に従い、送信元の分散部毎に受信セルを分類する機構と、
分散部毎に分類されたセルに対して、該セルに付与された自宛先に対応する整理番号に従い、前記セルを整列する機構と、
整列されたセルを順に格納する分散部毎の整列済みキューと、
前記整列済みキューのうち、末尾記号が付与されたパケット末尾セルまで格納している前記整列済みキューを選び、先頭記号が付与されたパケット先頭セルから前記パケット末尾セルまでを取り出してパケットを復元し、出力する機構と
を有し、
前記分散部の前記管理する機構は、
複数の宛先を含む宛先情報が予め指定したパターンのパケットについて、該パケットを復元するためのセルの順序を示す指定パターン用の整理番号をさらに管理し、
前記分散部の前記整理番号をセルに付与する機構は、
入力したパケットの宛先情報が予め指定したパターンである場合は、前記管理する機構を参照し、前記指定パターン用の整理番号をセルに付与し、
前記整列部では、宛先が指定パターンの場合の整理番号の期待値と宛先が指定パターンでない場合の整理番号の期待値とを別々に管理し、宛先が指定パターンか否かにより別々に、セルに付与された整理番号に従いセルを整列する分散型スイッチファブリック。 - スイッチファブリックの入力にあたる複数の分散部と、
スイッチファブリックの出力にあたる複数の整列部と、
それぞれが非同期に、前記分散部から前記整列部へのデータ交換を行う複数の交換部と、
を備え、
前記分散部は、
入力される可変長のパケットを固定長のセルに分割し、パケット先頭セルには先頭記号を付与し、パケット末尾セルには末尾記号を付与し、全セルに対して自分散部を示す送信元識別子と宛先となるひとつ又は複数の整列部を示す宛先情報とを付与する機構と、
各ビットが前記整列部に対応し、ビットの値が1の前記整列部へセルを送信し及びビットの値が0の前記整列部へはセルを送信しないための宛先ビットマップに対し、予め定められたふたつの宛先に対応する2ビットずつを組み合わせ、該2ビットの組合せパターンのうち01、10、11の3種類の組合せパターンが該ふたつの宛先へのフローとして予め定義され、該ふたつの宛先の組み合わせ毎に、該3種類のフローに対応したセルの順番を示す整理番号を管理する機構と、
宛先ビットマップの予め定められたふたつの宛先に対応する2ビットずつを組み合わせ、前記整理番号を管理する機構を参照して、該ふたつの宛先の組み合わせと、該2ビットの組合せパターンで定義されるフローに対応するひとつ又は複数の前記整理番号をセルに付与する機構と、
複数の前記交換部へセルを振り分けて出力する機構と
を有し、
前記整列部は、
複数の前記交換部を介して受信したセルの送信元識別子に従い、送信元の分散部毎に受信セルを分類する機構と、
宛先ビットマップを参照して、自整列部に対応するビットを含む予め定められた2ビットの組み合わせに基づき、組合せパターンが01又は10である第1のフローか、組合せパターンが11である第2のフローかを判別し、第1及び第2のフロー毎に、セルに付与された整理番号に従いセルを整列する機構と、
整列されたセルを順に格納する分散部毎及びフロー毎の整列済みキューと、
前記整列済みキューのうち、パケット末尾セルまで格納している前記整列済みキューを選び、パケット先頭セルからパケット末尾セルまでを取り出してパケットを復元し、出力する機構と
を有する分散型スイッチファブリック。 - 請求項1または請求項2の分散型スイッチファブリックにおいて、
分割されたセルに、前記整理番号が複数付与されることを特徴とする分散型スイッチファブリック。 - 請求項1または請求項2の分散型スイッチファブリックにおいて、
ひとつのセルに付与可能な整理番号の個数が予め定められており、
マルチキャストパケットで宛先の数が前記付与可能な整理番号の個数を超える場合、前記分散部は、ひとつのセルの宛先の数が、前記付与可能な整理番号の個数以下となるように宛先情報を分割し、セルを宛先情報の分割数分コピーし、コピー後の各セルには、分割された宛先情報と、分割後の各宛先に対応する整理番号とを付与することを特徴とする分散型スイッチファブリック。 - 請求項1または請求項2の分散型スイッチファブリックにおいて、
前記分散部で分割されたセルを宛先の前記整列部へ送信する途中で、該宛先が輻輳して送信できなくなった場合、前記分散部は、同宛先を含まない他の宛先へのパケットをセルに分割して送信を開始することを特徴とする分散型スイッチファブリック。 - 請求項2の分散型スイッチファブリックにおいて、
前記整列部において任意の前記分散部から期待整理番号を含むパケット末尾以外のセルが到着後、同一の前記分散部から、予め定められた期間が経過しても期待する後続の整理番号を含むセルが到着しない場合、又は、同一の前記分散部について全ての前記交換部から期待する後続の整理番号以外のセルが到着した場合、前記の期待する後続の整理番号を無視して期待整理番号を増加させ、最大値に達したらゼロ又は初期値に戻し、無視された整理番号のセルの抜けたパケットはエラーパケットとして処理することを特徴とする分散型スイッチファブリック。 - 請求項1の分散型スイッチファブリックにおいて、前記整列する機構は、
セルを格納する分散部毎かつ交換部毎に対応して備えるキューと、
予め初期値が設定され、セルを整理番号に従い整列するための、第1のフロー用の期待整理番号と、第2のフロー用の期待整理番号とを管理する期待整理番号管理部と、
各キューに格納されたセルの宛先情報が予め指定したパターンか判別し、(a)該パターンの場合、セルに含まれる整理番号と前記期待整理番号管理部の第1のフロー用の期待整理番号とを比較し、一致するセルを前記キューから取り出して第1のフロー用の前記整列済みキューに格納し、前記期待整理番号管理部の第1のフロー用の期待整理番号を増加させ、最大値に達したらゼロ又は初期値に戻し、(b)該パターンでない場合、セルに含まれる整理番号と、前記期待整理番号管理部の第2のフロー用の期待整理番号とを比較し、一致するセルを前記キューから取り出して第2のフロー用の前記整列済みキューに格納し、前記期待整理番号管理部の第2のフロー用の期待整理番号を増加させ、最大値に達したらゼロ又は初期値に戻す比較部と
を有する分散型スイッチファブリック。 - 請求項2の分散型スイッチファブリックにおいて、前記整列する機構は、
セルを格納する分散部毎かつ交換部毎に対応して備えるキューと、
予め初期値が設定され、セルを整理番号に従い整列するための、第1のフロー用の期待整理番号と、第2のフロー用の期待整理番号とを管理する期待整理番号管理部と、
各キューに格納されたセルの宛先ビットマップを参照して、自整列部に対応するビットを含む予め定められた2ビットの組み合わせに基づき、前記第1のフローか又は前記第2のフローかを判別し、(a)第1のフローの場合、セルに含まれる整理番号と前記期待整理番号管理部の第1のフロー用の期待整理番号とを比較し、一致するセルを前記キューから取り出して第1のフロー用の前記整列済みキューに格納し、前記期待整理番号管理部の第1のフロー用の期待整理番号を増加させ、最大値に達したらゼロ又は初期値に戻し、(b)第2のフローの場合、セルに含まれる整理番号と前記期待整理番号管理部の第2のフロー用の期待整理番号とを比較し、一致するセルを前記キューから取り出して第2のフロー用の前記整列済みキューに格納し、前記期待整理番号管理部の第2のフロー用の期待整理番号を増加させ、最大値に達したらゼロ又は初期値に戻す比較部と
を有する分散型スイッチファブリック。 - 請求項7または請求項8の分散型スイッチファブリックにおいて、
各交換部は、同一の前記分散部からのセルの順番を維持したまま、セル単位で宛先毎出力調停する機構を有し、
前記整列部の前記比較部は、前記交換部毎のキューの先頭セルについて、該先頭セルの整理番号と、前記期待整理番号管理部の第1又は第2のフロー用の期待整理番号とを比較することを特徴とする分散型スイッチファブリック。 - 請求項2の分散型スイッチファブリックにおいて、
M個(Mは2以上の整数)の前記分散部はそれぞれ、j個(jは2以上の整数)の入力ポートを有し、
N個(Nは2以上の整数)の前記整列部はそれぞれ、i個(iは2以上の整数)の出力ポートを有し、
前記分散部は、宛先となる前記整列部及び前記出力ポートを示す、N×iビットの第1の宛先ビットマップを含むパケットを入力し、該第1の宛先ビットマップに対し、前記整列部に対応するiビット毎の論理和をとって、Nビットの第2の宛先ビットマップを作成し、分割されたセルに第2の宛先ビットマップを付与して前記交換部へ出力し、
前記交換部は、第2の宛先ビットマップに従いセルを前記整列部に送信し、
前記整列部は、受信したセルを整列してパケットを復元し、復元されたパケットに含まれるN×iビットの第1の宛先ビットマップを参照して、自整列部のi個の前記出力ポートのうち出力先をひとつ又は複数決定して、復元されたパケットを出力することを特徴とする分散型スイッチファブリック。 - それぞれが非同期にデータ交換を行う複数の交換部を有する分散型スイッチファブリックにおいて、
スイッチファブリックの入力にあたる分散部は、
可変長のパケットを固定長のセルに分割し、セルに分散部の識別子と宛先の整列部を示す宛先ビットマップを付与する機構と、
各ビットが整列部に対応し、ビットが1の整列部にセルを送信するための宛先ビットマップに対して、任意のふたつの宛先を2ビット表現し、前記2ビットの組合せとして01、10、11の3種類を該当する2宛先へのフローとして定義し、フロー毎にセルの順番を示す整理番号を管理する機構と、
前記宛先に対応する前記整理番号を指定の範囲内で複数個付与する機構と、
前記交換部へセルを出力する機構と
を備え、
スイッチファブリックの各交換部は、同一送信元のセル群の間の送信順番を維持したまま、セル単位で宛先毎出力調停する機構を備え、
スイッチファブリックの各交換部を経由したセルを受信した整列部において、整理番号に従いセルを整列することを特徴とする分散型スイッチファブリック。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007301134A JP4958745B2 (ja) | 2007-11-21 | 2007-11-21 | 分散型スイッチファブリック |
US12/273,579 US7907606B2 (en) | 2007-11-21 | 2008-11-19 | Multi-plane cell switch fabric system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007301134A JP4958745B2 (ja) | 2007-11-21 | 2007-11-21 | 分散型スイッチファブリック |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009130481A JP2009130481A (ja) | 2009-06-11 |
JP4958745B2 true JP4958745B2 (ja) | 2012-06-20 |
Family
ID=40641901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007301134A Active JP4958745B2 (ja) | 2007-11-21 | 2007-11-21 | 分散型スイッチファブリック |
Country Status (2)
Country | Link |
---|---|
US (1) | US7907606B2 (ja) |
JP (1) | JP4958745B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2955992B1 (fr) * | 2010-01-29 | 2012-04-20 | Inst Nat Rech Inf Automat | Dispositif de commutation ou de routage modulable |
KR20120140076A (ko) * | 2011-06-20 | 2012-12-28 | 한국전자통신연구원 | 대용량 스위치를 위한 고확장성의 멀티캐스팅 패킷 포워딩 장치 및 방법 |
CN102281192B (zh) * | 2011-07-19 | 2017-09-29 | 中兴通讯股份有限公司 | 交换网络芯片的信元处理方法及装置 |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9773352B2 (en) * | 2013-11-19 | 2017-09-26 | Komatsu Ltd. | Work machine and work machine management system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3866425B2 (ja) * | 1998-11-12 | 2007-01-10 | 株式会社日立コミュニケーションテクノロジー | パケットスイッチ |
JP2000295279A (ja) * | 1999-04-02 | 2000-10-20 | Nec Corp | パケットスイッチ |
JP3250546B2 (ja) * | 1999-06-07 | 2002-01-28 | 日本電気株式会社 | パケット交換装置及びそれに用いるマルチキャスト制御方法並びにその制御プログラムを記録した記録媒体 |
US7095744B2 (en) | 2000-11-22 | 2006-08-22 | Dune Networks | Method and system for switching variable sized packets |
US6832261B1 (en) * | 2001-02-04 | 2004-12-14 | Cisco Technology, Inc. | Method and apparatus for distributed resequencing and reassembly of subdivided packets |
US7400629B2 (en) * | 2002-12-19 | 2008-07-15 | International Business Machines Corporation | CAM based system and method for re-sequencing data packets |
US8995445B2 (en) * | 2002-12-19 | 2015-03-31 | International Business Machines Corporation | System and method for re-sequencing data packets on a per-flow basis |
US7688816B2 (en) * | 2004-03-15 | 2010-03-30 | Jinsoo Park | Maintaining packet sequence using cell flow control |
JP4967286B2 (ja) * | 2005-09-15 | 2012-07-04 | 富士通株式会社 | 伝送装置およびフレーム転送方法 |
US8553684B2 (en) * | 2006-04-24 | 2013-10-08 | Broadcom Corporation | Network switching system having variable headers and addresses |
JP2008092485A (ja) | 2006-10-05 | 2008-04-17 | Hitachi Ltd | 分散型スイッチシステムのパケット再整列器およびパケット再整列方法 |
JP5034491B2 (ja) * | 2006-12-27 | 2012-09-26 | 株式会社日立製作所 | スイッチにおける優先度帯域制御方法 |
-
2007
- 2007-11-21 JP JP2007301134A patent/JP4958745B2/ja active Active
-
2008
- 2008-11-19 US US12/273,579 patent/US7907606B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009130481A (ja) | 2009-06-11 |
US7907606B2 (en) | 2011-03-15 |
US20090129393A1 (en) | 2009-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4867778B2 (ja) | 分散型スイッチファブリックシステム | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
TWI527409B (zh) | 網路處理器單元及其相關方法 | |
JP4679522B2 (ja) | エラー訂正を利用した高度並列スイッチング・システム | |
US7145873B2 (en) | Switching arrangement and method with separated output buffers | |
US9300597B2 (en) | Statistics module for network processors in virtual local area networks | |
US20070153796A1 (en) | Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths | |
US6944170B2 (en) | Switching arrangement and method | |
US20070115958A1 (en) | Two-dimensional pipelined scheduling technique | |
US7039770B1 (en) | Low latency request dispatcher | |
US8949578B2 (en) | Sharing of internal pipeline resources of a network processor with external devices | |
US20040141504A1 (en) | Method and system for resequencing data packets switched through a parallel packet switch | |
US9172660B2 (en) | Switch fabric with collector-based cell reordering | |
JP4958745B2 (ja) | 分散型スイッチファブリック | |
US8116305B2 (en) | Multi-plane cell switch fabric system | |
US20060256793A1 (en) | Efficient multi-bank buffer management scheme for non-aligned data | |
García et al. | Dynamic evolution of congestion trees: Analysis and impact on switch architecture | |
US10491543B1 (en) | Shared memory switch fabric system and method | |
US7675930B2 (en) | Chip circuit for combined and data compressed FIFO arbitration for a non-blocking switch | |
Mora et al. | Towards an efficient switch architecture for high-radix switches | |
US7609693B2 (en) | Multicast packet queuing | |
US7394822B2 (en) | Using reassembly queue sets for packet reassembly | |
Mora et al. | RECN-IQ: A cost-effective input-queued switch architecture with congestion management | |
US7242691B2 (en) | Optimal load balancing across multiple switching fabrics | |
Kannan et al. | MSXmin: a modular multicast ATM packet switch with low delay and hardware complexity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111227 |
|
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: 20120221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120319 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4958745 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |