JP2008017387A - ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法 - Google Patents

ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法 Download PDF

Info

Publication number
JP2008017387A
JP2008017387A JP2006188930A JP2006188930A JP2008017387A JP 2008017387 A JP2008017387 A JP 2008017387A JP 2006188930 A JP2006188930 A JP 2006188930A JP 2006188930 A JP2006188930 A JP 2006188930A JP 2008017387 A JP2008017387 A JP 2008017387A
Authority
JP
Japan
Prior art keywords
cell
cnt
output stage
cells
transmission
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.)
Granted
Application number
JP2006188930A
Other languages
English (en)
Other versions
JP4164771B2 (ja
Inventor
Kenshin Yamada
憲晋 山田
Hideki Nishizaki
秀樹 西崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006188930A priority Critical patent/JP4164771B2/ja
Priority to US11/822,590 priority patent/US20080008204A1/en
Publication of JP2008017387A publication Critical patent/JP2008017387A/ja
Application granted granted Critical
Publication of JP4164771B2 publication Critical patent/JP4164771B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, 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)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】入力段での遅延を最低限に抑えつつも、中間段に均一にセルを分散させ、出力段での遅延を最小限に抑えるロードバランス型スイッチを実現する。
【解決手段】ロードバランス型スイッチの各入力段1において、宛先出力段毎に各中間段へ送出したセルの個数をカウントし、宛先出力段毎に各中間段へのセルの送出個数が一定の範囲内に収まるように制御することで、セルを均等に分散する。
【選択図】 図11

Description

本発明は、スイッチ装置に関し、特に入力段・中間段・出力段にて構成されるロードバランス型スイッチ装置に関する。
ロードバランス型スイッチ装置における一般的なスイッチ構成として、入力バッファ型スイッチ、出力バッファ型スイッチ、共有バッファ型スイッチがある。
図1は、入力バッファ型スイッチ構成を表すブロック図である。入力バッファ型スイッチでは、複数の入力ポートから入力される固定長セルの宛先ポートが同一であった場合の待ち合わせ用に入力ポート毎に固定長セルの蓄積用のバッファを配備している。このスイッチ構成の場合、ある入力ポートのバッファの先頭にある固定長セルが、出力されるまでバッファの2番目以降の固定長セルは出力ができないため、バッファの先頭に格納されている固定長セルが他入力ポートの固定長セルと宛先出力ポート競合により待たされた場合には、2番目の固定長セルの宛先ポートが競合していない場合でも出力できない状態(HOLブロッキング:Head Of Lineブロッキング)となってしまいスループットの低下を招く欠点がある。
これに対処するために、図2に示すように、各入力ポートのバッファを宛先出力ポート毎に配備(VOQ:Virtual Output Queue)した入力バッファ型スイッチの形態もある。但し、どの入力ポートからどの出力ポートへ固定長セルを転送させるかを決定するスケジューリングを全経路(全入力ポート数×全出力ポート数)に対して行う必要があるために計算量の増加(H/W規模増加)を招き、多ポート収容を考慮すると実現が困難になるという欠点がある。
図3は、出力バッファ型スイッチ構成を表すブロック図である。出力バッファ型スイッチでは、全入力ポートから入力される固定長セルを多重処理して入力ポート速度のN倍(N:収容ポート数)の信号として各出力ポートまで出力される。出力ポートでは、複数の入力ポートからの固定長セルが一時期に集中して届く場合の待ち合わせ用に固定長セルの蓄積用のバッファを配備している。このスイッチ構成の場合、スイッチの内部処理速度として、インタフェース速度のN倍(N:入力ポート数)の処理速度が必要となり、ポート速度の高速化と多ポート収容を考えた場合実現が困難になるという欠点がある。
図4は、共有バッファ型スイッチ構成を表すブロック図である。共有バッファ型スイッチでは入力ポートと出力ポートの間に全ポート共通で使用するバッファを配備している。全入力ポートから入力される固定長セルを多重処理して入力ポート速度のN倍(N:入力ポート数)の信号として、バッファに書込みを行い、書込み速度と同じ速度で各出力ポートに出力する固定長セルの読出を行う。このスイッチ構成の場合、スイッチの内部処理速度として、インタフェース速度のN倍(N:入力ポート数)の処理速度が必要となり、ポート速度の高速化と多ポート収容を考えた場合実現が困難になるという欠点がある。
入力バッファ型スイッチの全入出力ポートを対象にしたスケジューラ処理をなくし、出力バッファ型スイッチや共有バッファ型スイッチのような収容ポート数増加に伴う内部処理速度の高速化を伴わないスイッチ構成として、ロードバランス型スイッチがある。なお、本ロードバランス型スイッチでは固定長のセルを単位としてスイッチング処理を行うものとする。ロードバランス型スイッチシステムへの入出力に可変長のパケットが入力されることも想定されるが、その場合、可変長パケットは、ロードバランス型スイッチへの入力時に固定長のセルに分割され、ロードバランス型スイッチからの出力時に固定長セルから可変長のパケットに結合され元に戻されるものとする。
図5にロードバランス型スイッチ10の構成例を示す。ロードバランス型スイッチ10は、L個の入力段1(1−1〜1−L)、M個の中間段2(2−1〜2−M)、N個の出力段3(3−1〜3−N)、メッシュ接続部4、メッシュ接続部5を備えている。
メッシュ接続部4はL個の入力段をM個の中間段とメッシュに接続し、メッシュ接続部5はM個の中間段をN個の出力段とメッシュに接続する機能を有する。メッシュ接続部4、メッシュ接続部5としては、実際に光ケーブルを用いて、物理的にメッシュ接続を実現する方法もあれば、クロスバスイッチなどのスイッチモジュールを利用して接続先を切り替えていくことにより、論理的にメッシュ接続を実現する方法もあり得る。
入力段1は、受信したセルに関して、どの中間段2に送出するかの判定を行い、メッシュ接続部4経由でセルの送出を行う。同様に中間段2は、入力段1から受信したセルに関して、どの出力段3に送出するかの判定を行い、メッシュ接続部5経由でセルの送出を行う。
入力段1は、受信したセルに関して、全ての中間段2へ均等に分散してセルを送出するため、入力段のセル受信レートをRとすると、各入力段からM個の中間段に対してはR/Mの速度でセルを送出できれば良く、メッシュ接続部4は、各入力段1と各中間段2をR/Mの速度でメッシュ接続できれば良い。同様に、中間段2から出力段3へのセルの送出に関しては、入力段1が各中間段2に均等にセルを分散しているため、各中間段2からある出力段3には、同一の転送レートにてセルが入力されると考えられる。出力段3がR’の速度でセルを外部に送出する場合、メッシュ接続部5は、各中間段から出力段3に対してR’/Mの速度にてメッシュ接続を実現すれば良い。このように入力段と中間段のメッシュ接続及び出力段と中間段のメッシュ接続を、中間段の個数Mで割った転送レートで接続すれば良いことが、ロードバランス型スイッチ10の特徴である。
このようにロードバランス型スイッチ10では、入力段1と中間段2間をR/Mの速度でメッシュ接続を行い、中間段2と出力段3間をR’/Mの速度でメッシュ接続を行えば十分であるが、特性向上・その他の理由により、より高い速度で接続を行っても良い。
また、メッシュ接続部4が、各中間段2に対して1本の線にてセルを入力する場合には、L個の全入力段1からの入力が束ねられるためR/M×Lの転送レートが必要である。メッシュ接続部5が、各出力段3に対して1本の線にてセルを入力する場合には、M個の全中間段2からの入力が束ねられるためR’/M×M = R’の転送レートが必要となる。
入力段数L、中間段数M、出力段数Nは、独立に設定可能であるが、L=M=Nとなるのが一般的な構成である。また、各入力段への入力回線レートRと各出力段への入力回線レートR’は、同一であるのが一般的な構成である。そのような構成では、図6に示すように、入力段、中間段、出力段の機能を1つの回線カード6(6−1,6−2,6−3)内に入れることが可能であり、回線カード間をメッシュに接続するメッシュ接続部7は、物理的に1つのメッシュ接続で実現することが可能である。なお、入力段、中間段、出力段の機能はそれぞれ、図5の入力段1、中間段2、出力段3に相当する。また、メッシュ接続部7は、図5のメッシュ接続部4及びメッシュ接続部5に相当する。
ロードバランス型スイッチ10は、入力段1、中間段2、出力段3のそれぞれにおいて遅延が発生する。入力段1では、中間段2へのセルの分散処理を行う際の分散アルゴ
リズムに応じてセル送出待ちによる遅延が発生する。中間段2は、各出力段3に対して、R’/Mの速度でセルを送出する。ロードバランス型スイッチ10に入力されるセルが、ある宛先ポートに偏った場合、すなわち、宛先ポートの送出レートR’よりも高いレートで入力される状況では、中間段のバッファにセルが蓄積され遅延が増大することになる。また、出力段3では、各中間段2からセルを受信するが、セルの受信順序が、入力段1が最初に外部から受信したセルの順序と一致していない場合がある。出力段3は、中間段2から受信したセルを正しい順番に並び替えるリオーダ(Reorder)処理を行った後に、外部へセルを送出するため、リオーダ処理による遅延が発生する。
ロードバランス型スイッチ10は、入力段1のセルの分散方法によっていくつかの方式が考えられるが、ここでは、2種類の分散方式に関し説明する。
従来例1は、Basicと呼ばれる方式である。Basicは、入力段1において受信したセルを機械的に中間段に分散する方式である。
図7に、従来例1のロードバランス型スイッチの動作例を示す。説明を簡易化するために中間段の個数K=3とし、入力段1−1から各中間段2(2−1,2−2,2−3)への転送部分だけを記載する。入力段1−1に入力されたセルは、特に何も処理されずに、そのままメッシュ接続部4へ転送される。メッシュ接続部4は、各セルタイムスロットにおいて、入力段1−1から受信したセルを中間段2−1,2−2,2−3へ順番に送出する動作を周期的に繰り返すものとする。ここでは、入力段1−1に入力された受信セル1〜7を例に説明する。セル3と4の間、及びセル6と7の間にある斜線のセルは、受信セル間の空隙(何も受信していない状態)、又は空白(NULL)のセルを示している。すなわち、斜線のセルは、有効なセルが存在していない状態を示している。まず、入力段1−1は、受信セル1〜7をそのままメッシュ接続部4へ転送する。メッシュ接続部4は、受信セル1を中間段2−1へ、受信セル2を中間段2−2へ、受信セル3を中間段2−3へ順番に送出する。この時、送出のタイミングは、セル毎にそれぞれ10msec(ミリ秒)ずれる。以降、同様に、受信セルを中間段2−1,2−2,2−3へ順番に送出する動作を周期的に繰り返す。なお、受信セル3と4の間にある斜線のセルも、ここでは中間段2−1へ送出するセルとして扱う。斜線のセルが実際には存在しない場合、中間段2−1へ何も送出しなくても良い。残りのセルについても、受信セル4を中間段2−2へ、受信セル5を中間段2−3へ送出する。また、受信セル6を中間段2−1へ、受信セル6と7の間にある斜線のセルを中間段2−2へ、受信セル7を中間段2−3へ送出する。
従来例1では、入力段1が受信したセルは、直ぐに、中間段2へと送出されるため、分散アルゴリズムによるセル送出待ちによる遅延は0である。
従来例2は、Full Ordered Frames First(FOFF)と呼ばれる方式である。FOFFは、各入力段1において、宛先の出力段毎のVOQを用意し、宛先毎に各中間段へ順番にセルを送出する方式である。
図8に、従来例2のロードバランス型スイッチの動作例を示す。説明を簡易化するために中間段の個数M=3とし、入力段1−1からメッシュ接続部4への転送部分だけを記載する。入力段は、宛先出力段毎のラウンドロビンポインタPTR(1)、PTR(2)、PTR(3)を有する。各ラウンドロビンポインタは、個別の宛先出力段に対して、次にどの中間段に送出するかを規定するポインタである。例えば、出力段3−1宛のセル1aを中間段2−1宛に送出した場合、次の出力段3−1宛のセルであるセル1bは、必ず中間段2−2宛に送出する必要がある。FOFFの場合、各宛先毎のラウンドロビンポインタにより厳密にどの中間段2へ送出するかが決まっているため、入力段にセルがたまっていてもセルを送出できないという状況が発生する可能性がある。なお、厳密なアルゴリズム定義としては、従来例2は、あるVOQにセルがN個以上たまっている場合は、N個のセルを優先して中間段へ分散送出する。
上記の従来例2のロードバランス型スイッチの動作例について、以下に詳述する。
なお、入力段1−1は、3個のVOQを有し、この3個のVOQの各々に受信したセルが振り分けられて格納される。また、3個のVOQの各々にラウンドロビンポインタが存在する。これらのラウンドロビンポインタをPTR(1)、PTR(2)、PTR(3)とする。中間段送出タイムスロット1,2,3はそれぞれ、中間段2−1,2−2,2−3を示している。
図8のセル1aに注目すると、中間段送出タイムスロットが1であり、PTR(1)又はPTR(3)が1(中間段2−1)を宛先の中間段として規定している。ここでは、PTR(1)を有するVOQのセルを中間段2−1に送出する。セル1aと同じ出力段に送出されるセル1bは、中間段2−2宛に送出する必要があるため、PTR(1)は1から2に切り換わる。このため、中間段送出タイムスロット2では、PTR(1)は2,PTR(2)は2,PTR(3)は1となる。セル1bを送出するまでPTR(1)は2でなければならないため、ここでは、PTR(2)を有するVOQのセルを中間段2−2に送出する。セル2aと同じ出力段に送出されるセル2bは、中間段2−3宛に送出する必要があるため、PTR(2)は2から3に切り換わる。中間段送出タイムスロット3では、PTR(1)は2,PTR(2)は3,PTR(3)は1となる。中間段送出タイムスロットが3の時、有効なセルが存在しないため何も送出しない。そして、再び、中間段送出タイムスロットは1となり、セル3aを送出する。この時、PTR(3)を有するVOQのセルを中間段2−1に送出し、PTR(3)は1から2に切り換わる。次に、セル1bを送出する。中間段送出タイムスロットが3であり、PTR(1)が2であるため、PTR(1)を有するVOQのセルを中間段2−1に送出し、PTR(1)は2から3に切り換わる。以降、同様の動作を繰り返す。
図9に、スイッチポート数(L=M=N)が4の場合の従来例1(Basic)と従来例2(FOFF)のシミュレーション結果を示す。
X軸は、トラフィックロード(常時セルが入力される時を100%とする)であり、Y軸は、平均遅延量を示している。トラフィックは、ランダム生起、ランダム宛先のモデルである。ポート数が4の時は、トラフィックロードが70%以下では従来例1が従来例2よりも遅延が小さいが、70%以上では従来例2の方が、遅延量が小さくなる。トラフィックロードが70%以下では、入力段で待ち合わせを行わない従来例1の遅延量が小さくなる。トラフィックロードが70%以上になると従来例2の方の遅延が小さくなる理由は、従来例2では、入力段1が宛先出力段3毎に、各中間段2への送出セル数の差が1以下になるように厳密に均一分散するからである。すなわち、入力段1が各中間段2に対してセルを分散されることで、各中間段2から出力段3に到着するセル間の受信時間のばらつきを小さく抑える効果があるため、出力段でのリオーダ処理による遅延量が従来例1に比べて小さくなる。従来例1では、入力段1において、待ち合わせ処理無く遅延0でセルの送出を行うが、宛先毎の各中間段へのセルの送出個数に偏りが発生することがあるため、従来例2に比べると出力段3でのリオーダ処理による待ち合わせ時間が大きくなる。結果として、従来例1では、全体としての遅延特性が大きくなってしまう。
以上のことから、トラフィックロードが高い場合には、入力段が宛先毎に厳密にセルを分散することにより、全体としての遅延を小さく抑えることが可能なことが分かる。
図10に、スイッチポート数(L=M=N)が128の場合の従来例1(Basic)と従来例2(FOFF)のシミュレーション結果を示す。
スイッチポート数が4の場合と異なり、スイッチポート数が128の場合、従来例2は従来例1よりも平均遅延時間が大きくなってしまう。
これは、入力段1でセルを均等に分散することで出力段3でのリオーダ処理の待ち時間の削減量よりも、入力段1でセルを均等に分散するために待ちあわせている時間の方が大きいためである。従来例2では、入力段1において、各宛先出力段3毎のラウンドロビンポインタが、セルタイムスロットで規定されうる送出先の中間段の番号と一致しなければセルを送出することができない。よって、スイッチポート数が大きくなるほど、セルを送出できない可能性が高くなってしまうのが、遅延時間を増大させる原因となっている。スイッチポート数が4の時は、4セルタイムスロットに1回はセルを送出できるが、スイッチポー数が128になると、128セルタイムスロットに1回しか送出可能なセルタイムスロットが存在しない。
従来例1では、各中間段2に均等にセルが分散されないことにより、トラフィックロードが高い時の出力段3におけるリオーダ処理遅延時間が大きくなるという問題がある。また、出力段3での最大の遅延時間が規定できないため、リオーダ処理のアルゴリズムが複雑化するという問題がある。
従来例2では、各中間段2に対して均等にセルを分散させるために入力段1で待ちあわせを発生させる必要がある。特にスイッチポート数が大きくなると、この待ち合わせ時間の影響が大きく、全体としての遅延特性が劣化するという問題がある。その原因は、入力段1において、各宛先毎にラウンドロビンポインタで指定された1つの中間段2にしか送出できないために、その中間段2へ送出可能となるまでセル送出を待ち合わせしなければならないからである。
すなわち、従来例1(Basic)はスイッチポート数が小さい時、従来例2(FOFF)はスイッチポート数が大きい時に性能が悪いという問題がある。
関連する技術として、特開2002−164914号公報(特許文献1)にパケット交換装置が開示されている。
このパケット交換装置は、複数の受信手段と、複数の送信手段と、スイッチ手段とを備える。複数の受信手段は、入力ポート単位にパケットを受信する。複数の送信手段は、出力ポート単位にパケットを送信する。スイッチ手段は、受信手段から受け取ったパケットを所望の出力方路に対応する送信手段へ転送する。
前記各受信手段は、方路決定手段と、パケット蓄積手段とを備える。方路決定手段は、パケットの宛先アドレス情報に基づいて出力方路を決定する。パケット蓄積手段は、出力方路毎にパケットを蓄積する複数のバッファで構成され、スイッチ手段からの空き状況に応じて蓄積されたパケットを読み出す。
前記スイッチ手段は、受信手段数分の入力制御手段と、送信手段数分の出力制御手段とを備える。受信手段数分の入力制御手段は、各受信手段内の複数のバッファに個別に対応した複数の小容量バッファ(バッファの容量>小容量バッファの容量)を備え、当該小容量バッファ内の空き状況を、対応する受信手段に対して個別に通知する。送信手段数分の出力制御手段は、前記各入力制御手段内の小容量バッファに蓄積されたパケットを受け取り、当該パケットを対応する出力方路の送信手段に対して個別に出力する。
また、特開平10−107846号公報(特許文献2)にパケット処理装置が開示されている。
このパケット処理装置は、複数の回線対応部と、カウンタと、割合レジスタと、比較器と、セレクタとを具備する。複数の回線対応部は、通信回線上のデータを受け取り、また該通信回線上にデータを送出する。カウンタは、回線対応部単位に配置され、且つパケット宛先別に測定された送出パケット量の合計値を保持する。割合レジスタは、同一宛先を持つ複数の回線対応部の使用割合を保持する。比較器は、該割合レジスタとカウンタの各値を参照して、次に使用すべき回線対応部を決定する。セレクタは、該比較器の決定に従ってパケットの送出先を切り替える。また、このパケット処理装置は、同一宛先を持つ各通信回線の負荷に応じて、上記割合レジスタに使用割合を設定することにより、各通信回線の負荷に応じて複数の通信回線を切り替えてパケットを送出することを特徴とする。
特開2002−164914号公報 特開平10−107846号公報 「Isaac Keslassy, "The Load−Balanced Router," Ph.D. Dissertation, Stanford University, June 2004」
本発明の目的は、入力段において可能な限り遅延を発生させずに受信セルを中間段宛に送出するロードバランス型スイッチ装置を提供することである。
本発明の他の目的は、入力段から中間段への宛先毎のセル送出個数を均等に分散することで出力段3でのリオーダ処理による遅延時間も削減し、スイッチ全体としての遅延時間を削減するロードバランス型スイッチ装置を提供することである。
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のロードバランス型スイッチ装置(10,11)は、少なくとも1つの入力段(1,101,201)と、複数の中間段(2)と、複数の出力段(3)とを有する。前記少なくとも1つの入力段(1,101,201)は、受信セルに対応する宛先出力段を判定する宛先判定部(21)と、前記宛先出力段に接続されている前記複数の中間段(2)の各々とメッシュに接続され、前記宛先判定部(21)から入力されたセルを前記宛先出力段毎に格納し、前記格納されたセルが送出可能であれば前記各中間段(2)宛に送出するセル送出部(22,122,222)と、前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記各中間段(2)へ振り分ける場合、宛先出力段i及び経由する中間段j毎の送出カウンタout_cnt[i][j]を管理し、前記各宛先出力段i毎に、前記各中間段(2)に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分ける送出セル決定部(23,123,223)とを具備する。なお、セル送出部(22,122,222)には、メッシュ接続部(4,7)が含まれていても良い。
前記送出セル決定部(23,123,223)は、前記宛先出力段i宛のセルを前記中間段jに対して送出可能かどうかを判定する場合、前記宛先出力段i毎の前記各中間段(2)への前記送出カウンタの最大値max_cnt[i]と最小値min_cnt[i]を管理し、最大値max_cnt[i]と最小値min_cnt[i]の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段jへの前記送出カウンタout_cnt[i][j]の値が最大値max_cnt[i]となっていない場合に、セルを送出可能と判定する。
前記送出セル決定部(23,123,223)は、max_cnt、min_cnt、out_cntの各パラメータに関して、K > 差分許容値となるKの値を利用して、modulo K演算した値(各パラメータをKで割った時の剰余)として管理する。
前記送出セル決定部(23,123,223)は、前記宛先出力段i毎に、modulo K演算された前記各中間段jへのカウント値(out_cnt[i][j])の分布をcnt_num[i][]にて管理する。
前記送出セル決定部(23,123,223)は、min_cnt[i]の更新処理の際、min_cnt[i]値となっている中間段(2)の個数が1個(=cnt_num[i][min_cnt[i]]==1)で、且つ、セルを送出する前記中間段jへの送出カウントがmin_cnt[i]と一致する場合に、min_cnt[i]の更新を行う。
前記セル送出部(22)は、前記宛先検出部から入力されたセルを前記宛先出力段毎のVOQ(Virtual Output Queue)に格納し、前記送出セル決定部(23)は、前記VOQに蓄積されたセルの中から送出可能なセルを1つ選択する。
前記送出セル決定部(23)は、前記宛先出力段iへの送出の際、前記VOQに蓄積しているセルが複数個の場合に、前記宛先出力段iへの複数のセルを連続して送出するように予約する。
前記送出セル決定部(23)は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをランダムな順番でチェックする。
前記送出セル決定部(23)は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをラウンドロビンの順番でチェックする。
前記送出セル決定部(23)は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記VOQに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックする。
前記送出セル決定部(23)は、送出チェック対象の前記宛先出力段iに関して、前記VOQに複数のセルが存在し、max_cnt[i]−min_cnt[i]の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をする。
前記送出セル決定部(23)は、前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記VOQ内に中間段(2)の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出する。
前記送出セル決定部(23)は、前記VOQ内に中間段(2)の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分ける。
前記送出セル決定部(23)は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックし、送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記VOQにセルが残っている場合には、前記チェック対象リストの末尾に追加し直す。
前記送出セル決定部(23)は、前記チェック対象リストの順番を決める優先度パラメータとして前記VOQの蓄積セル数を利用し、前記VOQの蓄積セル数が大きい宛先出力段のセルを優先してチェックする。
前記送出セル決定部(23)は、前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値(max_cnt[i]−min_cnt[i])を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックする。
前記送出セル決定部(23)は、前記差分値(max_cnt[i]−min_cnt[i])が同じ場合は、前記最小カウント値となっている中間段(2)の個数(=cnt_num[i][ min_cnt[i] ])が小さい宛先出力段のセルを優先してチェックする。
前記送出セル決定部(23)は、前記中間段jへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてmax_cnt[i]−out_cnt[i][j]の大きい宛先出力段のセルを優先してチェックする。
前記送出セル決定部(23)は、max_cnt[i]−out_cnt[i][j]が同じ場合は、out_cnt[i][j]よりも小さいカウント値(out_cnt[i][j]>out_cnt[i][j’]となるj’)となっている中間段(2)の個数の少ない宛先出力段のセルを優先してチェックする。
前記送出セル決定部(23)は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段iのセルのチェック順番を更新する。
前記送出セル決定部(23)は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行う。
前記セル送出部(122,222)は、受信時に送出できなかったセルをFIFOに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部(123,223)が前記FIFOの先頭若しくは前記受信セルのどちらかを指定して読み出す。前記送出セル決定部(123,223)は、前記FIFOの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記FIFOの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定する。
前記送出セル決定部(123,223)は、宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットする。
前記送出セル決定部(123,223)は、前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行う。
前記送出セル決定部(123,223)は、前記カウンタ値の更新を行う際、中身の無効な空きセルを送出する。
ロードバランス型スイッチの各入力段において、宛先出力段毎に各中間段へ送出したセルの個数をカウントし、宛先出力段毎に各中間段へのセルの送出個数が一定の範囲内に収まるように制御することで、セルを均等に分散する。
各入力段では、各中間段へのセルの送出個数が一定の範囲内に収まっている状況においては、受信したセルを待ち合わせさせることなく、遅延0にて中間段に送出可能である。よって、送出可能な中間段が1箇所に限定されないため、入力段での遅延を削減しながら、中間段への均等な分散が実現可能である。
以下に本発明の第1実施形態について添付図面を参照して説明する。
本発明のロードバランス型スイッチの基本構成は図5に示す通りである。本発明のロードバランス型スイッチは、入力段1の構成に特徴がある。なお、図6に示す構成を用いる場合、回線カード6の入力段機能が入力段1に相当する。
図11に、本発明のロードバランス型スイッチにおける入力段1の構成例を示す。
入力段1は、宛先検出部21と、VOQ部22と、送出セル決定部23と、管理メモリ24を備えている。
入力段1に外部から入力されたセルは、宛先検出部21にて、宛先の出力段を判定後、VOQ部22と送出セル決定部23に入力される。VOQ部22では、宛先検出部21から入力されたセルを宛先出力段毎のVOQバッファに格納し、送出セル決定部からの読み出し要求があると、指定された宛先出力段に関してVOQの先頭セルを読み出して、メッシュ接続部4宛に送出する。送出セル決定部23は、宛先検出部21から入力されるセル毎の宛先出力段情報からVOQの蓄積セル数を管理し、各セルタイムスロットにおいてどのVOQからセルを送出するかを決定する。送出セル決定部23は、管理メモリ24内に、宛先出力段i毎のVOQ蓄積セル数:voq_cnt[i]と、セルが通過する中間段j(j=1〜K:Kは中間段の個数)、出力段i毎のセル送出カウンタ:out_cnt[i][j]、また、宛先出力段i毎の前記セル送出カウンタout_cnt[i][j]の最小値:min_cnt[i](out_cnt[i][1]、out_cnt[i][2]、・・・out_cnt[i][K]の最小値)と最大値:max_cnt[i](out_cnt[i][1]、out_cnt[i][2]、・・・、out_cnt[i][K]の最大値)を管理する。宛先出力段毎のVOQ蓄積セル数は、宛先検出部21からセルが入力されるとカウントアップされ、VOQから読み出し対象と判定されるとカウントダウンする。中間段・出力段毎のセル送出カウンタは、中間段と出力段で規定されるセルの転送経路毎の送出カウント数が管理されている。
この時、入力段1から中間段2に送出するセルは、大きさがある程度そろっていることが望ましいが、必ずしも固定長セルに限らなくても良い。例えば、可変長セルの場合、セル数ではなくセルの大きさ(データ長)をカウントするようにすることも可能である。ここでは、固定長セルでの実施の方が性能的には良い結果が出ると期待できるため、固定長セルの場合を例示しているに過ぎない。
図12に、送出セル決定部23のセル受信処理の動作フローチャートを示す。
(1)ステップS101
送出セル決定部23は、宛先出力段iからセルを受信したことを認識する。
(2)ステップS102
送出セル決定部23は、宛先出力段iからセルを受信したことを認識すると、該当宛先出力段iの蓄積セル数をインクリメント(voq_cnt[i]++)する。
図13に、送出セル決定部23の送出セル選択処理の動作フローチャートを示す。
(1)ステップS201
送出決定部23は、ある宛先出力段iに関して、VOQ蓄積セルが存在し(voq_cnt[i] > 0)、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。
(2)ステップS202
そのような出力段が存在する場合は、該当宛先出力段iのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。
図14に、セル送出可能判定処理内の処理(ステップS202)のフローチャートを示す。
(1)ステップS202−1
まず、カウンタ最大値とカウンタ最小値の差分(max_cnt[i] ? min_cnt[i])が許容差分値よりも小さいかどうかを判定する。差分値が許容差分値よりも小さければセルの送出が無条件で可能となる。
(2)ステップS202−2
それ以外の(差分値が許容差分値と一致する)場合は、更に、宛先出力段iと現在のタイムスロットでの送出先の中間段jに対応するカウンタout_cnt[i][j]がカウンタの最大値max_cnt[i]と一致するかどうかを調べる。out_cnt[i][j]がmax_cnt[i]と一致する時は、宛先出力段i宛のセルを中間段jに送出すると許容差分値を超過することになるため、セルの送出は不可(No)と判定する。out_cnt[i][j]がmax_cnt[i]と一致しなければ、中間段jへのセル送出が可能(Yes)と判定する。
(3)ステップS202−3
宛先出力段i宛のセルを中間段jに送出することが決まった場合は、VOQ蓄積セル数をディクリメント(voq_cnt[i]−−)し、送出セルカウントをインクリメント(out_cnt[i][j]++)し、必要に応じて、max_cnt[i]、min_cnt[i]の更新を行う。すなわち、out_cnt[i][j]の値に応じて、max_cnt[i]、min_cnt[i]の更新を行う。例えば、out_cnt[i][j]が、その時点のmax_cnt[i]よりも大きくなれば、out_cnt[i][j]の値をmax_cnt[i]とする(max_cnt[i]=out_cnt[i][j])。同様に、out_cnt[i][j]が、その時点のmin_cnt[i]よりも小さくなれば、out_cnt[i][j]の値をmin_cnt[i]とする(min_cnt[i]=out_cnt[i][j])。
以上の制御により、宛先出力段毎に、各中間段へのセル送出数の差分が許容差分値以内に抑える均等な分散処理を実現できる。
なお、本フローチャートでは、各セルタイムスロットにおいて、そのセルタイムスロットで送出可能なセルの判定処理を行っているが、複数のセルがVOQにたまっている状況では、複数のタイムスロット分の送出セルを決定しても良い。1セルタイムスロットに複数セルタイムスロットの送出予約を可能にすることで、セルタイムスロット毎にどのセルを送出するかを判定する処理時間に増減が発生する場合でも、該処理時間の平均時間が1セルタイムスロット時間に間にあえば、スループット100%でセルの転送を実行することが可能である。また、同じ宛先に同時に複数のセルを連続的に送出することで、セルタイムスロットあたりの判定時間そのものを削減することも可能である。例えば、ある宛先出力段iに関して、max_cnt[i]とmin_cnt[i]の差分が差分許容値よりも小さい場合には、連続してセルを送出している限りは、該差分が差分許容値よりも大きくなることはない。よって、一度の判定処理で、宛先出力段iに関してVOQに蓄積されているセルの全てを連続して送出可能と判定できる。
本発明のロードバランス型スイッチの動作例を図15に示す。スイッチポート数(L,M,N)は3である。
ある入力段からセルを送出可能な中間段がjである中間段タイムスロットが、1,2,3,1,2,3の順番で変化していく。
セルタイムスロットの時刻t=1において、宛先出力段i=1宛のセルが到着したものとする。この時の中間段タイムスロットは1であり、セルの送出が可能であることから、out_cnt[1][1]=1にインクリメントされ、max_cnt[1]が1に設定される。
t=2において、宛先出力段i=2宛のセルが到着する。この時の中間段セルタイムスロットは2であり、セルの送出が可能であることから、out_cnt[2][2]=1にインクリメントされ、max_cnt[2]が1に設定される。
t=7において、宛先出力段i=1宛のセルが到着する。この時の中間段セルタイムスロットは1であるが、カウンタ値の差分max_cnt[1]−min_cnt[1]=2と差分許容値と一致しており、宛先出力段i=1に対する中間段j=1への送出カウンタout_cnt[1][1]=2がmax_cnt[1]=2と一致しているため、セルの送出ができない。よって、受信セルは送出されずにVOQに蓄積されvoq_cnt[1]=1にインクリメントされる。
次のセルタイムスロットt=8では、中間段セルタイムスロットが2となる。中間段j=2の送出カウンタの値はout_cnt[1][2]=0であるため、セルの送出が可能と判定される。
t=14においては、宛先出力段i=3宛のセルが到着する。この時の中間段セルタイムスロットは2である。voq_cnt[3][2]=1であり、max_cnt[3]=2よりも小さいため、受信したセルの送出が可能であるが、t=13にて、VOQに蓄積された宛先出力段1宛のセルが送出選択されているため、受信した宛先出力段i=3宛のセルは送出されずにVOQに蓄積される(voq_cnt[3]=1)。
t=14のように、宛先出力段i1(この場合i1=1)宛のセルがVOQに蓄積されている状態で、別の宛先出力段i2(この場合i2=3)宛のセルが到着した場合、送出可能なセルが2個以上となる場合があり得る。複数のセルが選択可能な場合の選択の方法として以下のような方法が考えられる。
(a)「ランダムに選択」
ランダムに選択する理由は、ポート間の偏りを無くすためである。
(b)「前回選択されたものを最低優先として、ラウンドロビンで選択」
前回、ポート2からセルが出力された場合は、次は、ポート3からラウンドロビン(3,1,2)でチェック処理を行う。
ラウンドロビンに選択肢する理由は、ランダムと同様、ポート間の偏りを無くすためであるが、より、簡易な実装が可能となる。
(c)「上記の制御に加えて、受信したセルよりもVOQに蓄積されているセルを優先する制御」
受信したセルよりもVOQに蓄積されているセルを優先するのは、VOQに蓄積されたセルが、スイッチ内に残り続けることで該当セルの遅延が増大することを防止するためである。
他の選択方法に関しては、別の実施例にて説明する。
ここでは、セル送出判定方法について説明する。
本発明に関して、送出セル決定部23が宛先出力段iのセルを中間段jに送出することを決定した際の管理メモリの更新処理(S202−3)の詳細な実施例1のフローチャートを図16に示す。詳細な実施例1の送出セル決定部23では、管理メモリ内で、前述のvoq_cnt[i]、out_cnt[i][j]、max_cnt[i]、min_cnt[i]に加え、中間段への送出したセル個数の分布を意味するcnt_num[i][]を有する。例えば、cnt_num[2][3]=5、cnt_num[2][4]=3の時は、宛先出力段2宛の各中間段へのセル送出カウンタに関して、カウンタ値が3個の中間段が5箇所、カウンタ値が4個の中間段が3箇所存在することを意味する。
なお、out_cnt[i][j]、max_cnt[i]、min_cnt[j]は、セルの送出個数を意味するパラメータであるが、差分許容値を超えない分散制御を行うためのパラメータであり、実際に管理メモリに格納される値としてはK > 差分最大許容量となるKの値を用いてmodulo K演算した値が利用される。modulo K演算した値として、各パラメータをKで割った時の剰余を用いる。例えば、K=4の場合、カウンタ値4は0に変換され(4 mod 4 = 0)、カウンタ値13は1に変換される(13 mod 4 = 1)。
送出セル決定部23が宛先出力段iのセルを中間段jに送出する際の管理メモリ更新処理(S202−3)の動作を以下に示す。
(1)ステップS202−3−1
送出対象セルの宛先出力段iのVOQセル蓄積数(voq_cnt[i])から1減算する。すなわち、送出対象セルの宛先出力段iのVOQセル蓄積数をディクリメント(voq_cnt[i]−−)する。
(2)ステップS202−3−2
次に、出力段i、中間段jへのセル送出カウンタout_cnt[i][j]が、カウンタ最大値max_cnt[i]と一致しているかどうかをチェックする。
(3)ステップS202−3−3
一致している場合はmax_cnt[i]に1を加算する。すなわち、カウンタ最大値をインクリメント(max_cnt[i]++)する。
(4)ステップS202−3−4
次に、出力段i、中間段jへのセル送出カウンタout_cnt[i][j]が、カウンタ最小値min_cnt[i]と一致し、且つ、宛先出力段iに関してカウンタ最小値となっているout_cnt[i][j]が1つしかないかどうか確認する。
(5)ステップS202−3−5
出力段i、中間段jへのセル送出カウンタout_cnt[i][j]が、カウンタ最小値min_cnt[i]と一致し、且つ、宛先出力段iに関してカウンタ最小値となっているout_cnt[i][j]が1つしかない場合は、カウンタ最小値を1減算する(min_cnt[i]−−)。
(6)ステップS202−3−6
最後に、カウンタ分布cnt_num[i][]の更新を行う。
(7)ステップS202−3−7
送出カウンタout_cnt[i][j]に1を加算する(out_cnt[i][j]++)。
本詳細な実施例1では、送出セルが決定した際の管理メモリの更新処理が、中間段の個数Mと無関係にO(1)で実現されるため、固定時間内での処理が可能となる。
図17に、本詳細な実施例1での動作例を示す。
本動作例では、概念上のパラメータmax_cnt、min_cnt、out_cntの右に、実際に管理メモリ内で管理されるmodule K演算されたパラメータであるmax_cnt、min_cnt、out_cntとcnt_numの値の変化を示す。説明の簡易化のために、宛先出力段i=1のパラメータ変化だけを示している。
初期状態であるセル時刻t=0では、全ての送出カウンタout_cnt[1][1]、out_cnt[1][2]、out_cnt[1][3]が0であるため、カウンタ分布は、0の分布がcnt_num[1][0]=3となり、それ以外の分布cnt_num[1][1]、cnt_num[1][2]、cnt_num[1][3]は0となる。
セル時刻t=1では、out_cnt[1][1]が0から1に変化することで、カウンタ分布は、cnt_num[1][0]が2にディクリメントされ、cnt_num[1][1]が1にインクリメントされる。
セル時刻t=22では、概念上のout_cnt[1][1]=4であるが、管理メモリに登録される値は、module K(=4)演算されるためout_cnt[1][1]=0となる。カウンタ分布は、modulo K演算された送出カウンタの分布を演算するため、cnt_num[1][0]=1となる。
ここでは、VOQチェック順序決定方法について説明する。
本発明の詳細な実施例2では、送出セル決定部23が、VOQ内のセルが送出可能かどうかをチェックする際に、どの順番でチェックするかの実施例に関して示す。送出セル決定部23は、チェックする宛先出力段を決定するために、VOQにセルが蓄積されている宛先出力段に関して、どの順序でチェックするかチェック順番リストにより管理するものとする。
送出セル決定部23は、チェック順番リストの先頭から順番にチェックを行い、送出可能セルを発見するまで処理を繰り返す。送出可能セルを発見し、該当VOQのセルが無くなる場合は、チェック順番リストから該当宛先出力段の番号を消去する。送出可能セルを発見したが、該当VOQのセルが残っている場合は、該当宛先出力段の番号をチェック番号リストの末尾に移動する。
また、voq_cnt[i]=0である宛先出力段i宛のセルを受信した場合は、チェック順番リストに宛先出力段iを追加する。
図18にチェック順番リストを用いる場合の動作例を示す。
t=0においては、出力段1宛のセルが送出され、voq_cnt[1]=0となるため、チェック順番リストの先頭の宛先出力段i=1がリストから消去される。
t=1においては、出力段4宛のセルを新たに受信し、voq_cnt[4]=1となるため、チェック順番リストの末尾にセルが追加される。
t=2においては、出力段2のセルが送出されるが、voq_cnt[2]>0のままであるため、チェック順番リストの宛先舎出力段i=2が、リストの末尾に移動する。
このように、チェック順番リストを用いることで、送出セル決定部23は、VOQに蓄積されているセルのみをチェック対象として高速にセル送出判定をすることが可能である。また、最も長くVOQに蓄積されたままのセルほど優先して送出することが可能になる。また、チェック順番リストの最大長はKであるため、最悪条件においてもK回に1回は送出するチャンスが回ってくることになる。
本発明の詳細な実施例3では、実施例2と同様に、送出セル決定部23が、チェック順番リストを利用して、リストに登録された宛先出力段iの順番で、セルの送出が可能かどうかをチェックするが、チェック順番リストの順番を決定する際に、各宛先出力段毎の優先度パラメータを利用して、優先度パラメータの値が、高い順、若しくは、低い順にチェックするものとする。
優先度パラメータとしては、例えば、以下のようなものが考えられる。
(a)VOQのセル蓄積量の多い順。
(b)最大カウントと最小カウントの差分値(max_cnt[i]−min_cnt[i])が大きい順。
(c)上記に加えて、前記差分値が同一の場合は、最小カウント値となっている中間段cnt_num[i][ min_cnt[i] ]の小さい順。
実現パラメータ例
(max_cnt[i]−min_cnt[i])×K + (K−cnt_num[i][min_cnt[i]])の大きい順
上記のパラメータを利用することにより、セル送出に偏りが発生し送出できない可能性が高い宛先出力段ほど、優先してチェックされるようになるため、入力段で、セルが入力されてから送出されるまでの遅延時間の最大値を削減する効果がある。
また、優先度パラメータによる並び替えを毎セルタイムスロット実施する場合には、以下のような優先度パラメータが考えられる。
(a)max_cnt[i] − out_cnt[i][j]の大きい順。
(b)上記に加えて、上記の値が同一の場合は、out_cnt[i][j]よりも小さいカウント値(out_cnt[i][j]>out_cnt[i][j’]となるj’)となっている中間段の個数の少ない宛先出力段を優先する。
上記のパラメータを利用することにより、セル送出に偏りが発生し送出できない可能性が高く、且つ、今回中間段jにセルを送出することにより、偏りを改善できるセルを優先してチェックすることが可能である。
チェック順番リストの優先度パラメータに基づくセル送出処理の具体例について説明する。図19に、優先度パラメータとしてVOQのセル蓄積量の多い順の例を示す。すなわち、ここではVOQ長を優先度パラメータとしている。
最初に、宛先出力段1の優先度パラメータ(VOQ長)は5、宛先出力段3及び4の優先度パラメータは3、宛先出力段2の優先度パラメータは1であるものとする。
t=0においては、セルの受信は無く、出力段1宛のセルが送出されるため、宛先出力段1の優先度パラメータが1減少する。
t=1においては、出力段1宛のセルを受信し、宛先出力段1の次に優先度パラメータが大きい出力段4宛のセルが送出され、宛先出力段4の優先度パラメータが1減少する。
t=2においては、宛先出力段4の優先度パラメータが1減少したことにより、宛先出力段3と宛先出力段4の順番が入れかわる。出力段1宛のセルは既に優先度パラメータが5(VOQ長=5)であるため、出力段3宛のセルを受信する。また、宛先出力段4の次に優先度パラメータが大きい出力段2宛のセルが送出され、宛先出力段2の優先度パラメータが1減少する。この時、宛先出力段2の優先度パラメータは0になるため、宛先出力段2がリストから消去される。
t=3においては、宛先出力段2がリストから消去されたことにより宛先出力段が1,3,4の3つになるため、出力段5宛のセルを新たに受信し、優先度パラメータが最も大きい出力段1宛のセルが送出される。
t=4においては、優先度パラメータが最も小さい出力段5宛のセルを受信し、優先度パラメータが最も大きい出力段1宛のセルが送出される。
t=5においては、出力段5宛のセルを受信し、宛先出力段5の優先度パラメータが宛先出力段4の優先度パラメータよりも大きくなるため順番が入れかわる。また、宛先出力段1の優先度パラメータが宛先出力段3の優先度パラメータよりも小さくなったため順番が入れかわるため、出力段3宛のセルが送出される。
スイッチポート数(L=M=N)が4の場合の従来例1(Basic)、従来例2(FOFF)、本発明のロードバランス型スイッチ(New)のシミュレーション結果を図20に、スイッチポート数(L=M=N)が128の場合の従来例1(Basic)、従来例2(FOFF)、本発明のロードバランス型スイッチ(New)のシミュレーション結果を図21に示す。図20,図21を参照すると、本発明のロードバランス型スイッチ(New)では、従来例1(Basic)及び従来例2(FOFF)と比較して、トラフィックロードが70%以上になると平均遅延量が小さくなることがわかる。
本発明のロードバランス型スイッチのカウンタ許容差分値は1である。
本発明のロードバランス型スイッチでは、スイッチポート数が4と128の両方において高負荷状態での低遅延が実現できている。
これは、本発明のロードバランス型スイッチにおいて、入力段では、送出セルに偏りが発生しない限りは、セルを待ち合わせなく送出することが可能であり、入力段での遅延を小さく抑えたまま、セルを各中間段に均等に分散することで、出力段での待ち合わせの遅延も削減することを可能にするからである。
本発明のロードバランス型スイッチの他の実施例1に関して説明する。
ここでは、後段FOFF動作について説明する。
他の実施例1では、第1実施形態の中で、送出セル選択処理の動作が異なる。他の実施例1では、送出カウンタに従ってVOQをチェックした結果送出可能なセルが存在しない場合に、VOQを再度チェックし、Mセル以上蓄積しているセルが存在する場合には、それからMセル周期の間、指定された同一宛先出力段のVOQからのセルの送出を行う。Mセルをまとめて出力処理を行うため、本処理を追加した結果、どこかの中間段への送出セル数に偏りが生じることは無い。
図22に、他の実施例1での送出セル選択処理の動作フローチャートを示す。
(1)ステップS301
送出可能なセルが存在するかどうか判定する。実施例1では、複数のセルを同時に送出予約することがあるため、各セルタイムスロットにおいて、既に、セルが予約状態になっている時は、送出判定は不要である。
(2)ステップS302
予約状態になっているセルが存在しなければ、本発明の第1実施形態と同様に、VOQの蓄積セルで送出可能なセルが存在しないかを、送出カウンタを利用してチェックする。この時、送出決定部23は、ある宛先出力段iに関して、VOQ蓄積セルが存在する、すなわち、voq_cnt[i] > 0で、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。この処理は、ステップS201と同じである。
(3)ステップS303
そのような出力段が存在する場合は、該当宛先出力段iのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。この処理は、ステップS202と同じである。
(4)ステップS304
送出可能なセルが存在しない場合、VOQ蓄積セル数voq_cnt[i]が中間段2の個数であるM以上となっている宛先出力段iが存在しないかをチェックする。
(5)ステップS305
VOQにMセル以上蓄積された宛先出力段iが存在する場合、M個のセル送出を予約する。
S304において、Mセル以上たまっている宛先出力段が複数存在する場合に、どのセルを利用するかに関しては、ランダムに選択する方法や、ラウンドロビンで選択する方法、最も蓄積する数の多い宛先出力段を選択する方法などが考えられる。
他の実施例1では、第1実施形態においては、送出できないセルタイムスロットにおいても、ある出力段に関してVOQにNセル以上たまっている場合にはセルを送出可能となるため、その部分の入力段での遅延時間を削減できる効果がある。
本発明のロードバランス型スイッチの他の実施例2に関して説明する。
ここでは、前段FOFF動作について説明する。
他の実施例2では、VOQ蓄積セル数がM以上の宛先出力段iが存在するかどうかをチェックし(S302)、存在する場合にはMセル分を送出予約する処理(S303)を、送出セルカウンタを利用しての送出判定処理(S304,S305)より前に実施する。
他の実施例2での送出セル選択処理の動作フローチャートを図23に示す。
(1)ステップS301
送出可能なセルが存在するかどうか判定する。各セルタイムスロットにおいて、既に、セルが予約状態になっている時は、送出判定は不要である。
(2)ステップS304
送出可能なセルが存在しない場合、VOQ蓄積セル数voq_cnt[i]が中間段2の個数であるM以上となっている宛先出力段iが存在しないかをチェックする。
(3)ステップS305
VOQにMセル以上蓄積された宛先出力段iが存在する場合、M個のセル送出を予約する。
(4)ステップS302
予約状態になっているセルが存在しなければ、本発明の第1実施形態と同様に、VOQの蓄積セルで送出可能なセルが存在しないかを、送出カウンタを利用してチェックする。この時、送出決定部23は、ある宛先出力段iに関して、VOQ蓄積セルが存在する、すなわち、voq_cnt[i] > 0で、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。
(5)ステップS303
そのような出力段が存在する場合は、該当宛先出力段iのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。
Mセル以上たまっているセルを優先して出力することで、多く蓄積されているセルほど優先して送出されるため、最大の遅延時間を低減する効果が生まれる。
本発明のロードバランス型スイッチの他の実施例3に関して説明する。
ここでは、カウンタリセット動作について説明する。
他の実施例3では、一定期間セルを受信(若しくは送信)しない状況において、カウンタの値(out_cnt、max_cnt、min_cnt)のリセットを行う。一定期間セルを受信していない状態では、送出したセルは、中間段2を経由して既に出力段3に到着しているものと想定される。よって、ある宛先出力段に関して中間段毎の送出カウンタの値にばらつきが発生していても、実際には、中間段にはセルが存在しないため、蓄積セル数に偏りが無いことが想定される。よって、偏った状態になっている各カウンタの値をリセットして偏りの無い状態にする。
なお、カウンタのリセット制御は、宛先出力段に関係なく全体に対して行う方法も考えられるが、宛先出力段毎に、一定期間セルを受信(若しくは送信)していない宛先出力段だけをリセット制御することも考えられる。
一定期間セルを受信(若しくは送信)していない出力段のカウンタをリセットすることで、カウンタの値が偏った状態のままになっていることを防止することで、カウンタの偏りによりセルが送出できない可能性を低減できるため、入力段での遅延時間を削減する効果が得られる。
本発明のロードバランス型スイッチの他の実施例4に関して説明する。
ここでは、カウンタリセット動作について説明する。
他の実施例4では、セルの送出が行われないセルタイムスロットにおいて、空きセル(実際には中身の存在しないセルデータ)を挿入する。空きセルを挿入する意味は、偏りの発生している宛先出力段に関して、偏りを緩和するためである。よって、不必要に空きセルを挿入すべきでは無い。例えば、最大送出カウントと最小送出カウントの差分が差分許容値となっており、且つ、最小送出カウントとなっている中間段の個数がK/4以下となっており、且つ、送出予定の中間段jが最小送出カウントとなっている場合などである。本条件を式に表すと以下のようになる。
min_cnt[i] − max_cnt[i] == 差分許容値 &&
num_cnt[i][ min_cnt[i] ] < K/4 &&
out_cnt[i][j] == min_cnt[i]
なお、空きセルの挿入に関しては、実際に空きセルを挿入する方法と、空きセルを挿入したことにしてカウンタの更新だけを行う方法の2種類が考えられる。
以下に本発明の第2実施形態について説明する。
図24に、本発明の第2実施形態におけるロードバランス型スイッチの入力段101の構成を示す。
入力段101は、宛先検出部21、FIFO部122、送出決定部123、管理メモリ24から構成される。宛先検出部と管理メモリは、図12の入力段1と同一であるが、VOQ部22がFIFO部122に置き換わっている。
FIFO部122は、単一キューのみを有し、入力された受信セルの順序でセルを送出する。また、FIFO部122は、キューの先頭に蓄積されている先頭セルの宛先出力段の情報を、送出決定部123に通知する。
送出決定部123は、FIFO部の先頭セルのみに対して送出判定を行い、送出可能かどうかだけをFIFO部に通知する以外は、本発明の第1実施形態における送出決定部23と同一である。
送出決定部123の送出セル選択処理の処理フローチャートを図25に示す。
(1)ステップS401
送出決定部123は、FIFO部122にFIFOにセルが蓄積しているかどうかをチェックする。FIFOにセルが蓄積していない場合は、処理対象のセルが存在しないため、処理を終了する。
(2)ステップS402
FIFOにセルが蓄積している場合は、該宛先出力段iのセルが送出可能かどうかの判定を行う。処理内容はS202と同一である。送出可能であればセル送出を要求するが、送出不可であればセル送出の要求は行わずに処理を終了する。
本発明の第2実施形態では、VOQ部22の代わりにFIFO部122を用いることで、回路構成を単純化している。また、1セルタイムスロットあたり必ず1回しかセルの送出を判定しないためポート数によらず固定時間でセル送出を判定可能である。
以下に本発明の第3実施形態について説明する。
本発明の第3実施形態におけるロードバランス型スイッチの入力段201の構成を図26に示す。
入力段201は、宛先検出部21、FIFO部222、送出決定部223、管理メモリ24から構成される。宛先検出部と管理メモリは、図12の入力段1と同一であるが、VOQ部22がFIFO部222に置き換わっている。
FIFO部222は、受信した際に送出できなかったセルを蓄積するための単一の待ち合わせ用FIFOと受信したばかりのセルを別々に管理し、送出セル決定部223は、FIFOの先頭セル若しくは受信したばかりのセルを選択して読み出すことが可能なものとする。
図27に、送出セル決定部223の送出セル選択処理のフローチャートを示す。
(1)ステップS501
送出セル決定部では、まず、FIFOのセルが蓄積されているかどうかをチェックする。
(2)ステップS502
蓄積されている場合は、先頭セルが送出可能かどうかのチェックを行う。処理内容はS2−2と同一である。
(3)ステップS503
送出可能な場合は、先頭セルに対する送出要求を行い、処理を終了する。送出を行わなかった場合は、受信したばかりのセルが存在するかどうかをチェックする。
(4)ステップS504
受信したばかりのセルが存在する場合は、同一宛先出力段のセルがFIFO内に存在しないかをチェックする。
(5)ステップS505
受信したばかりのセルが存在しない場合、該当セルが送出可能かどうかの判定処理を行う。処理内容はS2−2と同一である。送出可能と判定された場合は、受信セルの送出処理を行う。
本発明の第3実施形態では、本発明の第2実施形態と同様、VOQ部22の代わりにFIFO部122を用いることで、回路構成を単純化している。また、1セルタイムスロットあたり最大2回しかセルの送出を判定しないためポート数によらず固定時間でセル送出を判定可能である。
なお、図5に示す入力段1と中間段2の間にあるメッシュ接続部4がVOQ部22及びFIFO部122の機能を有するようにすることが可能である。この場合、メッシュ接続部4は、入力段1の一部と考えることができる。本発明では、入力段から中間段へ送出するセルの振り分け処理に特徴があり、入力段と中間段の間にある装置、回路及び回線は、全て入力段の一部と考えることができるためである。また、同様に、図6のメッシュ接続部7についても、回線カード6の入力段機能のうち、VOQ部22及びFIFO部122に相当する機能を有するようにすることが可能である。
最後に、本発明のロードバランス型スイッチ装置の特徴について詳述する。
本発明のロードバランス型スイッチ装置は、L個の入力段と、M個の中間段と、N個の出力段と、各入力段と中間段をメッシュに接続するメッシュ接続部と、各中間段と出力段をメッシュに接続するメッシュ接続部とを備えている。該入力段は、受信セルを各中間段へ振り分ける処理において、各宛先出力段iと経由する中間段j毎の送出カウンタout_cnt[i][j]を管理し、各宛先出力段毎に、各中間段に送出したセルの個数が、一定の範囲内に収まるようにセルの振り分け処理を行うことを特徴とする。
各入力段の送出セル決定部は、宛先出力段i宛のセルを中間段jに対して送出可能かどうかを判定する処理において、宛先出力段i毎の各中間段への送出カウンタの最大値max_cnt[i]と最小値min_cnt[i]を管理し、最大値と最小値の差分が差分許容値よりも小さい値となっているか、若しくは、中間段jへの送出カウンタout_cnt[i][j]の値が最大値max_cnt[i]となっていない場合に、セルを送出可能と判定することを特徴とする。
max_cnt、min_cnt、out_cntの各パラメータに関して、K > 差分許容値となるKの値を利用して、modulo K演算した値(各パラメータをKで割った時の剰余)として管理することを特徴とする。
宛先出力段i毎に、modulo K演算された各中間段jへのカウント値(out_cnt[i][j])の分布をcnt_num[i][]にて管理することを特徴とする。
min_cnt[i]の更新処理において、min_cnt[i]値となっている中間段の個数が1個(=cnt_num[i][min_cnt[i]]==1)で、且つ、セルを送出する中間段jへの送出カウントがmin_cnt[i]と一致する場合に、min_cnt[i]の更新を行うことを特徴とする。
入力段は、宛先判定部、VOQ部、送出セル決定部、管理メモリより構成され、該送出セル決定部において、VOQ部に蓄積されたセルの中から送出可能なセルを1つ選択することを特徴とする。
入力段は、宛先判定部、FIFO部、送出セル決定部、管理メモリより構成され、該送出セル決定部において、FIFO部の先頭に蓄積されたセルが送出可能であるかどうかを判定することを特徴とする。
入力段は、宛先判定部、FIFO部、送出セル決定部、管理メモリより構成され、該FIFO部では、受信時に送出できなかったセルをFIFOに蓄積する機能と、受信したばかりのセルを別々に管理し、送出セル決定部がFIFOの先頭若しくは受信したばかりのセルのどちらかを指定して読み出す機能を有する。また、該送出セル決定部において、FIFOの先頭セルが送出可能であるかどうかを判定し、送出可能であればFIFOの先頭セルを送出し、送出不可であれば受信したセルが送出可能かどうかを判定することを特徴とする。
1セルタイムスロットにおいて、複数セルタイムスロットの送出予約を可能とする。
ある宛先出力段iへの送出において、VOQに蓄積しているセルが複数個の場合に、同一宛先出力段iへの複数のセルを連続して送出するように予約することを特徴とする。
送出チェック対象の宛先出力段iに関して、VOQに複数のセルが存在し、max_cnt[i]−min_cnt[i]の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をすることを特徴とする。
VOQに蓄積されたセルの中から送出可能なセルを選択する処理において、宛先出力段iをランダムな順番でチェックすることを特徴とする。
VOQに蓄積されたセルの中から送出可能なセルを選択する処理において、宛先出力段iをラウンドロビンの順番でチェックすることを特徴とする。
VOQに蓄積されたセルの中から送出可能なセルを選択する処理において、VOQに蓄積されているセルの宛先出力段を、受信したばかりのセルの宛先出力段よりも優先してチェックすることを特徴とする。
送出カウンタの値からは送出可能なセルが存在しない場合に、VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出することを特徴とする。
VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出し、そのような、セルが存在しない時だけ、送出カウンタの値に従ってセルの振り分け処理を行うことを特徴とする。
VOQに蓄積されたセルの中から送出可能なセルを選択する処理において、チェック対象のリストを用いて、リストの先頭から順番にチェックすることを特徴とする。
VOQにセルが蓄積されている宛先出力段のみを、リスト内に入れておくことを特徴とする。
送出するセルの宛先出力段を決定した際に、該宛先出力段を、リストから一端除去し、VOQにセルが残っている場合には、リストの末尾に追加し直すことを特徴とする。
チェック対象のリストの順番を決める優先度パラメータを有することを特徴とする。
優先度パラメータとして、VOQの蓄積セル数を利用し、VOQの蓄積セル数が大きい宛先出力段のセルを優先してチェックすることを特徴とする。
優先度パラメータとして、最大カウントと最小カウントの差分値(max_cnt[i]−min_cnt[i])を利用し、優先度パラメータが大きい宛先出力段のセルを優先してチェックすることを特徴とする。
優先度パラメータとして、最大カウントと最小カウントの差分値(max_cnt[i]−min_cnt[i])が大きい宛先出力段のセルを優先してチェックするが、最大カウントと最小カウントの差分値(max_cnt[i]−min_cnt[i])が同じ場合は、最小カウント値となっている中間段の個数(=cnt_num[i][ min_cnt[i] ]が小さい宛先出力段のセルを優先してチェックすることを特徴とする。
中間段jへのセル送出を行う際に、優先度パラメータとしてmax_cnt[i] − out_cnt[i][j]の大きい宛先出力段のセルを優先してチェックすることを特徴とする。
中間段jへのセル送出を行う際に、優先度パラメータとしてmax_cnt[i] − out_cnt[i][j]の大きい宛先出力段のセルを優先してチェックするが、max_cnt[i] − out_cnt[i][j]が同じ場合は、out_cnt[i][j]よりも小さいカウント値(out_cnt[i][j]>out_cnt[i][j’]となるj’)となっている中間段の個数の少ない宛先出力段のセルを優先してチェックすることを特徴とする。
チェック対象リストの更新処理における各セルタイムスロットの処理において、受信若しくは送信された宛先出力段iのセルのチェック順番のみを更新することを特徴とする。
チェック対象リストの更新処理における各セルタイムスロットの処理において、各セルタイムスロット毎に、チェック対象リストの並べ替えを行うことを特徴する。
一定期間セルを受信しない際に、送出カウンタの値をリセットする機能を有することを特徴とする。
宛先出力段毎にセルの受信間隔を監視し、一定期間セルを受信しない際に、該当宛先出力段の送出カウンタの値をリセットする機能を有することを特徴とする。
一定期間セルを送信しない際に、送出カウンタの値をリセットする機能を有することを特徴とする。
宛先出力段毎にセルの送信間隔を監視し、一定期間セルを送信しない際に、該当宛先出力段の送出カウンタの値をリセットする機能を有することを特徴とする。
送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、ある宛先出力段に対して、セルを送出したものとしてカウンタ値の更新を行うことを特徴とする。
セルを送出したものとしてカウンタ値の更新を行う処理において、中身の無効な空きセルを送出することを特徴とする。
以上のように、本発明では、入力段で、宛先出力段毎に、各中間段へ送出したセルの数をカウントし、中間段間での差分が差分許容量となるように制御する。差分が差分許容量を超えなければ、受信したセルは直ぐに中間段へ送出されるため、入力段での遅延を削減しつつも、中間段に対して均一な分散処理を実現することができる。
図1は、入力バッファ型スイッチ構成を表すブロック図を示す図である。 図2は、VOQを利用した入力バッファ型スイッチ構成を表すブロック図を示す図である。 図3は、出力バッファ型スイッチ構成を表すブロック図を示す図である。 図4は、共有バッファ型スイッチ構成を表すブロック図を示す図である。 図5は、ロードバランス型スイッチの構成例を示す図である。 図6は、回線カードに入力段・中間段・出力段機能を有するロードバランス型スイッチの構成例を示す図である。 図7は、従来例1のロードバランス型スイッチの動作例を示す図である。 図8は、従来例2のロードバランス型スイッチの動作例を示す図である。 図9は、スイッチポート数(L=M=N)が4の場合の従来例1(Basic)と従来例2(FOFF)のシミュレーション結果を示す図である。 図10は、スイッチポート数(L=M=N)が128の場合の従来例1(Basic)と従来例2(FOFF)のシミュレーション結果を示す図である。 図11は、本発明のロードバランス型スイッチにおける入力段1の構成例を示す図である。 図12は、送出セル決定部のセル受信処理の動作フローチャートを示す図である。 図13は、送出セル決定部の送出セル選択処理の動作フローチャートを示す図である。 図14は、セル送出可能判定処理内の処理フローチャートを示す図である。 図15は、本発明のロードバランス型スイッチの動作例を示す図である。 図16は、送出セル決定部が宛先出力段iのセルを中間段jに送出することを決定した際の管理メモリの更新処理の詳細な実施例のフローチャートを示す図である。 図17は、本詳細な実施例での動作例を示す図である。 図18は、チェック順番リストを用いる場合の動作例を示す図である。 図19は、チェック順番リストの具体例を示す図である。 図20は、スイッチポート数(L=M=N)が4の場合の従来例1(Basic)、従来例2(FOFF)、本発明のロードバランス型スイッチ(New)のシミュレーション結果を示す図である。 図21は、スイッチポート数(L=M=N)が128の場合の従来例1(Basic)、従来例2(FOFF)、本発明のロードバランス型スイッチ(New)のシミュレーション結果を示す図である。 図22は、他の実施例1での送出セル選択処理の動作フローチャートを示す図である。 図23は、他の実施例2での送出セル選択処理の動作フローチャートを示す図である。 図24は、本発明の第2実施形態におけるロードバランス型スイッチの入力段101の構成を示す図である。 図25は、送出決定部の送出セル選択処理の処理フローチャートを示す図である。 図26は、本発明の第3実施形態におけるロードバランス型スイッチの入力段201の構成を示す図である。 図27は、送出セル決定部の送出セル選択処理のフローチャートを示す図である。
符号の説明
10 ロードバランス型スイッチ
1、1−1、1−2、1−3、1−L 入力段
2、2−1、2−2、2−3、2−M 中間段
3、3−1、3−2、3−3、4−N 出力段
4、5 メッシュ接続部
6、6−1、6−2、6−3、6−N 回線カード
7 回線カード間をメッシュに接続するメッシュ接続部
11 入力段・中間段・出力段が回線カード内に入ったロードバランス型スイッチ
21 宛先検出部
22 VOQ部
23 送出セル決定部
24 管理メモリ部
101 入力段
122 FIFO部
123 送出セル決定部
201 入力段
222 FIFO部
223 送出セル決定部

Claims (51)

  1. 受信セルに対応する宛先出力段を判定する宛先判定部と、
    前記宛先出力段に接続されている複数の中間段の各々とメッシュに接続され、前記宛先判定部から入力されたセルを前記宛先出力段毎に格納し、前記格納されたセルが送出可能であれば前記各中間段宛に送出するセル送出部と、
    前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記各中間段へ振り分ける場合、宛先出力段i及び経由する中間段j毎の送出カウンタout_cnt[i][j]を管理し、前記各宛先出力段i毎に、前記各中間段に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分ける送出セル決定部と
    を具備する
    ロードバランス型スイッチ装置。
  2. 請求項1に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記宛先出力段i宛のセルを前記中間段jに対して送出可能かどうかを判定する場合、前記宛先出力段i毎の前記各中間段への前記送出カウンタの最大値max_cnt[i]と最小値min_cnt[i]を管理し、最大値max_cnt[i]と最小値min_cnt[i]の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段jへの前記送出カウンタout_cnt[i][j]の値が最大値max_cnt[i]となっていない場合に、セルを送出可能と判定する
    ロードバランス型スイッチ装置。
  3. 請求項2に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、max_cnt、min_cnt、out_cntの各パラメータに関して、K > 差分許容値となるKの値を利用して、modulo K演算した値(各パラメータをKで割った時の剰余)として管理する
    ロードバランス型スイッチ装置。
  4. 請求項3に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記宛先出力段i毎に、modulo K演算された前記各中間段jへのカウント値(out_cnt[i][j])の分布をcnt_num[i][]にて管理する
    ロードバランス型スイッチ装置。
  5. 請求項4に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、min_cnt[i]の更新処理の際、min_cnt[i]値となっている中間段の個数が1個(=cnt_num[i][min_cnt[i]]==1)で、且つ、セルを送出する前記中間段jへの送出カウントがmin_cnt[i]と一致する場合に、min_cnt[i]の更新を行う
    ロードバランス型スイッチ装置。
  6. 請求項1乃至5のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記セル送出部は、前記宛先検出部から入力されたセルを前記宛先出力段毎のVOQ(Virtual Output Queue)に格納し、
    前記送出セル決定部は、前記VOQに蓄積されたセルの中から送出可能なセルを1つ選択する
    ロードバランス型スイッチ装置。
  7. 請求項6に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記宛先出力段iへの送出の際、前記VOQに蓄積しているセルが複数個の場合に、前記宛先出力段iへの複数のセルを連続して送出するように予約する
    ロードバランス型スイッチ装置。
  8. 請求項6又は7に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをランダムな順番でチェックする
    ロードバランス型スイッチ装置。
  9. 請求項6又は7に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをラウンドロビンの順番でチェックする
    ロードバランス型スイッチ装置。
  10. 請求項6又は7に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記VOQに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックする
    ロードバランス型スイッチ装置。
  11. 請求項6に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、送出チェック対象の前記宛先出力段iに関して、前記VOQに複数のセルが存在し、max_cnt[i]−min_cnt[i]の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をする
    ロードバランス型スイッチ装置。
  12. 請求項6に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出する
    ロードバランス型スイッチ装置。
  13. 請求項6に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分ける
    ロードバランス型スイッチ装置。
  14. 請求項6に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックし、送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記VOQにセルが残っている場合には、前記チェック対象リストの末尾に追加し直す
    ロードバランス型スイッチ装置。
  15. 請求項14に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記チェック対象リストの順番を決める優先度パラメータとして前記VOQの蓄積セル数を利用し、前記VOQの蓄積セル数が大きい宛先出力段のセルを優先してチェックする
    ロードバランス型スイッチ装置。
  16. 請求項14に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値(max_cnt[i]−min_cnt[i])を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックする
    ロードバランス型スイッチ装置。
  17. 請求項16に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記差分値(max_cnt[i]−min_cnt[i])が同じ場合は、前記最小カウント値となっている中間段の個数(=cnt_num[i][ min_cnt[i] ])が小さい宛先出力段のセルを優先してチェックする
    ロードバランス型スイッチ装置。
  18. 請求項14に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記中間段jへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてmax_cnt[i]−out_cnt[i][j]の大きい宛先出力段のセルを優先してチェックする
    ロードバランス型スイッチ装置。
  19. 請求項18に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、max_cnt[i]−out_cnt[i][j]が同じ場合は、out_cnt[i][j]よりも小さいカウント値(out_cnt[i][j]>out_cnt[i][j’]となるj’)となっている中間段の個数の少ない宛先出力段のセルを優先してチェックする
    ロードバランス型スイッチ装置。
  20. 請求項14乃至19のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段iのセルのチェック順番を更新する
    ロードバランス型スイッチ装置。
  21. 請求項14乃至20のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行う
    ロードバランス型スイッチ装置。
  22. 請求項1乃至5のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記セル送出部は、受信時に送出できなかったセルをFIFOに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部が前記FIFOの先頭若しくは前記受信セルのどちらかを指定して読み出し、
    前記送出セル決定部は、前記FIFOの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記FIFOの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定する
    ロードバランス型スイッチ装置。
  23. 請求項1乃至22のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットする
    ロードバランス型スイッチ装置。
  24. 請求項1乃至23のいずれか一項に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行う
    ロードバランス型スイッチ装置。
  25. 請求項24に記載のロードバランス型スイッチ装置において、
    前記送出セル決定部は、前記カウンタ値の更新を行う際、中身の無効な空きセルを送出する
    ロードバランス型スイッチ装置。
  26. 受信セルに対応する宛先出力段を判定するステップと、
    受信セルを前記宛先出力段毎に格納するステップと、
    前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記宛先出力段に接続されている複数の中間段の各々へ振り分ける場合、宛先出力段i及び経由する中間段j毎の送出カウンタout_cnt[i][j]を管理し、前記各宛先出力段i毎に、前記各中間段に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分けるステップと、
    前記振り分けたセルを前記各中間段に送出するステップと
    を具備する
    ロードバランス型スイッチ方法。
  27. 請求項26に記載のロードバランス型スイッチ方法において、
    前記宛先出力段i宛のセルを前記中間段jに対して送出可能かどうかを判定する場合、前記宛先出力段i毎の前記各中間段への前記送出カウンタの最大値max_cnt[i]と最小値min_cnt[i]を管理し、最大値max_cnt[i]と最小値min_cnt[i]の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段jへの前記送出カウンタout_cnt[i][j]の値が最大値max_cnt[i]となっていない場合に、セルを送出可能と判定するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  28. 請求項27に記載のロードバランス型スイッチ方法において、
    max_cnt、min_cnt、out_cntの各パラメータに関して、K > 差分許容値となるKの値を利用して、modulo K演算した値(各パラメータをKで割った時の剰余)として管理するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  29. 請求項28に記載のロードバランス型スイッチ方法において、
    前記宛先出力段i毎に、modulo K演算された前記各中間段jへのカウント値(out_cnt[i][j])の分布をcnt_num[i][]にて管理する
    ステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  30. 請求項29に記載のロードバランス型スイッチ方法において、
    min_cnt[i]の更新処理の際、min_cnt[i]値となっている中間段の個数が1個(=cnt_num[i][min_cnt[i]]==1)で、且つ、セルを送出する前記中間段jへの送出カウントがmin_cnt[i]と一致する場合に、min_cnt[i]の更新を行う
    ステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  31. 請求項26乃至30のいずれか一項に記載のロードバランス型スイッチ方法において、
    前記宛先検出部から入力されたセルを前記宛先出力段毎のVOQ(Virtual Output Queue)に格納するステップと、
    前記VOQに蓄積されたセルの中から送出可能なセルを1つ選択するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  32. 請求項31に記載のロードバランス型スイッチ方法において、
    前記宛先出力段iへの送出の際、前記VOQに蓄積しているセルが複数個の場合に、前記宛先出力段iへの複数のセルを連続して送出するように予約するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  33. 請求項31又は32に記載のロードバランス型スイッチ方法において、
    前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをランダムな順番でチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  34. 請求項31又は32に記載のロードバランス型スイッチ方法において、
    前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段iをラウンドロビンの順番でチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  35. 請求項31又は32に記載のロードバランス型スイッチ方法において、
    前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、前記VOQに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  36. 請求項31に記載のロードバランス型スイッチ方法において、
    送出チェック対象の前記宛先出力段iに関して、前記VOQに複数のセルが存在し、max_cnt[i]−min_cnt[i]の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  37. 請求項31に記載のロードバランス型スイッチ方法において、
    前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  38. 請求項31に記載のロードバランス型スイッチ方法において、
    前記VOQ内に中間段の個数であるK個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のK個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分けるステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  39. 請求項31に記載のロードバランス型スイッチ方法において、
    前記VOQに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックするステップと、
    送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記VOQにセルが残っている場合には、前記チェック対象リストの末尾に追加し直すステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  40. 請求項39に記載のロードバランス型スイッチ方法において、
    前記チェック対象リストの順番を決める優先度パラメータとして前記VOQの蓄積セル数を利用し、前記VOQの蓄積セル数が大きい宛先出力段のセルを優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  41. 請求項39に記載のロードバランス型スイッチ方法において、
    前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値(max_cnt[i]−min_cnt[i])を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  42. 請求項41に記載のロードバランス型スイッチ方法において、
    前記差分値(max_cnt[i]−min_cnt[i])が同じ場合は、前記最小カウント値となっている中間段の個数(=cnt_num[i][ min_cnt[i] ])が小さい宛先出力段のセルを優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  43. 請求項39に記載のロードバランス型スイッチ方法において、
    前記中間段jへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてmax_cnt[i]−out_cnt[i][j]の大きい宛先出力段のセルを優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  44. 請求項43に記載のロードバランス型スイッチ方法において、
    max_cnt[i]−out_cnt[i][j]が同じ場合は、out_cnt[i][j]よりも小さいカウント値(out_cnt[i][j]>out_cnt[i][j’]となるj’)となっている中間段の個数の少ない宛先出力段のセルを優先してチェックするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  45. 請求項39乃至44のいずれか一項に記載のロードバランス型スイッチ方法において、
    前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段iのセルのチェック順番を更新するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  46. 請求項39乃至45のいずれか一項に記載のロードバランス型スイッチ方法において、
    前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行うステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  47. 請求項26乃至30のいずれか一項に記載のロードバランス型スイッチ方法において、
    受信時に送出できなかったセルをFIFOに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部が前記FIFOの先頭若しくは前記受信セルのどちらかを指定して読み出すステップと、
    前記FIFOの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記FIFOの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  48. 請求項26乃至47のいずれか一項に記載のロードバランス型スイッチ方法において、
    宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットするステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  49. 請求項26乃至48のいずれか一項に記載のロードバランス型スイッチ方法において、
    前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行うステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  50. 請求項49に記載のロードバランス型スイッチ方法において、
    前記カウンタ値の更新を行う際、中身の無効な空きセルを送出するステップと
    を更に具備する
    ロードバランス型スイッチ方法。
  51. 請求項26乃至50のいずれか一項に記載のロードバランス型スイッチ方法を、コンピュータに実行させるためのプログラム。
JP2006188930A 2006-07-10 2006-07-10 ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法 Expired - Fee Related JP4164771B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006188930A JP4164771B2 (ja) 2006-07-10 2006-07-10 ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法
US11/822,590 US20080008204A1 (en) 2006-07-10 2007-07-09 Load balanced type switching apparatus and load balanced type switching method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006188930A JP4164771B2 (ja) 2006-07-10 2006-07-10 ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法

Publications (2)

Publication Number Publication Date
JP2008017387A true JP2008017387A (ja) 2008-01-24
JP4164771B2 JP4164771B2 (ja) 2008-10-15

Family

ID=38919083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006188930A Expired - Fee Related JP4164771B2 (ja) 2006-07-10 2006-07-10 ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法

Country Status (2)

Country Link
US (1) US20080008204A1 (ja)
JP (1) JP4164771B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014121040A (ja) * 2012-12-19 2014-06-30 Fujitsu Ltd 情報処理方法、情報処理回路、及び情報処理装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4867778B2 (ja) * 2007-05-07 2012-02-01 株式会社日立製作所 分散型スイッチファブリックシステム
US10363375B2 (en) * 2014-07-22 2019-07-30 OROFINO PHARMACEUTICALS GROUP S.r.l. Pre-filled injection device
US9503396B2 (en) * 2015-03-18 2016-11-22 Cisco Technology, Inc. Cell forwarding order selection for sending packets
JP6868802B2 (ja) * 2015-08-03 2021-05-12 パナソニックIpマネジメント株式会社 送信方法、受信方法、送信装置及び受信装置
CN112434483A (zh) * 2020-12-18 2021-03-02 国微集团(深圳)有限公司 数据传输系统的生成方法和数据传输系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3687172T2 (de) * 1985-03-12 1993-04-29 Honda Motor Co Ltd Multiplexuebertragungssystem.
US5367518A (en) * 1987-10-15 1994-11-22 Network Equipment Technologies, Inc. Self-routing switching element and fast packet switch
GB9011743D0 (en) * 1990-05-25 1990-07-18 Plessey Telecomm Data element switch
JP3216582B2 (ja) * 1997-07-18 2001-10-09 日本電気株式会社 データ出力制御方法
JP3556495B2 (ja) * 1998-12-15 2004-08-18 株式会社東芝 パケットスイッチ及びパケット交換方法
US7586909B1 (en) * 2002-03-06 2009-09-08 Agere Systems Inc. Striping algorithm for switching fabric
US8145823B2 (en) * 2006-11-06 2012-03-27 Oracle America, Inc. Parallel wrapped wave-front arbiter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014121040A (ja) * 2012-12-19 2014-06-30 Fujitsu Ltd 情報処理方法、情報処理回路、及び情報処理装置

Also Published As

Publication number Publication date
US20080008204A1 (en) 2008-01-10
JP4164771B2 (ja) 2008-10-15

Similar Documents

Publication Publication Date Title
US6810426B2 (en) Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US7058057B2 (en) Network switch port traffic manager having configurable packet and cell servicing
EP1078498B1 (en) Method and apparatus for supplying requests to a scheduler in an input-buffered multiport switch
US7742408B2 (en) System and method for filtering packets in a switching environment
US8000247B2 (en) Bandwidth management apparatus
US20020141427A1 (en) Method and apparatus for a traffic optimizing multi-stage switch fabric network
US7272150B2 (en) System and method for shaping traffic from a plurality of data streams using hierarchical queuing
JP4164771B2 (ja) ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法
WO2006091175A1 (en) Method and apparatus for buffer management in shared memory packet processors
JP4159253B2 (ja) クレジットベースのバッファ制御を有するディジタルトラフィック交換機
US7269180B2 (en) System and method for prioritizing and queuing traffic
JP3698079B2 (ja) データ転送方法、データ転送装置及びプログラム
EP1220497B1 (en) Packet switch
JP2008042504A (ja) スイッチ装置、スイッチ方法、及びプログラム
US8879578B2 (en) Reducing store and forward delay in distributed systems
US10700998B2 (en) VOQ-based network switch architecture using multi-stage arbitration fabric scheduler
JP4408376B2 (ja) 交換のためにメモリに書き込まれるパケットをキューイングするシステム、方法及び論理
US8542691B2 (en) Classes of service for network on chips
WO2012122806A1 (zh) 一种信元调度方法和装置
US7782780B1 (en) System and method for arbitration of multicast data packets using holds
US8289989B1 (en) System and method for arbitration using availability signals
KR100636272B1 (ko) 포트 스케쥴링 장치 및 그 방법
CN112491748B (zh) 一种基于信用的支持数据包交换的比例公平调度方法
CN112088521A (zh) 一种用于高带宽、高容量交换机的内存设备
JP2007259073A (ja) パケットスイッチにおけるスケジューリング装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080611

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: 20080703

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: 20080716

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120808

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130808

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees