以下、図面を参照しながら本発明の実施形態について説明する。
まず、第1の実施形態を説明する。第1の実施形態は、大きなセル交換速度を持つATMスイッチノードにも適したバッファ容量拡張可能なスイッチアーキテクチャである。
まず、全体構成について説明する。図1は第1の実施形態に係るセルスイッチの第1の構成の実施例である。図1に示すセルスイッチ610において、k本の入力ポートから入力バッファ601に入力されたセルは、単位スイッチ602、603を接続して構成されるスイッチ網620により交換された後、出力バッファ604を経て出力ポートから出力される。
入力バッファ601の出力からスイッチ網620、出力バッファ604までの区間においては、各リンクの速度は出力ポートの速度のn倍になっている。
第1の構成は、nがkより小さくとも、従来の出力バッファ型のバッファ容量拡張が容易なセルスイッチと同等の性能が得られる。nの値はスイッチ網620の形態によるが、例えば、8入力8出力単位スイッチを使用して16入力16出力のセルスイッチを構成する場合は、n=2でよい。
スイッチ網620はm入力m出力の単位スイッチを互いに接続して構成される。1段目の単位スイッチ(1,i)(ただし1≦i≦h)の出力リンクしそれぞれ図のようにg本ずつ並列に2段目の単位スイッチ(2,j)(ただし1≦j≦h)の入力リンクと接続される。m,g,h,kの関係は、m≧gh,k≦mhである。この様な接続を2段デルタ網接続と呼ぶ。図の2段デルタ網のマルチレートノンブロッキング条件は、n≧m/gである(よって、n≧m/g≧h≧k/mの関係がある)。1段目の単位スイッチと2段目の単位スイッチの間の並列リンクを関連法(“並列リンクのあるスイッチ網の検討”、1994年電子情報通信学会秋季大会、B−439)により入力ポートと関連づける。例えば、ある1段目の単位スイッチの入力リンクの3番目および4番目より入力したセルは、その単位スイッチと各2段目の単位スイッチを結ぶg本の並列リンクのうちのそれぞれ2番目を通過するように経路を選ぶ、などと関連づける。これにより、1段目の単位スイッチ内では確率的なセルの待ち合わせは生じない。
以下に入力バッファ601について詳細に説明する。
図2は本実施例のセルスイッチ610の入力バッファ601の構成の一例を説明するための図である。入力バッファ601はHOLブロッキングの発生を防止するために、スイッチ網の出力ポート別に論理キューを持つ(Q(1)からQ(k))。また、マルチキャスト用に論理キューを持つ(QM)。
入力ポートから入力したセルは識別部601aで、マルチキャストかユニキャストか、ユニキャストならどの出力ポート行きかを識別され、それぞれ、QM,Q(1)〜Q(k)のキューの末尾にキューイングされる。
選択部601bは、各キューのキュー長と出力ポート別フロー制御信号の内容の関係において予め定められた優先順位によりキューの先頭からセルを出力する。フロー制御信号により出力が許可されているキューのみを出力の対象とする。
出力ポート別のフロー制御信号は、マルチキャスト用と各出力ポート別のユニキャスト用がある。入力バッファ内の各キューに対応しており、出力の許可/禁止を指示する。マルチキャスト用のフロー制御信号は全ての出力バッファからのマルチキャスト用フロー制御信号を論理演算したものが入力される。すなわち全てのマルチキャスト用フロー制御信号がセル出力を許可した時に、マルチキャストキューからのセルの出力が許可される。ユニキャスト用のフロー制御信号は、対応した出力ポートに接続されている出力バッファ604から入力される。
入力バッファ601は、選択部601aからセルをスイッチ網へ転送する部分だけn倍速で動作する。すなわち、入力バッファ601の選択部601aからスイッチ網620へのセルの転送は入力ポートにおける1セルサイクル時間にnセルを転送することが可能な速度である。しかし入力バッファ内部のセルバッファに必要なスループットは、入力ポートにおける1セルサイクル時間に1セルを書き込み、同時に1セルを読み出すことができればよい。これは、出力バッファ604や共通バッファとは異なり、セルスイッチ610の入出力ポート数によらないので、バッファ容量の拡張が比較的容易である。
以下に単位スイッチ602、603について説明する。
図3は第1の構成の1段目と2段目に用いることが可能な単位スイッチの論理的構成の一例を説明する図である。
図は論理的な構成を示し、物理的な構成を表しているわけではない。単位スイッチ602(603)に入力されたセルは、識別部602aがその出力リンクを判定し、適当な出力リンクに対応したキューQ(1)からQ(m)のいずれかにキューイングされる。マルチキャストセルの場合には。識別部602aにおいて複数コピーされ複数のキューにキューイングされる。選択部602cは、キューに蓄積されているセルを、キューの先頭から順に読みだし出力する。もしフロー制御信号入力(1)〜(m)がセルの出力の抑制を示しているなら、そのキューからセルを出力しない。バッファ状態管理部602bは、バッファ状態情報より入力したセルをキューにキューイング可能かどうかを判断し、場合によっては入力セルの廃棄信号を識別部602aに指示する。また、単位スイッチ内部のバッファ状態情報より、例えば、内部のバッファ領域に空きがない場合などにフロー制御信号出力(1)〜(m)を用いて、入力リンク毎にセルの入力を抑制する。
以下に単位スイッチ間のフロー制御信号について説明する。図1に示す構成では、基本的に出力バッファ604からスイッチ網620、スイッチ網620から入力バッファ601、および、2段目の単位スイッチ603から1段目の単位スイッチ602へのフロー制御信号は不要である。よって、図3に示してあるフロー制御信号入力/出力は基本的には必要ではない。しかし、フロー制御と、単位スイッチ内のバッファ量の関係については次のようなことがいえる。
入力バッファ601へのフロー制御により単位スイッチ内のキュー長の和には入力トラヒックによらない上限値がある。単位スイッチがこの上限値以上、セルバッファを持つことにより単位スイッチ内部のバッファの空き領域が無くなることがないこの上限値を理論上十分なバッファ容量と考える。単位スイッチ内のキュー長の和が上限値に到達する確率が、現実には非常に小さい場合が考えられる。もし、理論上十分なバッファ容量を2段目単位スイッチ603に実装しなかったとすると、ある確率でその単位スイッチ内の全てのバッファ容量を使い切ってしまうことになる。この場合には、スイッチ網620の2段目単位スイッチ603から1段目スイッチ602へフロー制御をかける。すなわち図3で説明したフロー制御信号を用いて、図4の様な、単位スイッチ間のフロー制御信号を接続しセルの廃棄を防ぐことができる。
しかし図4の様な構成においてフロー制御が2段目の単位スイッチ603から1段目の単位スイッチ602へ作用する場合には、図3の様な論理的構成を持つ単位スイッチでは、1段目の単位スイッチ602においてHOLブロッキングが発生しスループットが低下する。したがって、このときのHOLブロッキングによるスループットの低下とセルバッファを実装することによるハードウェア規模およびコスト増加のトレードオフにおいて、単位スイッチへの実装バッファ量を決定する必要がある。
もしHOLブロッキングによるスループットの低下が許容できる範囲内である場合には、単位スイッチ間のフロー制御信号は有効に作用し、2段目単位スイッチ603内の実装バッファ量を減少させることができる利点がある。
同様に、その他のバッファ間、例えば、出力バッファ604とスイッチ網620の間や、スイッチ網620と入力バッファ601の間にもフロー制御信号を配線してもかまわない。この場合には、これらのフロー制御信号により各部の実装バッファ量を減らすことが可能であるという利点がある。
以下に出力バッファ604について説明する。
図5は第1の構成のセルスイッチ610の出力バッファ604の構成の一例を説明するための図である。スイッチ網620から転送されてきたセルは、キューに一時的に蓄積される。スイッチ網620からのセルの転送は、出力ポートでの1セルサイクル時間に最大nセル転送されてくる可能性がある。したがって、このキューは速度変換の役割を果たす。選択部604aは拡張用フロー制御信号により出力が許可されている場合のみ、キューからセルを取り出し出力ポートへセルを出力する。
以下に入力バッファ601へのフロー制御信号について説明する。
出力バッファ604から入力バッファ601へ出力する出力ポート別フロー制御信号は、出力ポート毎のユニキャスト用とマルチキャスト用の2種類である。
フロー制御信号の決定方法は、例えば、次のような二つの方法が考えられる。まずマルチキャストセルとユニキャストセルを合わせて数えたキュー長によって決める方法がある。そのときのキュー長と予め定められたふたつの閾値Qthm とQthu とを比較することにより決定する(Qthm ≧Qthu とする)。キュー長が閾値Qthu 以上になった場合にはその出力ポート行きのユニキャストセルの転送を禁止し、キュー長がさらに大きくなり閾値Qthm 以上になった場合にはユニキャストセルとともにマルチキャストセルの転送を禁止する。別の方法としては、マルチキャストセルとユニキャストセルの出力バッファ内蓄積セル数を個別に計数し決める方法がある。マルチキャストセル数とユニキャストセル数が、それぞれ閾値Cthm ,Cthu を越えたかどうかでそれぞれのセルの転送の許可/禁止を決める。
以下にフロー制御について述べる。
出力バッファ604から入力バッファ601への出力ポート別フロー制御信号について考える。ここでは簡単化のため流体近似モデルを扱い、また、ユニキャストのセルのみが入力される状態を検討する。
第1の構成の出力バッファ604における出力ポート別フロー制御信号の出力判断は、出力バッファ604に閾値Qthを設けることにより行なう。この閾値Qth以上に出力バッファ604のキュー長が大きくなった場合は、その出力ポート行きのセルの出力を禁止するように、各入力バッファ601へフロー制御信号を出力する。閾値Qthよりもキュー長が小さくなった場合は、その禁止信号を解除する。
図6は、第1の構成の単位スイッチ内のある1つの出力ポート行きのキューのキュー長Qs と、対応する出力バッファ内のキュー長Qo の時間的変化を示したものである。
まず初期状態として、単位スイッチ内および出力バッファ内にセルが蓄積されていない状態を考える。この状態から、最も単位スイッチ内のキュー長が大きくなるセルの到着の仕方は、全ての入力セルがあるひとつの出力ポートへ向かう場合である。このとき、単位スイッチ内のキュー長Qs の増加率は、1セルサイクルあたりk−nである。単位スイッチ内にセルが蓄積され始めると、1/nセルサイクルの時間差(図の(1))をおいて出力バッファ内のキューにセルが蓄積され始める。出力バッファ内キュー長Qo の増加率は1セルサイクルあたりn−1である(時間t1 )。
出力バッファ内のキュー長Qo がQth以上になった直後のセルサイクルにおいて、フロー制御によりその出力ポート行きのセルの単位スイッチへの入力が抑制される。閾値を越えた直後のセルサイクルから単位スイッチ内キュー長が減少し始めるまでの遅延時間をdセルサイクルとする(時間(2))。フロー制御により単位スイッチ内のキュー長は減少する(時間t2 ))。単位スイッチ内のキュー長Qs の減少率は、1セルサイクルあたりnである。時間t2 においても出力バッファ内キュー長は1セルサイクルあたりn−1の割合で増加し続ける。
単位スイッチ内のキュー長がゼロになった後、1/nセルサイクル(時間(3)遅れて出力バッファ内キュー長が減少し始める(時間t3 )。このときの出力バッファ内キュー長Qo の減少率は1セルサイクルあたり1である。出力バッファ内キュー長がQthより小さくなった場合(Qth−1以下になった場合)には、フロー制御信号による抑制を解除する。図中、(4)として示される差はQthとQth−1の差である。
出力バッファにてフロー制御信号の抑制が解除された後、フロー制御信号の遅延時間dの経過後(時間(5))、単位スイッチ内のキュー長Qs が再び増加し始める。
このような制御の結果生じる、単位スイッチ内のある出力ポートに対応したキュー長Qs の最大値Qsmax、出力バッファ内のキュー長Qo の最大値Qomaxを次のように求めることができる。
閾値Qthの決定方法を次に示す。Qthは、フロー制御による単位スイッチへの入力抑制を解除する場合の条件により決定すればよい。もし、キュー長が閾値より短くなり、フロー制御信号を解除する場合、入力バッファにおいてキューイングされているセルが多数存在するにも関わらず、その解除により入力バッファより出力されたセルが出力バッファへ到着する前に、出力バッファのキューが空きになり出力すべきセルが無くなるようであれば、出力ポートのスループットが十分有効に活かされていないことになる。そうならないことを条件とする。
(上式において、左辺の第1項の1は、図の(4)で示されるキュー長の差に関係し、第2項のdは、図の(5)で示される時間、第3項の1/nは図の(1)の時間である。左辺全体はQs がゼロになってから再びゼロでなくなるまでの時間差を示しており、それが1以下であれば出力バッファは常にセルを出力し続けることが可能である。)簡単にすると、次のようになる。
上述のように、最悪到着パターンにおける単位スイッチ内のある出力ポートに対応したキュー長Qsmaxを求めることができた。その他のいかなるセルの到着パターンにおいてもフロー制御の抑制を解除する時刻にはQs がゼロであるため、Qs はQsmaxを越えないことは明らかである。
また、最悪到着パターンにおける出力バッファのキュー長Qomaxを求めることができた。その他のいかなるセルの到着パターンにおいてもQo はQomaxを越えることはない。
次に、ユニキャストコネクションのみをこのセルスイッチに設定した場合の単位スイッチ内のキュー長の和の最大値を求める。キュー長の和を最大にするセルのルーティングパターンは、全ての入力バッファより、あるひとつの出力ポート行きのセルのみが連続して入力され、フロー制御信号によりその出力ポート行きのセルの入力が禁止された直後、別のあるひとつの出力ポート行きのセルのみが連続して入力され、ということを繰り返す場合である。今、時刻t=0において単位スイッチ内のキュー長と出力バッファ内のキュー長がともにゼロであり、この時点から最悪到着パターンがセルスイッチに加わるとする。時刻tにおける最悪到着パータン時の単位スイッチ内の全てのキュー長の和Qss(t)を求める。
ところで、m=k/nの関係があるスイッチ網の場合は、各出力ポートに順に最悪到着パターンを加えると、その単位スイッチのどれかの出力ポート行きの入力抑制が解除される前に全ての出力ポート行きのセル入力が抑制されることがわかる(式5よりt
1 +t
2 =mt
1 であるから)。すべて入力抑制がかかった状態では、単位スイッチ内部のキュー長の和は減少するから、Qssの最大値は、全ての入力抑制がかった時刻である。その時刻はmt
1 である。Qssは次のようになる。
この最悪のセル到着パターンにおいて、スイッチ内のキュー長の和Qssmax はmQsmaxよりも小さいことがわかった。よって、ユニキャストコネクションのみの場合には、単位スイッチを共通バッファ型アーキテクチャで構成することにより、少ないバッファ量で十分な性能を得ることが可能である。
以下に複数のサービスクラスについて述べる。
複数クラスを扱う場合のスイッチノードの構成を図7に示す。スイッチノードは、複数のセルスイッチにより構成される。図7の場合は、CBR用セルスイッチ610c、VBR用セルスイッチ610b、UBR用セルスイッチ610aの3枚のセルスイッチを備える。扱うサービスクラスの数を増やしたい場合には、セルスイッチの枚数を増やせば良い。
CBRトラヒック、VBRトラヒックは、遅延に関する品質要求がUBRに比べて比較的厳しいため、セルスイッチに多くのセルバッファは必要ではない。CBR用セルスイッチ610cおよびVBR用セルスイッチ610bは、例えば従来知られている共通バッファ型多段スイッチを用いることで十分な性能を得る。
UBRトラヒックは、大容量のセルバッファが必要であり、UBR用セルスイッチ610aには、本実施例のセルスイッチを用いる。
図7において、入力ポートから入力したセルは、クラスフィルタ部622によりそのセルの属するクラスを判定される。そして、対応するクラスのセルスイッチのみセルが入力される。クラスフィルタ部622は、本実施例のセルスイッチの入力バッファに実装してもかまわない。
セルスイッチにてセルが交換された後、優先多重化部621にて各クラスのセルが多重化される。優先多重化部621は、CBR用セルスイッチ610cからのセルを最も高い優先度で出力ポートへ出力し、VBR用セルスイッチ610bからのセルが次の優先度で、UBR用セルスイッチ610aからのセルが最も低い優先度になる。優先多重化部621の内部のバッファ量を少なくするためには、優先多重化部621からセルスイッチへフロー制御信号を接続すればよい。CBR用セルスイッチ610cからのセルに関しては、必ず最も優先して出力されるので、優先多重化部621からCBR用セルスイッチ610cへのフロー制御信号は不要である。優先多重化部621から本実施例のセルスイッチ(UBR用)610aへのフロー制御信号は、図1および図5の拡張用フロー制御信号である。
上記した第1の構成によれば、単位スイッチが1段目と2段目とで同じものを使用できるため、簡単な構造の単位スイッチを使用することができるという利点がある。また、一つの単位スイッチは、一つのクラスのセルのみしか交換しないため一つのクラスあたりの単位スイッチのバッファ量を大きくとることができるという利点がある。
以下に第2の構成について説明する。
まず、全体構成について説明する。
図8は、第2の構成の一実施例である。k本の入力ポートから入力バッファ601に入力されたセルは、単位スイッチ602、603を接続して構成されるスイッチ網620により交換された後、出力ポートから出力される。
第1の構成(図1)との違いは、出力バッファがなく、出力ポート別フロー制御信号を2段目の単位スイッチ603が出力するようになっていることである。
入力バッファ601の出力から2段目の単位スイッチ603までの区間においては、各リンクの速度は出力ポートの速度のn倍になっている。
第2の構成では、nがkより小さくとも、従来の出力バッファ型のバッファ容量拡張が容易なセルスイッチと同等の性能が得られる。nの値はスイッチ網の形態によるが、例えば、8入力8出力単位スイッチを使用して16入力16出力のセルスイッチを構成する場合は、n=2でよい。
スイッチ網620はm入力m出力の単位スイッチを互いに接続して構成される。1段目の単位スイッチ602(1,i)(ただし1≦i≦h)の出力リンクはそれぞれ図のようにg本ずつ並列に2段目の単位スイッチ603(2,j)(ただし1≦j≦h)の入力リンクと接続される。m,g,h,kの関係は、m≧gh,k≦mhである。この様な接続を2段デルタ網接続と呼ぶ。図の2段デルタ網のマルチレートノンブロッキング条件は、n≧m/gである(よって、n≧m/g≧h≧k/mの関係がある)。1段目の単位スイッチ602と2段目の単位スイッチ603の間の並列リンクを関連法(“並列リンクのあるスイッチ網の検討”、1994年電子情報通信学会秋季大会、B−439)により入力ポートと関連づける。例えば、ある1段目の単位スイッチの入力リンクの3番目および4番目より入力したセルは、その単位スイッチと各2段目の単位スイッチを結ぶg本の並列リンクのうちのそれぞれ2番目を通過するように経路を選ぶ、などと関連づける。これにより、1段目の単位スイッチ内では確率的なセルの待ち合わせは生じない。
以下に入力バッファ601について述べる。
図2は本実施例のセルスイッチの入力バッファ601の構成の一例を説明するための図である。入力バッファ601はHOLブロッキングの発生を防止するために、スイッチ網620の出力ポート別に論理キューを持つ(Q(1)からQ(k))。また、マルチキャスト用に論理キューを持つ(QM)。
入力ポートから入力したセルは識別部601aで、マルチキャストかユニキャストか、ユニキャストならどの出力ポート行きかを識別され、それぞれ、QM,Q(1)〜Q(k)のキューの末尾にキューイングされる。
選択部601bは、各キューのキュー長と出力ポート別フロー制御信号の内容の関係において予め定められた優先順位によりキューの先頭からセルを出力する。フロー制御信号により出力が許可されているキューのみを出力の対象とする。
出力ポート別フロー制御信号は、マルチキャスト用と各出力ポート別のユニキャスト用がある。入力バッファ601内の各キューに対応しており、出力の許可/禁止を指示する。マルチキャスト用のフロー制御信号は全ての2段目単位スイッチ603からのマルチキャスト用フロー制御信号を論理演算したものが入力される。すなわち全てのマルチキャスト用フロー制御信号がセル出力を許可した時に、マルチキャストキューからのセルの出力が許可される。ユニキャスト用のフロー制御信号は、対応した出力ポートに接続されている2段目単位スイッチ603から入力される。
入力バッファ601は、選択部601aからセルをスイッチ網620へ転送する部分だけn倍速で動作する。すなわち、入力バッファ601の選択部601aからスイッチ網620へのセルの転送は入力ポートにおける1セルサイクル時間にnセルを転送することが可能な速度である。しかし入力バッファ内部のセルバッファに必要なスループットは、入力ポートにおける1セルサイクル時間に1セルを書き込み、同時に1セルを読み出すことができればよい。これは、出力バッファ604や共通バッファとは異なり、セルスイッチ610の入出力ポート数によらないので、バッファ容量の拡張が比較的容易である。
以下に単位スイッチについて述べる。
図3は第2の構成の1段目に用いることが可能な単位スイッチ602の論理的構成の一例を説明する図である。
図は論理的な構成を示し、物理的な構成を表しているわけではない。単位スイッチに入力されたセルは、識別部602aがその出力リンクを判定し、適当な出力リンクに対応したキューQ(1)からQ(m)のいづれかにキューイングされる。マルチキャストセルの場合には、識別部602aにおいて複数コピーされ複数のキューにキューイングされる。選択部602cは、キューに蓄積されているセルを、キューの先頭から順に読みだし出力する。もしフロー制御信号入力(1)〜(m)がセルの出力の抑制を示しているなら、そのキューからセルを出力しない。バッファ状態管理部602bは、バッファ状態情報より入力したセルをキューにキューイング可能かどうかを判断し、場合によっては入力セルの廃棄信号を識別部602aに指示する。また、単位スイッチ内部のバッファ状態情報より、例えば、内部のバッファ領域に空きがない場合などにフロー制御信号出力(1)〜(m)を用いて、入力リンク毎にセルの入力を抑制する。
図9は第2の構成の2段目単位スイッチ603の論理的構成の一例を説明するための図である。基本的な構成は図3と同じであるが、単位スイッチからのセルの出力が、出力ポートでの1セルサイクル時間に最大でも、1出力リンクあたり1セルしか出力しない点と、単位スイッチ内のバッファ状態管理部603bからの入力バッファ601への出力ポート別フロー制御信号を出力する点が異なる。
1段目単位スイッチ602から転送されてきたセルは、キューに一時的に蓄積される。1段目からのセルの転送は、2段目の単位スイッチ603の入力リンクにおいて、出力ポートでの1セルサイクル時間に最大kセル転送されてくる可能性がある。したがって、単位スイッチ内のキューは、セル交換時の待ち合わせ用としての役割の他に、速度変換機能としての役割を持つ。
以下に入力バッファ601へのフロー制御信号について述べる。
2段目単位スイッチ603から入力バッファ601へ出力する出力ポート別フロー制御信号は、出力ポート毎のユニキャスト用とマルチキャスト用の2種類である。フロー制御信号の決定方法は、例えば、次のような二つの方法が考えられる。
まず出力リンク毎のキュー長によって決める方法がある。キュー長はマルチキャストセルとユニキャストセルを合わせて数えたものを用いる。そのときのキュー長と予め定められたふたつの閾値Qthm ,Qthu と比較することにより決定する(Qthm ≧Qthu とする)。キュー長が閾値Qthu 以上になった場合にはユニキャストセルの転送のみを禁止し、キュー長がさらに大きくなり閾値Qthm 以上になった場合にはユニキャストセルとともにマルチキャストセルの転送を禁止する。単位スイッチから出力するマルチキャストセル用のフロー制御信号は単位スイッチ内部の全ての出力リンクのキュー長がQthm 以下になった場合に、入力バッファに対してマルチキャストセルの出力を許可する。
別の方法としては、マルチキャストセルとユニキャストセルの蓄積セル数を個別に計測し決める方法がある。単位スイッチ内の全マルチキャストセル数と出力リンク毎に計数したユニキャストセル数をそれぞれ計数し、それぞれ閾値CthmCthu を越えたかどうかでそれぞれのセルの転送の許可/禁止を決める。
単位スイッチ内での複数の出力ポートへ出力されるマルチキャストセルであっても、1つの入力セルにつき、1セル分のバッファ領域して占有しないアーキテクチャの単位スイッチが知られている。その場合は単位スイッチ内に実装するバッファ量を削減できる。さらに、マルチキャスト用のフロー制御信号は、第1の構成のように出力ポートにつき1本ずつではなく、単位スイッチ毎に複数の出力ポート分を統合して1本出力されるため、単位スイッチから入力バッファへのフロー制御信号の実装も容易になるという利点がある。
以下に単位スイッチ間のフロー制御信号について述べる。
第2の構成においては、基本的にスイッチ網620から入力バッファ601、および、2段目の単位スイッチ603から1段目の単位スイッチ602へはフロー制御信号は不要であるよって、図3,図9に示してあるフロー制御信号入力/出力は基本的には必要ではない。しかし、フロー制御と、単位スイッチ内のバッファ量の関係については次のようなことがいえる。
入力バッファ601へのフロー制御により単位スイッチ内のキュー長の和には入力トラヒックによらない上限値がある。単位スイッチがこの上限値以上セルバッファを持つことにより単位スイッチ内部のバッファの空き領域が無くなることはない。この上限値を理論上十分なバッファ容量と考える。単位スイッチ内のキュー長の和が上限値に到達する確率が、現実には非常に小さい場合が考えられる。もし、理論上十分なバッファ容量を2段目単位スイッチ603に実装しなかったとすると、ある確率でその単位スイッチ内の全てのバッファ容量を使い切ってしまうことになる。この場合には、スイッチ網の2段目単位スイッチ603から1段目単位スイッチ602へフロー制御をかける。すなわち図3で説明したフロー制御信号を用いて、図4の様な、単位スイッチ間のフロー制御信号を接続しセルの廃棄を防ぐことができる。
しかし図4の様な構成においてフロー制御が2段目の単位スイッチ603から1段目の単位スイッチ602へ作用する場合には、図9の様な論理的構成を持つ単位スイッチでは、1段目の単位スイッチ602においてHOLブロッキングが発生しスループットが低下する。したがって、このときのHOLブロッキングによるスループットの低下とセルバッファを実装することによるハードウェア規模およびコスト増加のトレードオフにおいて、単位スイッチへの実装バッファ量を決定する必要がある。
もしHOLブロッキングによるスループットの低下が許容できる範囲内である場合には、単位スイッチ間のフロー制御信号は有効に作用し、2段目単位スイッチ603内の実装バッファ量を減少させることができる利点がある。
同様に、その他のバッファ間、すなわちスイッチ網620と入力バッファ601の間にもフロー制御信号を配線してもかまわない。この場合には、これらのフロー制御信号により実装バッファ量を減らすことが可能であるという利点がある。
以下に複数のサービスクラスについて述べる。
複数クラスを扱う場合のスイッチノードの構成を図7に示す。スイッチノードは、複数のセルスイッチにより構成される。図7の場合は、CBR用セルスイッチ610c、VBR用セルスイッチ610b、UBR用セルスイッチ610aの3枚のセルスイッチを備える。扱うサービスクラスの数を増やしたい場合には、セルスイッチの枚数を増やせば良い。
CBRトラヒック、VBRトラヒックは、遅延に関する品質要求がUBRに比べて比較的厳しいため、セルスイッチに多くのセルバッファは必要ではない。CBR用セルスイッチ610cおよびVBR用セルスイッチ610bは、例えば従来知られている共通バッファ型多段スイッチを用いることで十分な性能を得る。
UBRトラヒックは、大容量のセルバッファが必要であり、UBR用セルスイッチ610aには本実施例のセルスイッチを用いる。
図7において、入力ポートから入力バッファ601入力したセルは、クラスフィルタ部622によりそのセルの属するクラスを判定される。そして、対応するクラスのセルスイッチのみセルが入力される。クラスフィルタ部622は、本実施例のセルスイッチの入力バッファ601に実装してもかまわない。
セルスイッチ610にてセルが交換された後、優先多重化部621にて各クラスのセルが多重化される。優先多重化部621は、CBR用セルスイッチ610cからのセルを最も高い優先度で出力ポートへ出力し、VBR用セルスイッチ610bからのセルが次の優先度で、UBR用セルスイッチ610aからのセルが最も低い優先度になる。優先多重化部621の内部のバッファ量を少なくするためには、優先多重化部621からセルスイッチ610へフロー制御信号を接続すればよい。CBR用セルスイッチ610cからのセルに関しては、必ず最も優先して出力されるので、優先多重化部621からCBR用セルスイッチ610cへのフロー制御信号は不要である。優先多重化部621から本実施例のセルスイッチ(UBR用)610aへのフロー制御信号は、図8および図9の拡張用フロー制御信号である。
上記した第2の構成によれば、出力バッファが不要であるため、セルスイッチの全体の大きさが小さいという利点がある。さらに、単位スイッチ内部のバッファ量に直接閾値を設定できるため、単位スイッチ内部に必要なバッファ容量が第1の構成と比較して小さいという利点がある。
以下に第3の構成について述べる。
まず全体構成について述べる。
図10は第3の構成の一実施例である。k本の入力ポートから入力バッファ601に入力されたセルは、単位スイッチ602、603を接続して構成されるスイッチ網620により交換された後、出力バッファ604を経て出力ポートから出力される。
入力バッファ601の出力からスイッチ網620、出力バッファ604までの区間においては、各リンクの速度は出力ポートの速度のn倍になっている。
本実施例は、nがkより小さくとも、従来の出力バッファ型のバッファ容量拡張が容易なセルスイッチと同等の性能が得られる。nの値はスイッチ網620の形態によるが、例えば、8入力8出力の単位スイッチを使用して16入力16出力のセルスイッチを構成する場合は、n=2でよい。
スイッチ網620はm入力m出力の単位スイッチを互いに接続して構成される。1段目の単位スイッチ602(1,i)(ただし1≦i≦h)の出力リンクはそれぞれ図のようにg本ずつ並列に2段目の単位スイッチ603(2,j)(ただし1≦j≦h)の入力リンクと接続される。m,g,h,kの関係は、m≧gh,k≦mhである。この様な接続を2段デルタ網接続と呼ぶ。図の2段デルタ網のマルチレートノンブロッキング条件は、n≧m/gである(よって、n≧m/g≧h≧k/mの関係がある)。1段目の単位スイッチ602と2段目の単位スイッチ603の間の並列リンクを関連法(“並列リンクのあるスイッチ網の検討”、1994年電子情報通信学会秋季大会、B−439)により入力ポートと関連づける。例えば、ある1段目の単位スイッチの入力リンクの3番目および4番目より入力したセルは、その単位スイッチと各2段目の単位スイッチを結ぶg本の並列リンクのうちのそれぞれ2番目を通過するように経路を選ぶ、などと関連づける。これにより、1段目の単位スイッチ内では確率的なセルの待ち合わせは生じない。
以下に入力バッファ601について述べる。
図11は入力バッファ601の構成の一例を説明するための図である。入力バッファ601はUBRトラヒックに対してHOLブロッキングの発生を防止するために、スイッチ網620の出力ポート別に論理キューを持つ(UBR(1)からUBR(k))。また、CBRクラス、VBRクラス用のキューとUBRのマルチキャスト用のキューを持つ(CBR,VBR,UBRM)。
入力ポートから入力したセルは識別部601cで、CBR(ユニキャスト/マルチキャスト両方)か、VBR(ユニキャスト/マルチキャスト両方)か、UBRマルチキャストか、UBRユニキャストのどの出力ポート行きかを識別され、それぞれCBR,VBR,UBRM,UBR(1)〜UBR(k)のキューの末尾にキューイングされる。
選択部601cは、各キューのキュー長と出力ポート別フロー制御信号の内容の関係において予め定められた優先順位によりキューの先頭からセルを出力する。フロー制御信号により出力が許可されているキューのみを出力の対象とする。
出力ポート別フロー制御信号は、UBRマルチキャスト用(UBRM用)、各UBRの出力ポート別のユニキャスト用(UBR(1)用〜UBR(k)用)がある。入力バッファ601内のキューに対応して、出力の許可/禁止を指示する。UBRマルチキャスト用のフロー制御信号は全ての出力バッファからのUBRマルチキャスト用フロー制御信号を論理演算したものが入力される。すなわち全てのUBRマルチキャスト用フロー制御信号がセル出力を許可した時に、UBRマルチキャスト用キューからのセルの出力が許可される。UBRユニキャスト用のフロー制御信号は、対応した出力ポートに接続されている出力バッファ604から入力される。
入力バッファ601は、選択部601dからセルをスイッチ網620へ転送する部分だけn倍速で動作する。すなわち、入力バッファ601の選択部601cからセルをスイッチ網620へのセルの転送は入力ポートにおける1セルサイクル時間にnセルを転送することが可能な速度である。しかし入力バッファ内部のセルバッファに必要なスループットは、入力ポートにおける1セルサイクル時間に1セルを書き込み、同時に1セルを読み出すことができればよい。これは、出力バッファ604や共通バッファとは異なり、セルスイッチ610の入出力ポート数によらないので、バッファ容量の拡張が比較的容易である。
以下に単位スイッチについて述べる。
図12は第3の構成の1段目に用いることが可能な単位スイッチの論理的構成の一例を説明する図である。
図は論理的な構成を示し、物理的な構成を表しているわけではない。単位スイッチ602に入力されたセルは、識別部602aによりそのクラスおよび出力リンクを判定され適当なクラス、出力リンクに対応したキューにキューイングされる。マルチキャストセルの場合には、識別部602aにおいて複数のキューにコピーされキューイングされる。選択部602cは、キューに蓄積されているセルを、CBRキュー、VBRキュー、UBRキューの順の優先度で、各キューの先頭から順に読みだし出力する。もしUBRフロー制御信号入力(1)〜(m)がセルの出力の抑制を示しているならその出力リンクのUBRキューからセルを出力しない。バッファ状態管理部602bはバッファ状態情報より入力したセルをキューにキューイング可能かどうかを判断し、場合によっては入力セルの廃棄信号を識別部602aに指示する。
図13は本実施例のセルスイッチの第3の構成の2段目の単位スイッチの論理的構成の一例を説明するための図である。基本的な構成は図12と同じであるが、出力リンクから入力するフロー制御信号がCBR,VBR用であることと、入力リンクに対してUBR用フロー制御信号を出力する点が異なる。選択部603aは、キューに蓄積されているセルを、CBRキュー、VBRキュー、UBRキューの順の優先度で、各キューの先頭から順に読みだし出力する。もしCBR,VBR用フロー制御信号入力(1)〜(m)がセルの出力の抑制を示しているなら、その出力リンクのCBRキューとVBRキューからセルを出力しない。バッファ状態管理部603bは、バッファ状態情報よりUBR用フロー制御信号出力(1)〜(m)を出力し、入力リンク毎にセルの入力を抑制する。
次に単位スイッチ間のフロー制御信号について述べる。
第3の構成は、基本的には出力バッファからスイッチ網、スイッチ網から入力バッファ、および、2段目の単位スイッチから1段目の単位スイッチへのUBR用フロー制御信号は不要である。よって、図12に示してあるUBR用フロー制御信号入力と、図13に示してあるUBR用フロー制御信号出力は基本的には必要ではない。しかし、UBR用のフロー制御と、単位スイッチ内のバッファ量の関係について次のようなことがいえる。
入力バッファへのフロー制御により単位スイッチ内のキュー長の和には入力トラヒックによらない上限値がある。単位スイッチがこの上限値以上セルバッファを持つことにより単位スイッチ内部のバッファの空き領域が無くなることはない。この上限値を理論上十分なバッファ容量と考える。単位スイッチ内のキュー長の和が上限値に到達する確率が、現実には非常に小さい場合が考えられる。もし、理論上十分なバッファ容量を2段目単位スイッチに実装しなかったとすると、ある確率でその単位スイッチ内の全てのバッファ容量を使い切ってしまうことになる。この場合には、スイッチ網の2段目単位スイッチから1段目スイッチへフロー制御をかける。すなわち図12で説明したフロー制御信号を用いて、図4の様な、単位スイッチ間のフロー制御信号を接続しセルの廃棄を防ぐことができる。
しかし図4の様な構成においてフロー制御が2段目の単位スイッチ603から1段目の単位スイッチ602へ作用する場合には、図13の様な論理的構成を持つ単位スイッチでは、1段目の単位スイッチ602においてHOLブロッキングが発生しスループットが低下する。したがって、このときのHOLブロッキングによるスループットの低下とセルバッファを実装することによるハードウェア規模およびコスト増加のトレードオフにおいて、単位スイッチへの実装バッファ量を決定する必要がある。
もしHOLブロッキングによるスループットの低下が許容できる範囲内である場合には、単位スイッチ間のフロー制御信号は有効に作用し、2段目単位スイッチ603内の実装バッファ量を減少させることができる利点がある。
同様に、その他のバッファ間、例えば、出力バッファとスイッチ網の間や、1段目単位スイッチと入力バッファの間もUBR用フロー制御信号を配線してもかまわない。この場合には、これらのフロー制御信号により実装バッファ量を減らすことが可能であるという利点がある。
以下に出力バッファについて述べる。
図14は第3の構成のセルスイッチの出力バッファの構成の一例を説明するための図である。スイッチ網620から転送されてきたセルは、識別部604bにより、クラスを判定され、CBR,VBR,UBRの中の適当なクラスのキューに一時的に蓄積される。スイッチ網620からのセルの転送は、出力ポートでの1セルサイクル時間に最大nセル転送されてくる可能性がある。したがって、このキューは速度変換の役割を果たす。選択部604aは、CBR,VBR,UBRの各キューから、予め定められた優先度に従ってセルを読み出す。
基本的にはCBR,VBR用のバッファは少なくて良い。バッファからセルが溢れないように、出力バッファ604は、スイッチ網620へCBR,VBR用フロー制御信号を出力する。UBRセルに関しては入力バッファ601へ出力ポート別フロー制御信号を出力する。
以下に入力バッファ601へのフロー制御信号について述べる。
出力バッファ604から入力バッファ601へ出力する出力ポート別フロー制御信号は、出力ポート毎のUBRユニキャスト用とUBRマルチキャスト用の2種類である。
UBR用フロー制御信号の決定方法は、例えば、次のような二つの方法が考えられる。
まず、マルチキャストセルとユニキャストセルを合わせて数えたキュー長によって決める方法がある。そのときのキュー長と予め定められたふたつの閾値Qthm ,Qthu と比較することにより決定する(Qthm ≧Qthu とする)。キュー長が閾値Qthu 以上になった場合にはその出力ポート行きのユニキャストセルの転送を禁止し、キュー長がさらに大きくなり閾値Qthm 以上になった場合にはユニキャストセルとともにマルチキャストセルの転送を禁止する。
別の方法としては、マルチキャストセルとユニキャストセルの出力バッファ内蓄積セル数を個別に計数し決める方法がある。マルチキャストセル数とユニキャストセル数が、それぞれ閾値Cthm ,Cthu を越えたかどうかでそれぞれのセルの転送の許可/禁止を決める。
上記した第3の構成によれば、複数のサービスクラスに対応する場合に、第1の構成や第2の構成とは異なり複数のセルスイッチが必要ではない。そのため、スイッチノード全体のハードウェア規模が小さいという利点がある。また、第3の構成のUBRに関する出力ポート別フロー制御は、第1の構成と同じ方式で動作させるため、単位スイッチならびに出力バッファに必要なUBR用のバッファ容量し、第1の構成で述べたように計算できる。
以下に第4の構成について述べる。
まず、全体構成について述べる。
図15は第4の構成の一実施例である。k本の入力ポートから入力されたセルは、単位スイッチ602、603を接続して構成されるスイッチ網620により交換された後、出力ポートから出力される。
第3の構成(図10)との違いは、出力バッファがなく、出力ポート別フロー制御信号を2段目の単位スイッチ603が出力するようになっていることである。
入力バッファ601の出力から2段目の単位スイッチ603までの区間においては、各リンクの速度は出力ポートの速度のn倍になっている。
第4の構成は、nがkより小さくとも、従来の出力バッファ型のバッファ容量拡張が容易なセルスイッチと同等の性能が得られる。nの値はスイッチ網の形態によるが、例えば、8入力8出力単位スイッチを使用して16入力16出力のセルスイッチを構成する場合は、n=2でよい。
スイッチ網620はm入力m出力の単位スイッチを互いに接続して構成される。1段目の単位スイッチ602(1,i)(ただし1≦i≦h)の出力リンクはそれぞれ図のようにg本ずつ並列に2段目の単位スイッチ603(2,j)(ただし1≦j≦h)の入力リンクと接続される。m,g,h,kの関係は、m≧gh,k≦mhである。この様な接続を2段デルタ網接続と呼ぶ。図の2段デルタ網のマルチレートノンブロッキング条件は、n≧m/gである(よって、n≧m/g≧h≧k/mの関係がある)。1段目の単位スイッチ602と2段目の単位スイッチ603の間の並列リンクを関連法(“並列リンクのあるスイッチ網の検討”、1994年電子情報通信学会秋季大会、B−439)により入力ポートと関連づける。例えば、ある1段目の単位スイッチの入力リンクの3番目および4番目より入力したセルは、その単位スイッチと各2段目の単位スイッチを結ぶg本の並列リンクのうちのそれぞれ2番目を通過するように経路を選ぶ、などと関連づける。これにより、1段目の単位スイッチ内では確率的なセルの待ち合わせは生じない。
以下に入力バッファ601について述べる。
図11は本実施例のセルスイッチの入力バッファの構成の一例を説明するための図である。入力バッファ601はUBRトラヒックに対してHOLブロッキングの発生を防止するために、スイッチ網620の出力ポート別に論理キューを持つ(UBR(1)からUBR(k))。また、CBRクラス、VBRクラス用のキューとUBRのマルチキャスト用のキューを持つ(CBR,VBR,UBRM)。
入力ポートから入力したセルは識別部601cで、CBR(ユニキャスト/マルチキャスト両方)か、VBR(ユニキャスト/マルチキャスト両方)か、UBRマルチキャストか、UBRユニキャストのどの出力ポート行きかを識別され、それぞれCBR,VBR,UBRM,UBR(1)〜UBR(k)のキューの末尾にキューイングされる。
選択部601dは、各キューのキュー長と出力ポート別フロー制御信号の内容の関係において予め定められた優先順位によりキューの先頭からセルを出力する。フロー制御信号により出力が許可されているキューのみを出力の対象とする。
出力ポート別フロー制御信号は、UBRマルチキャスト用(UBRM用)、各UBRの出力ポート別のユニキャスト用(UBR(1)用〜UBR(k)用)がある。入力バッファ内のキューに対応して、出力の許可/禁止を指示する。UBRマルチキャスト用のフロー制御信号は全ての2段目単位スイッチ603からのUBRマルチキャスト用フロー制御信号を論理演算したものが入力される。すなわち全てのUBRマルチキャスト用フロー制御信号がセル出力を許可した時に、UBRマルチキャスト用キューからのセルの出力が許可される。UBRユニキャスト用のフロー制御信号は、対応した出力ポートに接続されている2段目単位スイッチ603から入力される。
入力バッファ601は、選択部601cからセルをスイッチ網620へ転送する部分だけn倍速で動作する。すなわち、入力バッファ601の選択部601cからセルをスイッチ網620へのセルの転送は入力ポートにおける1セルサイクル時間にnセルを転送することが可能な速度である。しかし入力バッファ内部のセルバッファに必要なスループットは、入力ポートにおける1セルサイクル時間に1セルを書き込み、同時に1セルを読み出すことができればよい。これは、出力バッファ604や共通バッファとは異なり、セルスイッチ610の入出力ポート数によらないので、バッファ容量の拡張が比較的容易である。
以下に単位スイッチについて述べる。
図12は第4の構成の1段目に用いることが可能な単位スイッチの論理的構成の一例を説明する図である。
図は論理的な構成を示し、物理的な構成を表しているわけではない。単位スイッチ602に入力されたセルは、識別部602aによりそのクラスおよび出力リンクを判定され適当なクラス、出力リンクに対応したキューにキューイングされる。マルチキャストセルの場合には、識別部602aにおいて複数のキューにコピーされキューイングされる。選択部602cは、キューに蓄積されているセルを、CBRキュー、VBRキュー、UBRキューの順の優先度で、各キューの先頭から順に読みだし出力する。もしフロー制御信号入力(1)〜(m)がセルの出力の抑制を示しているなら、その出力リンクのUBRキューからセルを出力しない。バッファ状態管理部602bは、バッファ状態情報より入力したセルをキューにキューイング可能かどうかを判断し、場合によっては入力セルの廃棄信号を識別部602aに指示する。
図16は第4の構成の2段目の単位スイッチ603の論理的構成の一例を説明するための図である。基本的な構成は図12と同じであるが、単位スイッチからのセルの出力が、出力ポートでの1セルサイクル時間に最大でも、1出力リンクあたり1セルしか出力しない点と、単位スイッチ内のバッファ状態管理部から入力バッファへ出力ポート別フロー制御信号を出力する点が異なる。
1段目単位スイッチ602から転送されてきたセルは、キューに一時的に蓄積される1段目からのセルの転送は、2段目の単位スイッチ603の入力リンクにおいて、出力ポートでの1セルサイクル時間に最大kセル転送されてくる可能性がある。したがって、単位スイッチ内のキューは、セル交換時の待ち合わせ用としての役割の他に、速度変換機能としての役割を持つ。
以下に入力バッファ601へのフロー制御信号について説明する。2段目単位スイッチから603入力バッファ601へ出力する出力ポート別フロー制御信号は、出力ポート毎のUBRユニキャスト用とUBRマルチキャスト用の2種類である。
UBR用フロー制御信号の決定方法は、例えば、次のような二つの方法が考えられる。
まず、出力リンク毎のキュー長によって決める方法がある。キュー長はマルチキャストセルとユニキャストセルを合わせて数えたものを用いる。そのときのキュー長と予め定められたふたつの閾値Qthm ,Qthu と比較することにより決定する(Qthm ≧Qthu とする)。キュー長が閾値Qthu 以上になった場合にはユニキャストセルの転送のみを禁止し、キュー長がさらに大きくなり閾値Qthm 以上になった場合にはユニキャストセルとともにマルチキャストセルの転送を禁止する。単位スイッチから出力するマルチキャストセル用のフロー制御信号は単位スイッチ内部の全ての出力リンクのキュー長がQthm 以下になった場合に、入力バッファに対してマルチキャストセルの出力を許可する。
別の方法としては、マルチキャストセルとユニキャストセルの蓄積セル数を個別に計数し決める方法がある。単位スイッチ内の全マルチキャストセル数と出力リンク事に計数したユニキャストセル数をそれぞれ計数し、それぞれ閾値CthmCthu を越えたかどうかでそれぞれのセルの転送の許可/禁止を決める。
単位スイッチ内で複数の出力ポートへ出力されるマルチキャストセルであっても、1つの入力セルにつき、1セル分のバッファ領域しか占有しないアーキテクチャの単位スイッチが知られている。その場合は単位スイッチ内に実装するバッファ量を削減できる。さらに、マルチキャスト用のフロー制御信号は、第1の構成のように出力ポートにつき1本ずつではなく、単位スイッチ毎に複数の出力ポート分を統合して1本出力されるため、単位スイッチから入力バッファへのフロー制御信号の実装も容易になるという利点がある。
以下に、単位スイッチ間のフロー制御信号について述べる。
第4の構成では、基本的にはスイッチ網620から入力バッファ601、および、2段目の単位スイッチ603から1段目の単位スイッチ602へはフロー制御信号は不要である。よって、図12,図16に示してあるUBR用フロー制御信号入力/出力は基本的には必要ない。しかし、UBR用のフロー制御と、単位スイッチ内のバッファ量の関係について次のようなことがいえる。
入力バッファ601へのフロー制御により単位スイッチ内のキュー長の和には入力トラヒックによらない上限値がある。単位スイッチがこの上限値以上セルバッファを持つことにより単位スイッチ内部のバッファの空き領域が無くなることはない。この上限値を理論上十分なバッファ容量と考える。単位スイッチ内のキュー長の和が上限値に到達する確率が、現実には非常に小さい場合が考えられる。もし、理論上十分なバッファ容量を2段目単位スイッチ603に実装しなかったとすると、ある確率でその単位スイッチ内の全てのバッファ容量を使い切ってしまうことになる。この場合には、スイッチ網620の2段目単位スイッチ603から1段目スイッチ602へフロー制御をかける。すなわち図12で説明したフロー制御信号を用いて、図4の様な、単位スイッチ間のフロー制御信号を接続しセルの廃棄を防ぐことができる。
しかし図4の様な構成においてフロー制御が2段目の単位スイッチ603から1段目の単位スイッチ602へ作用する場合には、図16の様な論理的構成を持つ単位スイッチでは、1段目の単位スイッチ602においてHOLブロッキングが発生しスループットが低下する。したがって、このときのHOLブロッキングによるスループットの低下とセルバッファを実装することによるハードウェア規模およびコスト増加のトレードオフにおいて、単位スイッチへの実装バッファ量を決定する必要がある。
もしHOLブロッキングによるスループットの低下が許容できる範囲内である場合には、単位スイッチ間のフロー制御信号は有効に作用し、2段目単位スイッチ内603の実装バッファ量を減少させることができる利点がある。
同様に、その他のバッファ間、すなわち1段目単位スイッチ602と入力バッファ601の間もUBR用フロー制御信号を配線してもかまわない。この場合には、これらのフロー制御信号により実装バッファ量を減らすことが可能であるという利点がある。
上記した第4の構成によれば、出力バッファが不要であるためセルスイッチの全体の大きさが小さいという利点がある。さらに、単位スイッチ内部のバッファ量に直接閾値を設定できるため、単位スイッチ内部に必要なバッファ容量が第3の構成と比較して小さいという利点がある。
なお、上記した第1、第2、第3、第4の構成例において、スイッチ網が2段デルタ網の場合は、例えばm=8(8×8の単位スイッチ)、n=2(2倍速)の場合には、k=16(セルスイッチの入出力ポート数が16×16)を実現することができ、m=8,n=4の場合には、k=32を実現することができる。
また、スイッチ網は、2段デルタ網ではなく、単一の単位スイッチであってもかまわない。この場合、単位スイッチは、上述の2段目の単位スイッチと同様の構成になる。
本実施例のセルスイッチは、共通バッファ型単位スイッチを使用することにより、比較的少量の単位スイッチ内バッファで、従来の出力バッファ型セルスイッチと同等の性能を得ることが可能となる利点がある。
さらに、第1、第3の構成例において、複数の出力バッファを一つのLSIに集積して実現しても良い。基板上の実装面積が減り、さらにバッファを出力ポート間で共有することができ、実装バッファ量を少なくできるという利点がある。
さらに、第3,4の構成例において、セルスイッチで扱うサービスクラスの数を増やしたアーキテクチャを容易に考えることができる。具体的には、例えば大容量のバッファが必要なサービスクラスを増やす場合は、各バッファにおいてUBR用のキューと並列に論理キューの数を増やし、かつ、バッファ間のフロー制御信号でUBR用のものがある所に、並列して新たに加わるサービスクラス用のフロー制御信号を配線すれば良い。本発明は、これらの内部でいくつかのサービスクラスを扱っているのかに関わらず有効に作用する。
次に第2の実施形態について説明する。
図20は第2の実施形態の第1の構成を示す図である。
フロー制御を行なえる機構を有する共通バッファ型ATMスイッチを複数用いてATMスイッチの記憶手段の記憶容量を拡張する方法は、特開平4−038036において開示されているが、これに対して、第2の実施形態の第1の構成は、直進モードを実現する例としてセルのルーティングタグを利用する方法をとり、共通バッファ型ATMスイッチの記憶手段の記憶容量を拡張する詳細な実施例を示すものである。
100aは共通バッファ型ATMスイッチである。100bは前記共通バッファ型ATMスイッチ100aと同一の共通バッファ型ATMスイッチであって、前記共通バッファ型ATMスイッチ100aの出力ポートと前記共通バッファ型ATMスイッチ100bの入力ポートとをポート番号に基づいて同一の番号のポートを接続することによって、前記共通バッファ型ATMスイッチ100aと前記共通バッファ型ATMスイッチ100bは縦続接続される。
10,11,12,13は前記共通バッファ型ATMスイッチ100aの入力ポートである。30,31,32,33は前記共通バッファ型ATMスイッチ100aの出力ポートであると同時に、前記共通バッファ型ATMスイッチ100bの入力ポートでもある。50,51,52,53は前記共通バッファ型ATMスイッチ100b出力ポートである。
70a,70b,70cおよび71a,71b,71cはスイッチ内部で取り扱われるフォーマットを有するセルを表す。すなわち、701a,701b,701cおよび711a,711b,711cは情報部とATMスイッチ内でスイッチングのために使用されるルーティングタブを除くヘッダ部とを含んだ部分であり、7021a,7021b,7021cおよび7121a,7121b,7121cは前記共通バッファ型ATMスイッチ100a内部で取り扱われるルーティングタグ、7022a,7022b,70022cおよび7122a,7122b,7122cは前記共通バッファ型ATMスイッチ100b内部で取り扱われるルーティングタグを、それぞれ示す。なお、ルーティングを除くヘッダ部にはATMセルヘッダが含まれるが、その他に、例えば、優先制御のための情報マルチキヤストのための情報などが含まれるようにしても良い。
前記共通バッファ型ATMスイッチ100aおよび100bは、ATMスイッチを多段接続して運用した場合にセル廃棄率を良好な状態に保つために自スイッチ内の共通バッファにおけるセルの蓄積状態を管理し、これにより自スイッチの前段のスイッチからのセル出力を制御するセル出力制御信号を、セルを出力する方向とは逆向きに出力する。20,21,22,23は前記共通バッファ型ATMスイッチ100aからの前記セル出力制御信号、40,41,42,43は前記共通バッファ型ATMスイッチ100bからの前記セル出力制御信号である。60,61,62,63は前記共通バッファ型ATMスイッチ100bよりも後段のスイッチ、あるいは、別のスイッチポートから、送られてくる可能性のある前記セル出力制御信号である。
以下、前記共通バッファ型ATMスイッチ100bを例に前記セル出力制御信号について説明する。仮に前記共通バッファ型ATMスイッチ100b内の共通バッファ中の“空き容量”が予め定められた水準よりも少ないとすると、入力ポート30,31,32,33のそれぞれに対応してセル流を抑制するセル出力制御信号40,41,42,43を一斉に出力する。この他の方法として、前記セル出力制御信号40,41,42,43を個別に出力するように制御することも可能である。
また、前記セル出力制御信号は、セルを共通バッファ内に確実に書き込んだ場合に前段のスイッチにセルの送信を許可する信号として、前記共通バッファ型ATMスイッチ100aに対して個別に出力するようにしてもよい。
以上述べてきたセル出力制御信号によりセルの送信を制御する方法は、いわゆるフロー制御と呼ばれている。
さて、第1の構成による動作を以下に説明する。まず、コネクション設定時にはコネクション設定プロセスが作動して、セルの前記ルーティングタグの各部分に情報が書き込まれる。この結果、図20では、前記セル70aの前記ルーティングタグ7021aおよび7022aの2つの部分には、前記共通バッファ型スイッチ100aおよび前記共通バッファ型ATMスイッチ100bにおける宛先情報としての出力ポート番号として、それぞれ#0と#3が書き込まれる。
前記共通バッファ型ATMスイッチ100aに前記セル70aが前記入力ポート10から入力されると、前記セル70a内の前記ルーティングタグ7021aを参照してスイッチングを行なう。この結果、前記セル70aは前記入力ポート10と同一のポート番号#0を有する前記出力ポート30へ、前記セル70bとして出力される。前記共通バッファ型ATMスイッチ100bは前記セル70bを前記入力ポート30より受けとり、前記セル70b内の前記ルーティングタグ7022bを参照してスイッチングを行なう。この結果、前記セル70bはポート番号#3を有する前記出力ポート53へ前記セル70cとして出力される。
以上、前記セル70a,70b,70cに着目して、前記共通バッファ型ATMスイッチ100aおよび100bの動作を説明したが、前記セル71a,71b,71cについても同様な動作により処理されるため、ここでは説明を省略する。
コネクション設定時にセル内のルーティングタグを上述のようにして設定することによって、前記共通バッファ型のATMスイッチ100aは、任意の入力ポートから入力されたセルが前記任意の入力ポートのポート番号と同一の番号を持つ出力ポートから出力されるように設定することができる。これに加えて、前記共通バッファ型ATMスイッチ100bが上述のいずれかの方法の前記フロー制御を前記共通バッファ型ATMスイッチ100aに対して行なうことによって、前記共通バッファ型ATMスイッチ100aと前記共通バッファ型ATMスイッチ100bとは協調して動作することができ、この2つを合わせて1つの共通バッファ型のATMスイッチと見なすことができる。
したがって、上記した第1の構成によると、前記フロー制御を実施できる同一の共通バッファ型ATMスイッチを2つ用意するだけで、共通バッファの容量が2倍の共通バッファ型ATMスイッチを構成することが容易に可能となる。
図21に、図1に示した第1の構成における前記共通バッファ型ATMスイッチ100aおよび100bのアーキテクチャを示す。図21は従来から提案されている共通バッファ型ATMスイッチで、入出力ポート数が4の場合を表している。10,11,12,13は入力ポートを示し、30,31,31,33は出力ポートを示す。20,21,22,23は当該共通バッファ型ATMスイッチから発せられるセル出力制御信号で、当該共通バッファ型ATMスイッチ内の制御部303により、セルバッファ301の管理状況から生成される第1の制御信号4を基に作られる。40,41,42,43は、当該ATMスイッチの後段のATMスイッチから、もしくは、前記各出力ポートに対応する出力インタフェースから、送られてくるセル出力制御信号である。7は前記セル出力制御信号40,41,42,43より得られる第2の制御信号である。
前記制御部303は、前記入力制御部3030、前記アドレス制御部およびアドレス管理部3031、そして、前記出力制御部3032の3つの部分からなる。
300は前記入力ポート10,11,12,13からのセルを前記入力制御部3030から切替え制御信号3を用いて時分割多重する多重化回路で、1には前記入力ポートの各々からのセルが多重化されて乗せられる。
301はセルバッファ(共通バッファ)で、前記1に乗せられたセルを、アドレスおよび制御信号5に書き込みアドレスおよび書き込み制御信号をのせて、これによって記憶し、また、前記アドレスおよび制御信号5として読み出しアドレスおよび読み出し制御信号を乗せることにより、セルを読み出し、6へ乗せる。前記書き込みアドレスおよび書き込み制御信号と前記読み出しアドレスおよび読み出し制御信号とは、前記多重化回路300より送られるヘッダ部の情報2の中のルーティングタグをもとにして、前記アドレス制御部およびアドレス管理部3031で作られる。
302は分離化回路で、前記6へと乗せられたセルを、前記制御部303内の出力制御部3032より与えられる分離化回路制御信号8を用いて前記出力ポート30,31,32,33の中から、前記ルーティングタグを参照して得られた宛先の出力ポートへ順次出力する。
この前記ルーティングタグの設定によって、上に述べた第1の構成例の前記共通バッファ型ATMスイッチ100aのように、任意の入力ポートから入力されたセルは必ず前記任意の入力ポートと同一のポート番号を有する出力ポートから出力されるように共通バッファ型ATMスイッチ100を動作させることが可能である。
次に第2の実施形態の第2の構成について述べる。
図22は第2の構成を示す図である。第2の構成では第1の構成の図20での前記共通バッファ型ATMスイッチ100a,100bに対して、モード設定入力を新たに設けたことに特徴がある。図中の101aおよび101bは前記モード設定入力を有した同一の共通バッファ型ATMスイッチである。前記共通バッファ型ATMスイッチ101aおよび101bは、前記モード設定入力として、通常のスイッチング動作を行なう通常モードと、第1の構成の図20中の前記共通バッファ型ATMスイッチ100aのように、任意の入力ポートから入力されたセルは前記任意の入力ポートと同一のポート番号を有する出力ポートから出力するように動作する直進モードとを少なくとも具備する。この共通バッファ型ATMスイッチのアーキテクチャについては、後ほど詳しく述べる。
80aおよび80bはモード設定信号で、前記共通バッファ型ATMスイッチを少なくとも通常モードと直進モードとに設定することが可能である。前記共通バッファ型ATMスイッチ101aを前記モード設定信号80aを前記直進モードと設定して前段に、そして前記共通バッファ型ATMスイッチ101bを前記モード設定信号80bを前記通常モードと設定して後段に設置し、前記共通バッファ型ATMスイッチ101aの出力ポートと前記共通バッファ型ATMスイッチ101bの入力ポートとをそのポート番号に基づいて同一の番号のポートを接続して、前記共通バッファ型ATMスイッチ101aおよび101bを縦続に接続する。
10,11,12,13は前記共通バッファ型ATMスイッチ101aの入力ポート、30,31,32,33は前記共通バッファ型ATMスイッチ101aの出力ポートであると同時に、前記共通バッファ型ATMスイッチ101bの入力ポートでもある。50,51,52,53は前記共通バッファ型ATMスイッチ101bの出力ポートである。
20,21,22,23は前記共通バッファ型ATMスイッチ101aからのセル出力制御信号、40,41,42,43は前記共通バッファ型ATMスイッチ101bからのセル出力制御信号である。60,61,62,63は前記共通バッファ型ATMスイッチ101bの後段の共通バッファ型ATMスイッチ、あるいは、別のスイッチボードからのセル出力制御信号である。
72a,72b,72cおよび73a,73b,73cはスイッチ内部で取り扱われるフォーマットを有するセルを表す。すなわち、721a,721b,721cおよび731a,731b,731cはユーザが自由に情報を載せられる情報部を示し、722a,722b,722cおよび732a,732b,732cは、スイッチ内部で取り扱われるルーティングタグ、優先制御のための優先クラスの情報、マルチキャストのための情報、およびATMセルヘッダなどを含むヘッダ部を示す。
以下、第2の実施形態の第2の構成を図22を見ながら説明する。
前記共通バッファ型ATMスイッチ101aが前記直進モードに設定されるため、前記入力ポート10より前記共通バッファ型ATMスイッチ101aに入力される前記セル72aは、セルに含まれる全てのデータが保存された状態でそのまま前記共通バッファ型ATMスイッチ101aを通過する。すなわち、前記入力ポート10はポート番号が#0であり、この番号を有する前記出力ポート30へ、前記セル72aは前記セル72bとして出力され、前記セル72aの前記ヘッダ部722a内の宛先情報“#3”は、前記セル72bの前記ヘッダ部722bにおいても保存されている。前記セル72bは前記共通バッファ型ATMスイッチ101bに入力され、その前記ヘッダ部722bに保存されている宛先情報が#3であることから、ポート番号#3に対応する前記出力ポート53へと出力されて、前記セル72cとなる。
前記セル73a,73b,73cは、前記セル72a,72b,72cと同様に処理される。前記共通バッファ型ATMスイッチ101aが前記直進モードに設定されるため、前記入力ポート12より前記共通バッファ型ATMスイッチ101aに入力される前記セル73aは、セルに含まれる全てのデータが保存された状態でそのまま前記共通バッファ型ATMスイッチ101aを通過する。すなわち、前記入力ポート12はポート番号が#2であり、この番号を有する前記出力ポート32へ、前記セル73aは前記セル73bとして出力され、前記セル73aの前記ヘッダ部732a内の宛先情報“#1”は、前記セル73bの前記ヘッダ部732bにおいても保存されている。前記セル73bは前記共通バッファ型ATMスイッチスイッチ101bに入力され、その前記ヘッダ部732bに保存されている宛先情報が#1であることから、ポート番号#1に対応する前記出力ポート51へと出力されて、前記セル73cとなる。
前記共通バッファ型ATMスイッチ101bが、第1の構成において述べたいずれかの方法の前記フロー制御を、前記共通バッファ型ATMスイッチ101aに対して行なうことによって、前記共通バッファ型ATMスイッチ101bと前記共通バッファ型ATMスイッチ101aとは協調して動作することができる。これより、前記共通バッファ型ATMスイッチ101aと前記共通バッファ型ATMスイッチ101bとは1つの共通バッファ型のATMスイッチと見なすことができ、結果としてバッファ容量が2倍の共通バッファ型ATMスイッチを容易に得ることができる。
第1の構成の図20では、前段の共通バッファ型ATMスイッチ100aにおいて、任意の入力ポートから入力されたセルが前記任意の入力ポートと同一のポート番号を有する出力ポートから出力されるように、コネクション設定時にコネクションプロセスによりルーティングタグの設定を行なう必要があった。これに対し、本構成では前記共通バッファ型ATMスイッチ101aの前記モード設定信号80aを前記直進モードに設定するだけで、前段の共通バッファ型ATMスイッチである前記共通バッファ型ATMスイッチ101aを、第1の構成における前記共通バッファATMスイッチ100aのように設定できる。
したがって、第2の構成によると第1の構成に比べてさらに容易に共通バッファの容量を2倍に拡張することが可能である。
なお、第2の構成では、前記モード設定入力はピン入力やディップスイッチなどの形態をとるものと考えられる。
図23は図22に示した方法を拡張して、任意のバッファ容量の共通バッファ型ATMスイッチを得る実施例である。すなわち、図22の前記通常モードに設定された前記共通バッファ型ATMスイッチ101bの前に、同じく第2の構成の図22の前記直進モードに設定された前記共通バッファ型ATMスイッチ101aを1つではなく、任意の自然数nに対してn−1個だけ並べて、隣合うスイッチにおいて前段のスイッチの出力ポートを後段の入力ポートとをそのポート番号に基づいて同一の番号のものを接続するようにして、縦続接続を行なう。その上で、これら全ての前記共通バッファ型ATMスイッチ101aおよび101bの隣合う間において前記フロー制御を行なうと、これらn個の前記共通バッファ型ATMスイッチ全体を1つの共通バッファ型ATMスイッチとみなすことができ、全体のバッファ容量はn倍となる。nを任意に設定することにより、任意のバッファ容量の共通バッファ型ATMスイッチを容易に得ることができる。
図24は、図22における前記共通バッファ型ATMスイッチ101aおよび101bのアーキテクチャを示すものである。図24は入出力ポート数が4の場合を表している。
10,11,12,13は入力ポートを示し、30,31,32,33は出力ポートを示す。20,21,22,23は当該共通バッファ型ATMスイッチから発せられるセル出力制御信号で、当該共通バッファ型ATMスイッチ内の制御部303により、セルバッファ301の管理状況から生成される第1の制御信号4を基に作られる。40,41,42,43は、当該ATMスイッチの後段のATMスイッチから、もしくは、前記各出力ポートに対応する出力インタフェースから、送られてくるセル出力制御信号である。7は前記セル出力制御信号40,41,42,43より得られる第2の制御信号である。
前記制御部303は、前記入力制御部3030、前記アドレス制御部およびアドレス管理部3031、そして、前記出力制御部3032の3つの部分からなる。 300は前記入力ポート10,11,12,13からのセルを前記入力制御部3030からの切替え制御信号3を用いて時分割多重する多重化回路で、1には前記入力ポートの各々からのセルが多重化されて乗せられる。
301はセルバッファ(共通バッファ)で、前記1に乗せられたセルを、アドレスおよび前記信号5に書き込みアドレスおよび書き込み制御信号をのせて、これによって記憶し、また、前記アドレスおよび制御信号5として読み出しアドレスおよび読み出し制御信号を乗せることにより、セルを読み出し、6へ乗せる。前記書き込みアドレスおよび書き込み制御信号と前記読み出しアドレスおよび読み出し制御信号とは、前記アドレス制御部およびアドレス管理部3031で作られる。
302は分離化回路で、前記6へと乗せられたセルを、前記制御部303内の出力制御部3032より与えられる分離化回路制御信号8を用いて前記出力ポート30,31,32,33の中から、前記ルーティングタグを参照して得られた宛先の出力ポートへ順次出力する。
80は前記モード設定信号で、少なくとも前記通常モードおよび前記直進モードを設定できるようにする。
前記モード設定信号80により前記通常モードに設定された場合には、セルを前記セルバッファ301に書き込む時に、ヘッダ部の情報2の中の前記ルーティングタグより解析される宛先情報を前記セルと1対1対応させて前記アドレス制御部およびアドレス管理部3031に記憶しておき、前記セルを前記セルバッファ301から読み出す時に前記宛先情報を利用することにより、前記セルは所望の出力ポートへ出力される。
前記モード設定信号80によれ前記直進モードに設定された場合には、セルを前記セルバッファ301に書き込む時に、前記セルがどの入力ポートより入力されたかについてそのポート番号によって記憶しておき、この前記ポート番号を前記セルと1対1対応させて前記アドレス制御部およびアドレス管理部3031に記憶しておき、前記セルを前記セルバッファ301から読み出す時に前記ポート番号を利用することにより、前記セルは入力ポートとポート番号が同一の出力ポートから出力されるようにすることができる。
本構成のように共通バッファ型ATMスイッチに対しモード設定が行なえるようにして、少なくとも前記通常モードと前記直進モードを具備すると、以下のような利点がある。
図22および図23のような構成をとった時、前記直進モードに設定された共通バッファ型ATMスイッチ101aでは、任意の入力ポートから入力されたセルは前記任意の入力ポートと同一ポート番号を有する出力ポートから出力されるが、上に述べたように所望の出力ポートを示す宛先情報を前記通常モードと前記直進モードとで切替えるだけであるため、セル内の、前記通常モード時には宛先情報として使用される前記ヘッダ部の情報2は、書き換えられることなく前記セルバッファ301内に記憶される。このため、後段の前記通常モードに設定された共通バッファ型ATMスイッチ101bにおいては、前記ヘッダ部の情報2中のルーティングタグをそのまま用いて宛先情報を得ることができ、これを利用してスイッチングすることが可能である。この結果、第1の構成の図20のようにセルのルーティングタグを消費することなく前記直進モードに設定することができる。
図25は、本構成の図24中の前記制御部303に属するアドレス制御部およびアドレス管理部3031の中のアドレス制御部30311において、宛先情報を取得する部分の構成について3つの実施例を示す。
ここでは、図22において前記直進モードに設定された前記共通バッファ型ATMスイッチ101aへ前記入力ポート10より入力されたセル72aに注目する。そして、図24と図22をも参照の上、前記直進モード時の動作について述べながら、図22の前記共通バッファ型ATMスイッチ101aにおける前記アドレス制御部30311の宛先情報を獲得する部分の構成を説明する。
はじめに、3つの各構成例に共通な部分について説明する。前記セル72aのヘッダ部722aは、ヘッダ部の情報2に乗せられて制御部303へと渡される(図24)。前記制御部303では、前記ヘッダ部の情報2から、前記共通バッファ型ATMスイッチ101aにおいて通常モード時に必要とされるルーティングタグが取り出される。図25ではこれが2aであって、前記セル72aの場合にはポート番号#3の出力ポートを示す“11”が取り出されて、通常モード用宛先情報レジスタ30311aにセットされる。直進モード時に必要となる、セルが入力された入力ポートのポート番号は9に乗せられる。9に乗せられるデータの形態は2進表示またはビットマップ表示である。
まず、図25(a)について説明する。図25(a)では、前記9には入力ポートのポート番号を表す2進表示のデータが乗せられる。前記セル72aはポート番号#0の前記入力ポート10より入力されているので、前記9には“00”が乗せられている。これを直進モード用宛先情報レジスタ30311bにセットするセレクタ30311cでは、前記モード設定信号80によって、前記通常モードの時には前記通常モード用宛先情報レジスタ30311aにセットされたデータが出力される。また、前記直進モードの時には前記直進モード用宛先レジスタ3011bにセットされたデータが出力される。前記共通バッファ型ATMスイッチ101aは前記直進モードに設定されているので、前記セル72aの場合、前記直進モード用宛先レジスタ30211bにセットされたデータ“00”が前記セレクタ30311cによって選択される。前記セレクタ30311cによって選択されたデータはデコーダ30311dに渡されて、そこでビットマップ情報に変換される。前記共通バッファ型ATMスイッチ101aの場合、入出力ポートの数は4であるので、2ビットデータが4ビットのビットマップ情報に変換される。前記セル72aの場合、“00”が前記デコーダ30311dに渡され、ビットマップデータ“1000”に変換され、これが宛先情報として扱われる。
次に、図25(b)について説明する。(b)は(a)とほぼ同じ構成で、セレクタ30311cとデコーダ30311dの位置が逆になっている点が異なる。(a)と同じように、通常モード用宛先情報レジスタおよび直進モード用宛先情報レジスタには2進表示のデータがセットされ、前記セル72aに対しては“11”と“00”がそれぞれ記憶される。デコーダ30311dはこれらを受け取り、“0001”と“1000”とにそれぞれ変換される。前記モード設定信号80が直進モードを示すこの場合には、この2つの4ビットのビットマップ情報の中から、直進モード用宛先情報のビットマップ情報である“1000”が、セレクタ30311cでは選択される。
最後に、図25(c)について説明する。(a),(b)との大きな違いは、セルが入力された入力ポートのポート番号をビットマップ情報で前記9から受け取る点である。前記セル72aの場合、ポート番号#0に対応するビットマップ情報“1000”を前記9より受け取り、直進モード用宛先情報レジスタ30311eにセットする。通常モード用のデータの扱いは(b)と同様で、前記2aより2進表示で与えられ、前記通常モード用宛先情報レジスタ30311aにセットし、これを前記デコーダ30311dにおいてビットマップ情報に展開する。通常モード用、直進モード用ともにビットマップ情報に展開されたところで、前記モード設定信号80によってどちらかの情報が取り出される。前記共通バッファ型ATMスイッチ101aは前記直進モードに設定されるので、前記セル72aの場合、前記直進モード用宛先情報レジスタ30311eにセットされたデータ“1000”が前記セレクタ30311cによって選択される。
以上、3つの構成例について述べたが、他の構成例であっても構わない。例えば、前記通常モード用宛先情報レジスタ30311aにセットされるデータはビットマップの情報であっても構わないし、また、前記9からのデータを前記直進モード用宛先情報レジスタ30311bまたは30311eに保持せずにそのまま処理しても良いし、さらに、最終的に得られる宛先情報はビットマップでなくて2進数で与えられるデータであってもよい。
図26、27、28は、直進モード時の、アドレス制御部の宛先情報を獲得する部分の構成として図25(c)を用いたアドレス制御部およびアドレス管理部におけるアドレス獲得に関する実施例1を示す。
図25と同様に前記セル72aに注目して説明する。
図26、27、28の(a)は、前記セル72aが前記セルバッファ301に記憶される前の状態を示す。状態(a)では、前記セルバッファ301はアドレス0〜アドレス11までセルが記憶されており、アドレス12〜アドレス15は“空き”であるものとする。(図では“空き”は“Vac”で表されている。)前記セルバッファ301では、任意の1つのアドレスに、セル本体と、そのセルが出力される宛先の出力ポートに着目して次に出力されるべきセルの前記セルバッファ内でのアドレス、すなわち、次アドレスとが記憶されている。このように次アドレスを記憶することにより、前記セルバッファ301内のセルを、図27に示すような管理形態で各出力ポート毎にセルを連鎖状にして管理している。これはリンクトリストと呼ばれているものである。例えば、ポート番号#3の出力ポートを宛先とするセルはアドレス2,3,7,9にそれぞれ記憶されているものであり、この順番で前記セルバッファ301に入力および記憶されている。一例として、アドレス3にはCell3が記憶されていて、次のアドレスはアドレス7であることが管理されている。アドレス9にはCell9が記憶されているが、ポート番号#3の出力ポートに対応するリンクトリストの一番最後に管理されているため、次アドレスは“null”である。また、出力順序は、アドレス2に記憶されているCell2が1番目に出力され以下、アドレス3に記憶されているCell3、アドレス7に記憶されているCell7、そしてアドレス9に記憶されているCell9という順番で出力されていく。他のポート番号の出力ポートを宛先とするセルについても同様である。“空き”のアドレスも管理されていて、図26、27、28ではアドレス12、アドレス13、アドレス14、アドレス15の順に管理されている。アドレス15は“空き”アドレスの最後であるので、次アドレスはやはり“null”となっている。
図28は、アドレス制御部の宛先情報を獲得する部分の構成として図25(c)を用いた、アドレス制御部およびアドレス管理部3031を示す。図に示すように、前記アドレス制御部およびアドレス管理部3031内のアドレス管理部30312aは、各出力ポート毎および“空き”アドレスの、それぞれのリンクトリストに対応して、最初のセルと最後のセルとのアドレスをテーブルにより管理している。状態(a)では、ポート番号#0の出力ポートを宛先とするセルはアドレス8を獲得したCell8のみであるので、Cell8が最初のセルおよび最後のセルとして登録されている。
前記セル72aが、前記モード設定信号80により前記直進モードに設定されている前記共通バッファ型ATMスイッチ101aに入力されると、状態は(a)から(b)へと変化する。この様子について説明する。
前記セル72aはポート番号#0の入力ポートより入力され、また、上に述べたように前記モード設定信号80が前記直進モードに設定されているため、前記セレクタ30311cは宛先情報としてビットマップ“1000”を選択し、前記アドレス管理部30312aに与える。前記アドレス管理部30312aはテーブルの#0;“1000”の欄を参照し、ポート番号#0の出力ポートに対応するリンクトリストから最後のセルに対応するアドレス8を獲得する。また、前記アドレス管理部30312aはテーブルの“Vac”の欄を参照し、“空き”アドレスのリンクトリストから最初の“空き”アドレスであるアドレス12を獲得して、ポート番号#0の出力ポートに対応するリンクトリストに加える。この結果、前記アドレス管理部30312aのテーブルは状態(a)から状態(b)へ変化する。すなわち、#0;“1000”の欄は最後のセルとしてアドレス12を指し、“Vac”の欄は最初の“空き”アドレスとしてアドレス13を指すように書き換えられる。
このようにして得られたアドレス12を書き込みアドレスとして利用して、前記セル72aは前記セルバッファ301に記憶される。前記セル72aはポート番号#0の出力ポートに対応するリンクトリストの中で最後に位置するため、次アドレス“null”とともに記憶される。これにより、先ほど獲得したアドレス8に記憶されているCell8は、ポート番号#0の出力ポートに対応するリンクトリストの中で最後に位置するものではなくなり、アドレス12に記憶される前記セル72aが次に来ることから、Cell8の次アドレスは“null”からアドレス12を示すように書き換えられる。なお、図26、27、28では前記セル72aはCell12として示されている。図26の状態(b)は前記Cell12が前記セルバッファ301に記憶された様子を示しており、その管理形態が図27の状態(b)である。
以上、前記直進モードに設定された前記共通バッファ型ATMスイッチ101aに入力されたセルがアドレスを獲得するまでを示した。次に、簡単にセルの出力について述べる。
例えば、ポート番号#0の出力ポート、すなわち、図22の出力ポート30から出力する時には、ポート番号#0の出力ポートに対応するリンクトリストを検索して、最古のセルから出力していく。最古のセルは、前記アドレス管理部30312aのテーブルにて“最初”のセルを調査することにより得られる。前記出力ポート30についていえば、まずアドレス8に記憶されているCell8が出力され、次の前記出力ポート30から出力するタイミングにはアドレス12に記憶されたセルCell12(すなわち72a)が出力されることになる。これにより、前記セル72aはポート番号#0の入力ポート10より入力され、同一のポート番号#0の出力ポート30より出力される。
以上に述べてきた動作により、直進モード時に、任意の入力ポートより入力されたセルを前記任意の入力ポートと同一のポート番号を有する出力ポートより出力させることが容易に実現可能である。
図29は、直進モード時の、アドレス制御部の宛先情報を獲得する部分の構成として図25(c)を用いたアドレス制御部およびアドレス管理部におけるアドレス獲得に関する実施例2を示す。図26、27、28と同様に、前記モード設定信号80により前記直進モードに設定されている前記共通バッファ型ATMスイッチ101aに、前記セル72aが入力された状態に注目して説明する。
アドレス管理部30312bはシフトレジスタ方式のアドレス管理部である。ここで、シフトレジスタ方式のアドレス管理部については特開平5−351057に開示されている。
前記アドレス管理部30312bでは、セルの入力毎にその時点での“空き”の段の中で最下段のアドレスを、当該セルのビットマップで示された宛先情報の出力ポートと関連づけて管理していく。
前記セル72aが入力される時点では、前記アドレス管理部30312bにおいてアドレス0からアドレス11までがすでに使用されていて、“空き”の段の中で最下段に位置するアドレスは12となっている。すなわち、前記セルバッファ301の管理形態は次のようになっている。ポート番号#0へ出力するべきセルは、前記セルバッファ301内のアドレス8の位置に記憶されている。同様にして、ポート番号#1へ出力するべきセルはアドレス0,4,5,10の位置にポート番号#2へ出力するべきセルはアドレス1,6,11の位置に、ポート番号#3へ出力するべきセルはアドレス2,3,7,9の位置に、それぞれ記憶されている。
前記セル72aはポート番号#0の入力ポートより入力され、また、上に述べたように前記モード設定信号80が前記直進モードに設定されているため、前記セレクタ30311cは宛先情報としてビットマップ“1000”を選択し、前記アドレス管理部30312bに与える。ここで、上に述べたアドレス12をこのビットマップ“1000”と関連づけて、前記セル72aはアドレス12を獲得する。このようにして得られたアドレス12を書き込みアドレスとして利用して、前記セル72aは前記セルバッファ301に記憶される。
以上、前進直進モードに設定された前記共通バッファ型ATMスイッチ101aに入力されたセルがアドレスを獲得するまでを示した。
次に、セルの出力について簡単に述べる。#0の出力ポート、すなわち、図22の30の出力ポートからセルを出力する時には、前記アドレス管理部30312bに記憶されている#0に対応する宛先情報のビットを最も下の段から上の段へ順に検索していく。図29ではアドレス0から順にアドレス1,2,…,14,15と検索していく。前記セル72aが前記セルバッファ301に記憶された時点では、まず、アドレス8の位置に記憶されているセルが該当し、アドレス8を読み出しアドレスとして用いてセルを出力する。そして、前記出力ポート30の次の出力のタイミングには、12の位置に記憶されているセル、すなわち前記セル72aを出力する。
以上に述べたような動作を行なうことによって、直進モード時に、任意の入力ポートより入力されたセルを前記任意の入力ポートと同一のポート番号を有する出力ポートより出力させることが容易に実現可能である。
図30は、前進モード時の、アドレス制御部の宛先情報を獲得する部分の構成として図25(c)を用いたアドレス制御部およびアドレス管理部におけるアドレス獲得に関する実施例3を示す。
図30は、図29とは原理的に同じで、優先制御を扱うため優先クラスの情報がセルのヘッダ部に記述されている場合に対応している実施例である。すなわち、図30では、前記ヘッダ部の情報2に前記優先クラスの情報を2aに乗せてアドレス管理部30312cに通知する。本実施例では、前記優先クラスの情報は1ビットで表現され、優先クラスがAおよびBの2種類である場合を示している。
以下に図29と同じく前記セル72aが入力された場合について説明する。ただし、本実施例では、前記セル72aは前記優先クラスの情報“A”を有しているものとする。
図29で述べた動作と同じ動作を行なうことにより前記セル72aはアドレス12を獲得し、アドレス12と宛先情報“1000”および前記優先クラスの情報“A”とを関係づけて前記アドレス管理部30312cに記憶させる。前記セル72a自体は、アドレス12を書き込みアドレスとして用いて、前記セルバッファ301内のアドレス12の位置に記憶される。
セルの出力時には前記優先クラスの情報と前記宛先情報とを用いて図29で述べた動作と同じ動作により最下段から順に検索し、該当するセルを出力する。例えば、ポート番号#0の出力ポートから優先クラス“A”のセルを出力する時にはアドレス12が読み出してアドレスとして獲得されて、この結果、前記セル72aが出力されることになる。
以上に述べたように、シフトレジスタ方式のアドレス管理部30312cによると、優先制御も容易に実現できる上、直進モードの動作も容易に実現することが可能である。
以下に第3の構成を説明する。
図31は第3の構成を示す図である。第3の構成では第2の構成の図22での前記直進モード設定入力と前記通常モード設定入力とをマイクロプロセッサにより設定する点が、第2の構成とは異なる。
図中の101aおよび101bは、第2の構成において図24に示した前記モード設定入力を有する同一の共通バッファ型ATMスイッチである。前記共通バッファ型ATMスイッチ101aおよび101bは、前記モード設定入力として通常のスイッチング動作を行なう通常モードと、第1の構成の図20中の前記共通バッファ型ATMスイッチ100aのように、任意の入力ポートから入力されたセルは前記任意の入力ポートと同一のポート番号を有する出力ポートから出力するように動作する直進モードとを少なくとも具備する。
200aおよび200bはマイクロプロセッサである。80aおよび80bはモード設定信号で、前記共通バッファ型ATMスイッチを少なくとも通常モードと直進モードとに設定することが可能である。
前記共通バッファ型ATMスイッチ101aを、前記モード設定信号80aを前記マイクロプロセッサ200aにより前記直進モードと設定して前段に、そして、前記共通バッファ型ATMスイッチ101bを、前記モード設定信号80bを前記マイクロプロセッサ200bにより前記通常モードと設定して後段に設置し、前記共通バッファ型ATMスイッチ101aの出力ポートと前記共通バッファ型ATMスイッチ101bの入力ポートとをそのポート番号に基づいて同一の番号のポートを接続して、前記共通バッファ型ATMスイッチ101aと前記共通バッファ型ATMスイッチ101bとを縦続に接続する。
10,11,12,13は前記共通バッファ型ATMスイッチ101aの入力ポート、30,31,32,33は前記共通バッファ型ATMスイッチ101aの出力ポートであると同時に、前記共通バッファ型ATMスイッチ101bの入力ポートでもある。50,51,52,53は前記共通バッファ型ATMスイッチ101bの出力ポートである。
20,21,22,23は前記共通バッファ型ATMスイッチ101aからのセル出力制御信号、40,41,42,43は前記共通バッファ型ATMスイッチ101bからのセル出力制御信号である。60,61,62,63は前記共通バッファ型ATMスイッチ101bの後段の共通バッファ型ATMスイッチ、あるいは、別のスイッチボードからのセル出力制御信号である。
72a,72b,72cおよび73a,73b,73cはスイッチ内部で取り扱われるフォーマットを有するセルを表す。すなわち、721a,721b,721cおよび731a,731b,731cはユーザが自由に情報を載せられる情報部を示し、722a,722b,722cおよび732a,732b,732cは、スイッチ内部で取り扱われるルーティングタグ、優先制御のための優先クラスの情報、マルチキャストのための情報、およびATMセルヘッダなどを含むヘッダ部を示す。
以下、第3の構成を図31を見ながら説明する。
前記共通バッファ型ATMスイッチ101aが前記直進モードに設定されるため、前記入力ポート10より前記共通バッファ型ATMスイッチ101aに入力される前記セル72aは、セルに含まれる全てのデータが保存された状態のまま前記共通バッファ型ATMスイッチ101aを通過する。すなわち、前記入力ポート10はポート番号が#0であり、この番号を有する前記出力ポート30へ、前記セル72aは前記セル72bとして出力され、前記セル72aの前記ヘッダ部722a内の宛先情報“#3”は、前記セル72bの前記ヘッダ部722bにおいても保存されている。前記セル72bは前記共通バッファ型ATMスイッチ101bに入力され、その前記ヘッダ部722bに保存されている宛先情報が#3であることから、ポート番号#3に対応する前記出力ポート53へと出力されて、前記セル72cとなる。
前記セル73a,73b,73cは、前記セル72a,72b,72cと同様に処理される。前記共通バッファ型ATMスイッチ101aが前記直進モードに設定されるため、前記入力ポート12より前記共通バッファ型ATMスイッチ101aに入力される前記セル73aは、セルに含まれる全てのデータが保存された状態でそのまま前記共通バッファ型ATMスイッチ101aを通過する。すなわち、前記入力ポート12はポート番号が#2であり、この番号を有する前記出力ポート32へ、前記セル73aは前記セル73bとして出力され、前記セル73aの前記ヘッダ部532a内の宛先情報“#1”は、前記セル73bの前記ヘッダ部532bにおいても保存されている。前記セル73bは前記共通バッファ型ATMスイッチスイッチ101bに入力され、その前記ヘッダ部に保存されている宛先情報が#1であることから、ポート番号#1に対応する前記出力ポート51へと出力されて、前記セル73cとなる。
前記共通バッファ型ATMスイッチ101bが、第1の構成において述べたいずれかの方法の前記フロー制御を、前記共通バッファ型ATMスイッチ101aに対して行なうことによって、前記共通バッファ型ATMスイッチ101bと前記共通バッファ型ATMスイッチ101aとは協調して動作することができる。これより、前記共通バッファ型ATMスイッチ101aと前記共通バッファ型ATMスイッチ101bとは1つの共通バッファ型のATMスイッチと見なすことができ、結果としてバッファ容量が2倍の共通型ATMスイッチを容易に得ることができる。
本構成の図31のように前記マイクロプロセッサ200を使用してモード設定を行なうことの利点は、前記共通バッファ型ATMスイッチ101を簡単に変更して、柔軟な設定を行なうことができる可能性がある点である。
図32は、図24を変更して新たに入力信号を加えた、本構成の共通バッファ型ATMスイッチの実施例2である。すなわち、本構成の共通バッファ型ATMスイッチの実施例1の図24では前記モード設定信号80として通常モードと直販モードを少なくとも設定できるが、これに対し、本構成の共通バッファ型ATMスイッチの実施例2の図32では前記直進モードの代わりに特殊モードを設定できるようにし、特殊モード時の入力ポートと出力ポートとの接続関係を示す特殊モード設定データを新たに入力信号として加え、柔軟な設定を行なえるようにしている。
以下、図32について説明する。図32は入出力ポート数が4の場合を表している。10,11,12,13は入力ポートを示し、30,31,32,33は出力ポートを示す。20,21,22,23は当該共通バッファ型ATMスイッチから発せられるセル出力制御信号で、当該共通バッファ型ATMスイッチ内の制御部303により、セルバッファ301の管理状況から生成される第1の制御信号4を基に作られる。40,41,42,43は、当該ATMスイッチの後段のATMスイッチから、もしくは、前記各出力ポートに対応する出力インタフェースから、送られてくるセル出力制御信号である。7は前記セル出力制御信号40,41,42,43より得られる第2の制御信号である。
前記制御部303は、前記入力制御部3030、前記アドレス制御部およびアドレス管理部3031、そして、前記出力制御部3032の3つの部分からなる。
300は前記入力ポート10,11,12,13からのセルを前記入力制御部3030からの切替え制御信号3を用いて時分割多重する多重化回路で、1には前記入力ポートの各々からのセルが多重化されて乗せられる。
301はセルバッファ(共通バッファ)で、前記1に乗せられたセルを、アドレスおよび前記信号5に書き込みアドレスおよび書き込み制御信号をのせて、これによって記憶し、また、前記アドレスおよび制御信号5として読み出しアドレスおよび読み出し制御信号を乗せることにより、セルを読み出し、6へ乗せる。前記書き込みアドレスおよび書き込み制御信号と前記読み出しアドレスおよび読み出し制御信号とは、前記アドレス制御部およびアドレス管理部3031で作られる。
302は分離化回路で、前記6へと乗せられたセルを、前記制御部303内の出力制御部3032より与えられる分離化回路制御信号8を用いて前記出力ポート30,31,32,33の中から、前記ルーティングタグを参照して得られた宛先の出力ポートへ順次出力する。
80は前記モード設定信号で、少なくとも前記通常モードおよび前記直進モードを設定できるようにする。81は前記特殊モード時の入力ポートと出力ポートとの接続関係を示す特殊モード設定データである。
前記モード設定信号80により前記通常モードに設定された場合には、セルを前記セルバッファ301に書き込む時に、ヘッダ部の情報2の中の前記ルーティングタグより解析される宛先情報を前記セルと1対1対応させて前記アドレス制御部およびアドレス管理部3031に記憶しておき、前記セルを前記セルバッファ301から読み出す時に前記宛先情報を利用することにより、前記セルは所望の出力ポートへ出力される。
前記モード設定信号80により、前記特殊モードに設定された場合には、セルを前記セルバッファ301に書き込む時に、予め与えられた前記特殊モード設定データ81を宛先情報としこれを前記セルと1対1対応させて前記アドレス制御部およびアドレス管理部3031に記憶しておき、前記セルを前記セルバッファ301から読み出す時に前記宛先情報を利用することにより、前記セルは所望の出力ポートへ出力される。
図32に示した本実施例の共通バッファ型ATMスイッチの実施例2のように前記特殊モードを設定し、かつ、前記特殊モード設定データを与えることが可能であると、以下の幾つかの例に示すように、柔軟な設定を行なうことができる。
図33は、図32に示した本構成の共通のバッファ型ATMスイッチの実施例を用いたATM多重化装置およびATM分離化装置の実施例である。
10,11,12,13は入力ポートで、30,31,32,33は出力ポートである。80は前記モード設定信号であり、図33では、共通バッファ型ATMスイッチをATM多重化装置、ATM分離化装置および直進モードのいずれかとして、またはこれらを同時に存在させて動作するための前記特殊モードに設定されている。81は、当該共通バッファ型ATMスイッチが前記モード設定信号80により前記特殊モードに設定された場合に、入力ポートと出力ポートの入出力関係を記述する前記特殊モード設定データ入力である。
前記モード設定信号80、前記特殊モード設定データ81により入力される各信号およびデータを、マイクロプロセッサ200により設定すると、状況に応じた設定が行なえる。図33では、前記入力ポート10,11,12より入力されたセルが前記出力ポート30に多重化されて出力され、前記入力ポート13より入力されたセルが前記出力ポート31,32,33より分離されて出力されるように、前記特殊モード設定データ81によって記述し、前記共通バッファ型ATMスイッチ102を動作させる。
図34は図33に示した実施例における共通バッファ型ATMスイッチ102の中のアドレス制御部およびアドレス管理部に属するアドレス制御部において、宛先情報を獲得する部分の構成例である。図34(a)は入力ポート10,1112に対するもので、図34(b)は入力ポート13に対するものである。(a,(b)ともにアドレス制御部30311として図25(c)を用いた構成例である。
(a)では、入力ポート10,11,12より入力されたセルはすべてポート番号#0の出力ポート30より出力されるため、前記特殊モード設定データ81としてポート番号#0に対応するビットマップ“1000”が与えられ、特殊モード宛先情報レジスタ30311eにセットされる。前記モード設定信号80が前記特殊モードを設定されているため、セレクタ30311cでは宛先情報としてビットマップ“1000”が得られる。なお、前記モード設定信号80が前記通常モードに設定されている場合にはルーティングタグを参照してこれが宛先情報として選ばれることになる。
(b)は図25(c)に対し、以下のものを加えた構成をしている。前記特殊モード設定データ81によって与えられる3つのデータを記憶する設定データ用レジスタ500a,500b,500cと、これら3つのデータの中から1つのデータを選択するセレクタ502aと、前記ヘッダ部の情報2の中のVPI/VCI値2bの値により前記セレクタ502aを切替えるためのセレクタ切替え信号を作るためのデコーダー501である。前記デコーダー501は何らかの形によりテーブル5011を有して、VPI/VCI値2bと出力ポートを1対1対応させて管理する。これらの構成要素は前記アドレス制御部30311内に含まれていてもよいし、前記マイクロプロセッサ200とのインタフェースとして新たに構成してもよい。
(b)では、入力ポート13より入力されたセルはポート番号#1の出力ポート31、ポート番号#2の出力ポート32、ポート番号#3の出力ポート33の内、いずれかの出力ポートに出力される。このため、前記設定データ用レジスタ500aにはポート番号#1に対応したビットマップ“0100”、前記設定データ用レジスタ500bにはポート番号#2に対応したビットマップ“0010”、前記設定データ用レジスタ500cにはポート番号#3に対応したピットマップ“0001”がそれぞれ設定される。セルの出力を管理する前記デコーダー501は、コネクション設定時に前記テーブル5011を設定してVPI/VCI値と出力ポートを1対1対応させる。図34の実施例では、VPI/VCI値a、eのセルは出力ポート31へ出力される。VPI/VCI値b,fのセルは出力ポート32へ出力され、VPI/VCI値c,dのセルは出力ポート33へ出力されるように設定がなされている。セルが入力ポート13より入力されると、当該セルのVPI/VCI値2bが前記デコーダー501に与えられて出力ポートが決定される。図34の実施例では、VPI/VCI値がcであるセルが入力され、前記セレクタ502aによりビットマップ“0001”が選択され、これが前記特殊モード宛先情報レジスタ30311eにセットされる。前記モード設定信号80が前記特殊モードに設定されているため、セレクタ30311cでは宛先情報としてビットマップ“0001”が得られる。なお、前記モード設定信号80が前記通常モードに設定されている場合にはルーティングタグを参照してこれが宛先情報として選ばれるが、図34では入力されたセルのルーティングタグは“01”を示しているため、宛先情報としてビットマップ“0100”が得られることになる。
図35は、図33に示した実施例における共通バッファ型ATMスイッチ102の中のアドレス制御部およびアドレス管理部に属するアドレス制御部において宛先情報を獲得する部分の構成例で、図34と異なる実施例である。図35(a)は入力ポート10,11,12に対するもので、図35(b)は入力ポート13に対するものである。(a),(b)ともに前記アドレス制御部30311として新たな構成を用いた例である。基本的には、図25(c)を用いた構成例であるが、前記モード設定信号80にビット幅を持たせてモード設定部800と特殊モード詳細設定部801とに分ける。すなわち、前記特殊モード詳細設定部801によって、前記直進モードおよび前記ATM多重化装置を実現するモードと前記ATM分離化装置を実現するモードとを切替え、前記モード設定部800によって、前記直進モード、前記ATM多重化装置を実現するモード、前記ATM分離化装置を実現するモードのいずれかを表す前記特殊モードと、前記通常モードとを切替える。前記特殊モードの中でも、前記直進モードおよび前記ATM多重化装置を実現するモードの場合は、前記特殊モード設定データ81を宛先情報として利用するが、前記ATM分離化装置を実現するモードの場合には、ルーティングタグを宛先情報として利用する。したがって、図35に示す前記アドレス制御部30311では、前記通常モードと前記ATM分離化装置を実現するモードの場合にはルーティングタグを利用することになる。
(a)では、入力ポート10,11,12より入力されたセルはすべてポート番号#0の出力ポート30より出力されるため、前記特殊モード設定データ81としてポート番号#0に対応するビットマツプ“1000”が与えられ、特殊モード宛先情報レジスタ30311eにセットされる。前記特殊モード詳細設定部801が前記ATM多重化装置を実現するモードに設定されるため、前段のセレクタ30311cは30311eにセットされたデータを選択し、後段のセレクタ30311cでは前記モード設定部800が前記特殊モードに設定されるため宛先情報としてビットマップ“1000”が得られる。なお、前記モード設定部800が前記通常モードに設定されている場合にはルーティングタグを参照してこれが前記デコーダー30311dにてビットマップに変換されて宛先情報として選ばれることになる。
(b)では、入力ポート13より入力されたセルはポート番号#1の出力ポート31、ポート番号#2の出力ポート32、ポート番号#3の出力ポート33の中から、ルーティングタグに設定される情報を見て、いずれかの出力ポートに出力される。すなわち、前記特殊モード詳細設定部801が前記ATM分離化装置を実現するモードを表しているため、当該セルのヘッダ部の情報内のルーティングタグ2aをセットした前記通常モード用宛先情報レジスタ30311aのデータ“11”を前記デコーダ3011dを介して利用する。これにより、前段のセレクタ30311cで“0001”を取り出し、さらに前記モード設定部800により前記特殊モードに設定されていることから、後段のセレクタ30311cでは“0001”が宛先情報として選択される。この結果、前記出力ポート33より出力される。前記出力ポート31,32からも同様にして出力される。このようにして、コネクション設定時に入力ポート13より入力される各セルのルーティングタグを予めVPI/CVIと対応させて設定しておき、このルーティングテグを参照することによって前記出力ポート31,32,33のいずれかよりセルを出力させることができる。
図35のように、ルーティングタグを設定することにより前記ATM分離化装置を実現することの利点は、以下の様である。ATMスイッチの出力ポートを低速化して利用する目的で、前記ATM分離化装置は用いられるため、前記ATMスイッチの入力ポート側のインタフェースにおいて、図34の前記管理テーブル5011のようなテーブルを必ず持っていて、そこで前記ATM分離化装置におけるVPI/VCIと出力ポートとの対応づけを行ない、前記ATM分離化装置のためのルーティングタグを得ることが容易にできる。図34ではこのテーブルと前記管理テーブル5011の両方を参照する必要があったが、図35ではこのテーブルだけを参照すればよく、テーブル参照の手間が図13に比べ半分で済むことになる。
逆に、図34に示した実施例は、図35の実施例に比べ、前記ATM分離化装置を実現するモードに際してルーティングタグを消費しない点と、前記特殊モード設定データ81を利用することから前記プロセッサ200によって柔軟に設定が可能である点が利点である。
なお、図34および図35に示した実施例では、各入力ポートにおいて前記アドレス制御部30311の構成を同一にしてきたが、異なる構成としてもよい。例えば、前記ATM分離化装置の入力ポートとなる入力ポートの前記アドレス制御部は、前記特殊モード設定データ81は利用しない構成、すなわち、図25において前記通常モード用宛先情報レジスタ30311aおよび前記デコーダー30311dだけからなる構成としてもよい。
以上に述べた図33の実施例によると、1つの共通バッファ型ATMスイッチでATM多重化装置(MUX)とATM分離化装置(DEMUX)を同時に実現することが可能であり、その結果、共通バッファ型ATMスイッチの入力および出力ポートを1つも無駄にすることなく利用することができる。
図36は、図24に示した共通バッファ型ATMスイッチの実施例2を用いてATM多重化装置、ATM分離化装置、および直進モードを同時に存在させる実施例である。
10,11,12,13は入力ポートで、30,31,32,33は出力ポートである。
80は前記モード設定信号であり、図36では、共通バッファ型ATMスイッチをATM多重化装置、ATM多重化装置および直進モードのいずれかとして、またはこれらを同時に存在させて動作させるための前記特殊モードに設定されている。81は、当該共通バッファ型ATMスイッチが前記モード設定信号80により前記特殊モードに設定された場合に、入力ポートと出力ポートの入出力関係を記述する前記特殊モード設定データ入力である。
前記モード設定信号80、前記特殊モード設定データ81により入力される各信号およびデータを、マイクロプロセッサ200により設定すると、状況に応じた設定が行なえる。図36では、前記入力ポート10,11,12より入力されたセルが前記出力ポート30に多重化されて出力され、前記入力ポートにより入力されたセルが前記出力ポート32にそのまま出力され(直進モード)、前記入力ポート13より入力されたセルが前記出力ポート31,33より分離されて出力されるように、前記特殊設定データ81によって記述し、前記共通バッファ型ATMスイッチ102を動作させる。
図37は図36に示した実施例における共通バッファ型ATMスイッチ102の中のアドレス制御部およびアドレス管理部に属するアドレス制御部において、宛先情報を獲得する部分の構成例である。図37(a)は入力ポート10,11に対するもので、図37(b)は入力ポート12に対するもので、図37(c)は入力ポート13に対するものである。(a),(b),(c)ともにアドレス制御部30311として図25(c)を用いた構成例である。
(a)では、入力ポート10,11より入力されたセルはすべてポート番号#0の出力ポート30より出力されるため、前記特殊モード設定データ81としてポート番号#0に対応するビットマップ“1000”が与えられ、前記特殊モード宛先情報レジスタ30311eにセットされる。前記モード設定信号80が前記特殊モードを設定されているため、セレクタ30311cでは宛先情報としてビットマップ“1000”が得られる。なお、前記モード設定信号80が前記通常モードに設定されている場合にはルーティングタグを参照して、これが前記デコーダー30311dにてビットマップに変換されて宛先情報として選ばれることになる。
(b)では、入力ポート12により入力されたセルはポート番号#2の出力ポート32より出力されるため、前記特殊モード設定データ81としてポート番号#2に対応するビットマップ“0010”が与えられ、前記特殊モード宛先情報レジスタ30311eにセットされる。前記モード設定信号80が前記特殊モードを設定されているため、セレクタ30311cでは宛先情報としてビットマップ“0010”が得られる。なお、前記モード設定信号80が前記通常モードに設定されている場合にはルーティングタグを参照して、これが前記デコーター30311dにてビットマップに変換されて宛先情報として選ばれることになる。
(c)は図25(c)に対し、以下のものを加えた構成をしている。前記特殊モード設定データ81によって与えられる2つのデータを記憶する設定データ用レジスタ500a,500bと、これら2つのデータの中から1つのデータを選択するセレクタ502bと、前記ヘッダの情報2の中のVPL/VCI値2bの値により前記セレクタ502bを切替えるためのセレクタ切替え信号を作るためのデコーダー501である。前記デコーダー501は何らかの形によりテーブル5011を有して、VPI/VCI値2bと出力ポートを1対1対応されて管理する。これらの構成要素は前記アドレス制御部30311内に含まれてもよいし、前記マイクロプロセッサ200とインタフェースとして新たに構成してもよい。 (c)では、入力ポート13より入力されたセルはポート番号#1の出力ポート31、ポート番号#3の出力ポート33の内、いずれかの出力ポートに出力される。このため、前記設定データ用レジスタ500aにはポート番号#1に対応したビットマップ“0100”、前記設定データ用レジスタ500bにはポート番号#3に対応したビットマップ“0001”がそれぞれ設定される。セルの出力を管理する前記デコーダー501は、コネクション設定時に前記テーブル5011を設定してVPI/VCI値と出力ポートを1対1対応させる。図37の実施例では、VPI/VCI値a,d,e,fのセルは出力ポート31へ出力され、VPI/VCI値b,cのセルは出力ポート33へ出力されるように設定がなされている。セルが入力ポート13より入力されると、当該セルのVPI/VCI値2dが前記デコーダー501に与えられて出力ポートが決定される。図37の実施例では、VPI/VCI値がaであるセルが入力され、前記セレクタ502aによりビットマップ“0100”が選択され、これが前記特殊モート宛先情報レジスタ30311eににセットされる。前記モード設定信号80が前記特殊モードに設定されているため、セレクタ30311cでは宛先情報としてビットマップ“0100”が得られる。なお、前記モード設定信号80が前記通常モードに設定されている場合にはルーティングタグを参照してこれが宛先情報として選ばれるが、図37では入力されたセルのルーティングタグは“00”を示しているため、宛先情報としてビットマッブ“1000”が得られることになる。
図38は、図36に示した実施例における共通バッファ型ATMスイッチ102の中のアドレス制御部およびアドレス管理部に属するアドレス制御部において宛先情報を獲得する部分の構成例で、図37と異なる実施例である。図38(aは入力ポート10,11に対するもので、図38(b)は入力ポート12に対するもので、図38(c)は入力ポート13に対するものである。(a),(b)(c)ともに前記アドレス制御部30311として図35と同じ構成を用いた例である。
(a)では、入力ポート10,11より入力されたセルはすべてポート番号#0の出力ポート30より出力されるため、前記特殊設定データ81としてポート番号#0に対応するビットマップ“1000”が与えられ、特殊モード宛先情報レジスタ30311eにセットされる。前記特殊モード詳細設定部801が前記ATM多重化装置を実現するモードに設定されるため、前段のセレクタ30311cは30311eにセットされたデータを選択し、後段のセレクタ30311cでは前記モード設定部800が前記特殊モードに設定されるため、宛先情報としてビットマップ“1000”が得られる。なお、前記モード設定部800が前記通常モードに設定されている場合にはルーティングタグを参照し、これが前記デコーダー30311dにてビットマップに変換されて宛先情報として選ばれることになる。
(b)では、入力ポート12より入力されたセルはポート番号#2の出力ポート32より出力されるため、前記特殊モード設定データ81としてポート番号#2に対応するビットマップ“0010”が与えられ、前記特殊モード宛先情報レジスタ30311eにセットされる。前記直進モードに設定されるため、前段のセレクタ30311cは前記特殊モード詳細設定部801によって30311eにセットされたデータを選択し、後段のセレクタ30311cでは前記モード設定部800が前記特殊モードに設定されるため、宛先情報としてビットマップ“0010”が得られる。なお、前記モード設定部800が前記通常モードに設定されている場合にはルーティングタグを参照して、これが前記デコーダー30311dにてビットマップに変換されて宛先情報として選ばれることになる。
(c)では、入力ポート13より入力されたセルはポート番号#1の出力ポート31、ポート番号#3の出力ポート33の中から、ルーティングタグに設定される情報を見て、いずれかの出力ポートに出力される。すなわち、前記特殊モード詳細設定部801が前記ATM分離化装置を実現するモードを表しているため、当該セルのヘッダ部の情報内のルーティングタグ2aをセットした前記通常モード用宛先情報レジスタ30311aのデータ“01”を前記デコーダー3011dを介して利用する。これにより、前段のセレクタ30311cで“0100”を取り出し、さらに前記モード設定部800により前記特殊モード設定されていることから、後段のセレクタ30311cでは“0100”が宛先情報として選択される。この結果、前記出力ポート31より出力される。前記出力ポート33からも同様にして出力される。このようにして、コネクション設定時に入力ポート13より入力される各セルのルーティングタグを予めVPI/VCIと対応させて設定しておき、このルーティングタグを参照することによって前記出力ポート31,33のいずれかよりセルを出力させることができる。
図38のように、ルーティングタグを設定することにより前記ATM分離化装置を実現することの利点は、以下の様である。ATMスイッチの出力ポートを低速化して利用する目的で、前記ATM分離化装置は用いられるため、前記ATMスイッチの入力ポート側のインタフェースにおいて、図37の前記管理テーブル5011のようなテーブルを必ず持っていて、そこで前記ATM分離化装置におけるVPI/VCIと出力ポートとの対応づけを行ない、前記ATM分離化装置のためのルーティングタグを得ることが容易にできる。図38ではこのテーブルと前記管理テーブル5011の両方を参照する必要があったが、図17ではこのテーブルだけを参照すればよく、テーブル参照の手間が図37に比べ半分で済むことになる。
逆に、図37に示した実施例は、図38の実施例に比べ、前記ATM分離化装置を実現するモードに際してルーティングタグを消費しない点と、前記特殊モード設定データ81を利用することから前記プロセッサ200によって柔軟に設定が可能である点が利点である。
なお、図37および図38に示した実施例では、各入力ポートにおいて前記アドレス制御部30311の構成を同一にしてきたが、異なる構成としてもよい。例えば、前記ATM分離化装置の入力ポートとなる入力ポートの前記アドレス制御部は、前記特殊モード設定データ81は利用しない構成、すなわち、図25において前記通常モード用宛先情報レジスタ30311aおよび前記デコーダー30311dだけからなる構成としてもよい。
図36の実施例によると、1つの共通バッファ型ATMスイッチでATM多重化装置(MUX)、ATM分離化装置(DEMUX)および直進モードを同時に実現することが可能であり、その結果、共通バッファ型ATMスイッチの入力および出力ポートを1つも無駄にすることなく利用することができる。
以上に述べたように前記マイクロプロセッサ200により前記特殊モード設定データ81のデータを設定するようにすると、共通バッファ型ATMスイッチを柔軟に設定して利用することが可能である。すなわち、ATM多重化装置として利用したり、ATM分離化装置として利用したり、直進モードと設定された場合はバッファとして利用できる。また、前記特殊モード設定データ81の設定によっては、図33および図36に示した実施例のように、ATM多重化装置、ATM分離化装置、バッファを同時に存在させる構成をとることができ、さらに、これらのATM多重化装置やATM分離化装置の規模を柔軟に変更することが可能である。
上記した第2の実施形態によれば、共通バッファ型ATMスイッチに複数の動作モードを設けてその内の1つに直進モードを用意し、この直進モードを利用することにより、同一の共通バッファ型ATMスイッチをさらに1つ用意するだけで、共通バッファ型ATMスイッチのバッファ容量の拡張が容易に行なえるようにすることが可能となる。
また、動作モードを複数設けると、直進モードを実現する以外にも、ATM多重化装置を実現することやATM分離化装置を実現すること、あるいは、これらのすべてを1つの共通バッファ型ATMスイッチ内に同時に実現することが可能である。
以下に本発明の第3の実施形態について説明する。
まず、第3の実施形態におけるm入力n出力共通バッファ型ATM交換機について説明する。
まず、第1に、動的しきい値設定部より、各内部論理キューi(1≦i≦n)ごとのバッファ内セル数のしきい値Ki を、現在の、または予測される、または要求される呼設定に関する情報に基づいて動的に設定する。また、各内部論理キューi宛の現在のバッファ内セル数Qi をバッファ内セル数カウント部によりカウントしておき、出力ポートi宛のセルがスイッチに到着したとき、Qi ≧Kiである場合にはセル入力規制部により到着セルの共通バッファへの入力を規制する。
第2に、動的しきい値設定部は、各内部論理キューi宛のバッファ内セル数のしきい値Ki を、しきい値の和KS =K1 +K2 +…+Kn が共通バッファサイズK以下となるような値に設定する。
第1の方式により、現在の、または一定期間観測した、または要求される呼設定に関する情報に基づいて内部論理キュー毎に異なるキュー長の上限値を柔軟に設定できるため、出力ポート間で呼の到着が不均一な場合にもスイッチのバッファリソースを効率的に使用することが可能となる。
また、第2の方式により、出力バッファ型のスイッチと等価になるため、従来の出力バッファに対するセル廃棄計算手法を用いて高精度で安全側にセル廃棄率を見積もることができる。また、従来の方式と同様に遅延についてもキュー長で上限を抑えることができる。さらに、しきい値を動的に変えることにより、呼レベルでのバッファの共有化効果が期待でき、収容可能な呼の本数を出力バッファ型スイッチより通常の場合には多く、最悪の場合でも出力バッファ型スイッチと同じにすることができる。
以下に第3の実施形態のハードウェア構成について述べる。
図40は、本発明におけるm入力n出力共通バッファ型ATMスイッチの基本構成を示している。なお、通常、m=nである。
図40において、911はスイッチ、905は共有バッファメモリ、900はマルチプレクサ、901はデマルチプレクサ、909は共有バッファメモリ管理部、912はセル入力規制部、906はアドレス管理用キュー、907はバッファ内セル数カウント部、908はしきい値保持部、910は動的しきい値設定部、915,914,913はセル入力ポート、902,903,904はセル出力ポートを表す。
スイッチ911はスイッチの入力ポート915,914,913に到着したセルをポート速度のm倍速で動作する時分割マルチプレクサで多重して共有バッファメモリに一旦蓄積した後、ポート速度のn倍速で動作する時分割デマルチプレクサで宛先出力ポート902,903,904に分離出力する。
共有バッファメモリ管理部909は、共通バッファメモリ905に蓄積されるセルのメモリ内アドレスを内部論理キュー対応のFIFOキューで管理する。
内部論理キューは、通常、出力ポート毎に存在するが、VP(VirtualPath)あるいはVC(Virtual Channel)毎に存在する場合もある。
また、内部論理キューを階層的に設け、各階層の内部論理キュー対応に動的に設定可能なしきい値を設けることも可能である。この場合には、例えば、QOSクラス対応に内部論理キューを設け、さらに、各QOSクラス毎の論理キューを出力ポート毎の内部論理キューに分割して使用し、QOSクラス別内部論理キュー、および、各QOSクラス別内部論理キュー内の出力ポート別内部論理キューに対して異なるしきい値を設けることができる。
さらに、各内部論理キューに対して、動的に設定可能なしきい値を複数個設けることも可能である。これは、例えば、ある内部論理キューに低優先セル用のしきい値と、高優先セル用の2個のしきい値を設け、内部論理キューのキュー長が低優先セル用のしきい値以上となった場合には低優先セルの入力を規制し、さらに、高優先セル用のしきい値以上となった場合には低優先セル、高優先セル両方の入力を規制する、といった優先制御を行なう場合に有効である。本発明は、どのように内部論理キューを構成する場合においても有効である。
共有バッファメモリ管理部909は、共有バッファメモリに接続するアドレス出力用データ線(Addr),read信号線(R),write信号線(W)を用いて、1セル周期名に最大m個のセルを共有バッファへ書き込み、最大n個のセルを共有バッファメモリから取り出すことによりセルを所望の出力ポート902,903,904のうち少なくとも1つの出力ポートに交換出力する。
また、共有バッファメモリ管理部909はCPU処理により実現してもよい。動的しきい値設定部910は、信号線i,Ki およびwrite信号線Wを用いて、しきい値保持部908が保持する内部論理キューiに対するバッファ内セル数のしきい値Ki を、現在の、または一定期間観測した、または要求される呼設定に関する情報に基づいて動的に設定する。
動的しきい値設定部910の基本ハードウェア構成を図41に示す。図41において、930はプロセッサ、931はメモリ、932は入出力インターフェース、933はバスである。動的しきい値設定部910は、しきい値を計算し、入出力インターフェース932を通じてしきい値を外部に出力するソフトウェアをメモリ931内に有する。入出力インターフェース932には、外部からの呼処理用シグナリングセル、OAMセル、セル廃棄イベント等の統計情報が入力可能であり、また、磁気ディスクなどの2次記憶装置も接続可能である。
しきい値保持部908は、内部論理キューの数に等しい個数のレジスタから構成され、各レジスタに内部論理キュー対応のバッファ内セル数のしきい値を保持する。しきい値保持部908に内部論理キューiに対するしきい値Ki を書き込む場合には、動的しきい値設定部910からの信号線i、Ki およびwrite信号線Wを用い、しきい値保持部908から内部論理キューiに対するしきい値Ki を読み込む場合には、セル入力規制部912からの信号線i、Ki およびread信号線Rを用いる。
バッファ内セル数カウント部907は、スイッチの各内部論理キューi宛の現在のバッファ内セル数Qi をカウントする内部論理キューの数に等しい個数のアップダウンカウンタから構成される。セルが内部論理キューに蓄積される場合にはその内部論理キューに対するカウンタ値がインクリメントされ、セルが内部論理キューから取り出される場合にはその内部論理キューに対するカウンタ値がデクリメントされる。
また、しきい値保持部908が内部論理キューiに対してしきい値Ki を設定する際、内部論理キューiのバッファ内セル数Qi がKi 以下になるまでレジスタへのしきい値Ki の書き込みを行わない構成も可能である。この場合には、しきい値保持部908には各内部論理キューのバッファ内セル数Qi を入力する手段と、動的しきい値設定手段910からの設定要求しきい値Ki を一時的に保持するバッファと、Qi とKi の値を比較する手段とが別に必要となる。
バッファ内セル数カウント部907から内部論理キューiに対する現在のバッファ内セル数Qi を読み込む時には、セル入力規制部912からの信号線i,Qi およびread信号線Rを用いる。
バッファ内セル数カウント部907が保持する現在のバッファ内セル数Qi をインクリメントする時には、アドレス管理用キュー906からの信号線iおよびIncrを用いる。信号線Incrは、共有バッファメモリにセルが入力されたときにenableとなるようにする。
バッファ内セル数カウント部907が保持する現在のバッファ内セル数Qi をデクリメントする時には、アドレス管理用キュー906からの信号線iおよびDecrを用いる。信号線Decrは、共有バッファメモリ905からセルが出力されたときにenableとなるようにする。
セル入力規制部912は、マルチプレクサ900から信号線Tによりタイミング信号とともに信号線Cellにより入力されたセルのルーチングタグを検索して得られたセルの宛先内部論理キュー番号を信号線iに出力するとともに、read信号線Rをenableとして、指定された内部論理キューに対するしきい値Ki を信号線Ki から、バッファ内セル数値Qi を信号線Qi からそれぞれ入力する。
次に、得られたQi とKi の値を比較し、Qi ≧Ki のときにセルの入力規制を行うが、セルの入力規制に関して以下の2つの方式がある。
第1に、Qi <Ki のときにのみに、セル入力規制部912はアドレス管理用キューに接続するW信号線をenableにする方式である。これにより、内部論理キューにしきい値を越える数のセルが蓄積されなくなる。図40は第1の方式をとった場合のスイッチ構成である。
第2に、Qi ≧Ki のときに、セル入力ポートに対して、内部論理キューiに蓄積されるべきセルの送出を一時的に止めさせるためのフロー制御信号を送出する方式である。この場合には、フロー制御手段およびフロー制御のための信号線が共有バッファメモリ管理手段909に必要となる。図42は第2の方式をとった場合のスイッチ構成である。図42において、941はフロー制御信号線である。この場合には、デマルチプレクサ901からのタイミング信号Tが、アドレス管理用キュー906と、バッファ内セル数カウント部907のread enable入力と、しきい値保持部908のread enable入力とに出力される。また、アドレス管理用キュー906からのdecr信号は、バッファ内セル数カウント部907と、セル入力規制部940のTf信号線に入力され、このときセル入力規制部940において、セルが送出される内部論理キューiに対してフロー制御信号の更新が行なわれ、その結果、フロー制御信号線941からの出力のうち、内部論理キューiに対応する部分の出力が変化する。セル入力ポートでは、入力されたフロー制御信号をもとに、送出を止められていない内部論理キュー宛のセルを選択してスイッチに出力する。
また、第1および第2の方式は両方同時に実装することも可能である。
次に、第1のセル入力規制方式をとった場合のセル入力規制部912の構成図を図43に示す。
図43において、920は内部論理キュー検索部(出力ポート検索部)、921は比較器である。セル入力規制部912は信号線Tからのタイミング信号とともに信号線Cellにより入力されたセルのルーチングタグが入力されると、その内容から宛先の内部論理キュー番号を検索し、その値を信号線iに出力するとともに、外部信号線Rと、比較器921に接続された信号線Holdをenableにする。
次に、外部からの信号線Ki ,Qi から比較器921に指定された内部論理キュー対応のしきい値と現在のバッファ内セル数が入力され、比較結果を信号線Resultから外部信号線Wに出力する。また、比較器921から内部論理キュー検索部920に対してReset信号を出力する。内部論理キュー検索部920では、Reset信号入力の結果、内部論理キュー検索部920のHold信号線の出力がdisableとなる。
アドレス管理用キュー906は、セル入力規制部912から信号線Wからのwrite信号とともに信号線iにより内部論理キュー番号を受けとると、指定された内部論理キューに対応するアドレスキューの最後尾に未使用の共有バッファメモリアドレスを追加する。またこのアドレスは信号線Wからのwrite信号とともに信号線Addrにも出力され、共有バッファメモリ905の入力データ線に乗っているセルの内容が共有バッファメモリ905のこのアドレスに書き込まれる。また、このときIncr信号線をenableにする。
次に、第2のセル入力規制方式をとった場合のセル入力規制部940の構成図を図44に示す。
図44において、950は比較器、951はデコーダである。出力ポート検索部920と比較器921は図43と同じ動作となる。比較器950は、外部信号線Ki 、Qi からそれぞれ、内部論理キューのしきい値Ki 、Qi が、外部信号線Tfからフロー制御信号変更のタイミングが入力されると、Ki の値とQi の値とを比較し、比較結果を信号線Resultを用いてデコーダ951に出力する。デコーダ951は、外部信号線Tfからのタイミング信号を受信すると、比較器950からのResult信号、外部信号線iから内部論理キュー番号iとから、フロー制御信号線fi に対してResult信号を出力しHoldする。このようにして、内部論理キューiに対するセルの送出が起こった時にフロー信号を更新する。
このようにして、最大m個のセルの入力を行なった後、アドレス管理キュー906は、デマルチプレクサ901から信号線Tによりタイミング信号を受けとると、現在の内部論理キューに対応するアドレスキューの先頭からアドレスを1個取りだす。このアドレスは信号線Rからのread信号とともに信号線Addrに出力され、共有バッファメモリ905の指定されたアドレスからセルが読み出されてデマルチプレクサ901により現在の出力ポートに出力される。このとき、現在の内部論理キュー番号を信号線iに出力し、Decr信号線をenableにする。デマルチプレクサ901からのタイミング信号はn回送出され、この間に各出力ポートから1個ずつセルを出力する。なお、内部論理キューが出力ポート単位に設けられていない場合には、各出力ポートに対して現在の内部論理キューを選択するスケジューラが必要となる。
次に、動的しきい値設定部910における、内部論理キュー対応のバッファ内セル数のしきい値設定方法について述べる。
まず、しきい値設定時に用いる情報について述べる。
動的しきい値設定部910がしきい値を設定する場合に用いる呼設定に関する情報の一例として、呼あるいは呼種毎のトラヒック特性に関するパラメータや呼あるいは呼種毎に要求されるセル廃棄率やセル遅延時間、あるいは呼損率に関する通信品質、現在の、あるいは一定期間観測した呼種毎の接続本数や呼量などが挙げられる。
また、ABRサーブスクラスやUBRサービスクラスのように遅延に関するQOSがなく、スループットを保証するようなトラヒックに対しては、各内部論理キューにiに対する目標スループットγi の値も動的しきい値設定部910がしきい値を設定する際の情報として用いられる。この場合には、しきい値Ki は、次のようになる。
と設定することにより、目標スループットで重みづけされたしきい値設定が可能となる。ここで、Kb はABR/UBRクラスに対して割り当てられる共通バッファサイズである。
なお、動的しきい値設定部910がしきい値を設定する場合には、これらの呼設定に関する情報のうち、現在の情報に基づいてしきい値を設定する方式、または、一定期間観測した情報に基づいてしきい値を設定する方式、あるいはあらかじめ定められた要求値に関する情報に基づいてしきい値を設定する方式、さらに、これら3つの方式の2つ以上を組み合わせてしきい値を設定する方式がある。
次に、動的しきい値設定部910が現在の呼設定に関する情報を用いてしきい値を設定する方式の具体例を示す。
この方式では、各出力ポートi対応のバッファ内セル数のしきい値Ki の更新を、スイッチの出力ポートiを通る呼が発生する時、あるいはスイッチの内部論理キューiを通る呼が終了する時のいずれかの場合に行なう。
また、ここで扱う呼はPVC(Permanent VC),SVC(Switched VC),VPのいずれでもよい。通常、交換機は呼の接続/切断処理を行なう呼処理手段を備えているが、現在の呼設定に関する情報を用いてしきい値を設定する場合には、動的しきい値設定部910は呼処理手段の中に含まれる構成でもよい。
この場合に呼処理手段が行う呼受付制御アルゴリズムの例を図45に示す。この例では、呼設定に関する情報として、呼種毎の要求セル廃棄率と最大セル遅延時間、および、内部論理キュー毎の現在の呼接続本数を用いる。呼種毎のトラヒックパラメータ、および、呼種毎の要求セル廃棄率、最大セル遅延時間は時間によって変化しないため、図45においては、現在の呼設定に関する情報を現在の呼接続本数のベクトルS=(Ni-1 Ni-2 ,…,Ni-L )で表わしている。これを呼接続状態ベクトルと呼ぶ。ここでLはスイッチで扱う呼種数である。
動的しきい値設定部910は、あるいは呼接続状態ベクトルSに対して、セル廃棄率に関する通信品質を保証可能な内部論理キューi宛のバッファ内セル数のしきい値K(S)を呼種ごとのトラヒックパラメータを用いて算出する手段をもつ。しきい値K(S)の算出手段として、以下の2つの方式がある。
第1の方式は、各呼接続状態ベクトルSに対して、セル廃棄率を満たすために必要なしきい値K(S)をあらかじめ算出してテーブル{K(S)}としてメモリに保持しておき、呼接続状態Sをインデックスとしたテーブル検索によりしきい値K(S)を得る方式である。テーブル{K(S)}を作成する際には、出力バッファ型のスイッチの解析またはシミュレーションもしくは観測によって得られた結果を用いる。
L=2の場合にテーブル{K(S)}を3次元的に表した模式図を図46に示す。この方式は、しきい値の算出にかかる計算時間が呼処理に要する時間に比べて大きい場合に使用する。第2の方式は、しきい値K(S)をリアルタイムに計算する方式である。この方式は、K(S)の計算時間が呼処理に要する時間に比べて小さい場合に使用する。
また、セル遅延に関する要求品質がある場合には、動的しきい値設定部910は、内部論理キューiごとのセル遅延の上限値Di 、および、スイッチの共有バッファメモリサイズKの値を保持しておく。Di が全出力ポートで等しい場合には内部論理キューごとにDi を持っておく必要はない。また、セル遅延の要求品質が規定されない場合には、図45において、Ki ≦Di の比較は行わないようにするか、あるいは、Di =Kとおく。
内部論理キューiにセルを蓄積する呼種jの呼の接続要求が発生した時、動的しきい値設定部910は、この呼を接続した場合の新しい呼接続状態ベクトルS′に対してしきい値K(S′)を求め、しきい値がK(S)からK(S′)に増加した場合の各内部論理キューに関するしきい値の総和がK以下のある値K′以下で、遅延に関する要求値が存在する場合にはしきい値K(S′)が遅延に関する要求値Di 以下である場合に呼を接続するとともに内部論理キューiに対するしきい値をK(S′)に設定する。なお、優先制御を行なう場合には、K−K′セル分の領域を低優先セル用に与え、全内部論理キューで共有して使用する。
一方、内部論理キューiにセルを蓄積する呼種jの呼の切断要求が発生した時は、この呼を切断した場合の新しい呼接続状態ベクトルS′に対してしきい値K(S′)を求め、内部論理キューiに対するしきい値を無条件にK(S′)に設定する。
また、動的しきい値設定部910は、内部論理キューiの状態がS=(0,0,…,0)のとき、すなわち、内部論理キューiに蓄積されるべきセルを送出する呼が存在しない場合には、K(S)=0となるようにする。
次に、動的しきい値設定部910が一定期間観測した呼設定に関する情報を用いてしきい値を設定する方式の具体例を示す。
この方式では、呼設定に関する情報として、呼種毎のトラヒック特性に関するパラメータ、呼種毎に要求されるセル廃棄率およびセル遅延時間、一定期間観測した内部論理キュー毎の呼種別の呼発生レートと呼接続時間とから計算される呼量を用いる。
次に、この方式における各内部論理キューi宛のバッファ内セル数のしきい値の決定方法としてLagrangeの方法を用いた例を示す。
一定期間観測した内部論理キューiに接続される呼種jの呼量をai,j (erl),呼量の重みをwi,j とし、呼量ベクトルをAi =(ai,1 ,ai,2 ,…,ai,L ),重みベクトルをWi =(wi,1 ,wi,2 ,…,wi,L ),とする。呼種ごとの呼量の重みは、各呼種のトラヒックパラメータ、あるいは呼種の優先度をもとに決定する。 また、バッファ内セル数のしきい値のベクトルをX=(X1 ,X2 ,…,Xn )とする。
呼量ベクトルAi が与えられた時、関数PAi(Xi )を、呼量ベクトルAi に対し、しきい値がXi のときのセル廃棄率とする。また、要求セル廃棄率をPmax とする。また、関数rAi(Xi )を以下のように定義する。
ここで、Kはセル数で表される共有バッファメモリサイズであり、K′は定数である。スイッチで優先制御を行なう場合には、K−K′セル分を低優先セル用に与え、全内部論理キューで共有して使用する。
次に、G(X)=K′(≦K)の条件の下で関数H(X)が最大となるようなしきい値ベクトルXを以下のようにして求める。
関数F(X)を未定係数λを用いて以下のように定義する。
となるように各Xi と係数λを決めると、そのときのXでH(X)は最大となる。
このようにして求めたXi と、各内部論理キュー単位に定められたセル遅延に関する上限値Di とを用いて、動的しきい値設定部910は内部論理キューi宛のバッファ内セル数のしきい値Ki を以下の値に設定する。
Ki =min (Di ,[Xi ]) (16) また、セル遅延に関する上限値が規定されない場合には、式(16)においてDi =Kとおくか、あるいは、Ki =[Xi ]
とする。ここで、[Xi ]はXi を越えない最大の整数を表す。ただし、呼量Ai =(0,0,…,0)のとき、すなわち、内部論理キューiを使用する呼が存在しない場合には、式(16)は用いずにKi =0とする。
次に、呼量係数算出関数rAi(Xi )の整数値を求めるアルゴリズムの一例を図47に示す。また、呼量係数算出関数rAi(Xi )のグラフの例を図48に示す。
なお、この方式では、呼の接続/切断時には、各内部論理キューiでバッファサイズKi の出力バッファ型スイッチに対する呼受付制御アルゴリズムと同様のアルゴリズムを用いて呼受付制御を行なう。
次に、動的しきい値設定部910が呼設定に関する情報のうち、あらかじめ定められた要求値を用いてしきい値を設定する方式の具体例を示す。ここでは、ある内部論理キューiに対して呼接続状態ベクトルSで与えられるだけの呼を収容しなければならないという要求があったとする。このとき、内部論理キューiに対しては、現在の呼接続状態ベクトル内容に関わらずしきい値Ki をK(S)に設定する。ただし、このような設定はK(S)≦Kの場合にのみ可能である。
さらに、このようにしきい値を設定する以外の内部論理キューに対しては、動的しきい値設定部910は、呼設定に関する情報のうち、現在の情報に基づいてしきい値を設定する方式、または、一定期間観測した情報に基づいてしきい値を設定する方式を用いてしきい値を設定することもできる。
本発明は、複数の共通バッファ型ATMスイッチを任意に接続して構成したATM交換機に対しても有効である。以下、多段接続構成の場合の動的しきい値設定部の実施例を示す。図49に多段接続構成の場合のATM交換機の構成を示す。
図49において、960はスイッチ、961は単位スイッチ、962は動的しきい値設定部、963はしきい値配分部である。
しきい値配分部963は、現在の、または一定期間観測した、または要求される呼設定に関する情報に基づいて、スイッチ960内の各単位スイッチの各内部論理キューに対して動的に設定するしきい値を計算する。その際、各単位スイッチの各内部論理キューの集合の部分集合を構成し、これを内部論理キュー群とする。内部論理キュー群の構成の仕方は、単位スイッチ同士の接続の仕方(Delta接続かマトリックス接続か、など)や内部論理キューの単位(単位スイッチの出力リンク毎かコネクション毎か、など)に依存して変わる。しきい値配分部963は、まず、各内部論理キュー群を一つの論理キューとみなしてしきい値を割当てる。次に、各内部論理キュー群に割り当てられたしきい値を各内部論理キューに対して配分する。
次に、しきい値配分部963における、内部論理キュー群の構成の仕方、およびしきい値の配分方法の例を示す。
図50は、2×2共通バッファ単位スイッチを4個Delta接続して構成した4×4多段共通バッファスイッチである。図50において、970はスイッチ、971は単位スイッチ、972は内部論理キュー群、973は内部論理キュー群対応しきい値、974は内部論理キュー、975は内部論理キュー対応しきい値、976は内部経路である。
ここでは、内部論理キュー974は単位スイッチ971の出力リンク対応に作られている。また、しきい値配分部963では、内部論理キュー群972を多段共通バッファスイッチの内部経路対応に設ける。図50では、内部論理キューaとf、cとf、dとg、dとhを通る4つの内部経路が存在しているため、内部論理キュー群は(a,f)、(c,f)、(g,d)、(d,h)となる。
いま、内部論理キューa,b,c,d,e,f,g,hに割り当てるしきい値をそれぞれ、Ta ,Tb ,Tc ,Td ,Te ,Tf ,Tg ,Th 、内部論理キュー群(a,f),(c,f),(d,g),(d,h)に割り当てるしきい値をそれぞれT(a,f) ,T(c,f) ,T(d,g) ,T(d,h) 、とする。図50では、T(a,f) =T(c,f) =T(d,g) =T(d,h) =20となっている。また、各内部経路を流れるトラヒックの使用帯域は等しいとする。
内部論理キューfは、内部論理キュー群(a,f)と(c,f)に共通しており、内部論理キューdは、内部論理キュー群(d,g)と(d,h)に共通しているため、各内部論理キューに対するしきい値を割り当てる場合に、内部論理キュー群(a,f)と(c,f)、(b,f)と(d,h)はそれぞれ、同じグループとして扱う必要がある。
このとき、以下の関係式に基づいてしきい値の配分を行なう。
Ta +Tc +2Tf =T(a,f) +T(c,f) =40
Ta :Tc :Tf =1:1:2
2Td +Tg +Th =T(d,g) +T(d,h) =40
Td :Tg :Th =2:1:1
以上より、Tb =Tc =10,Tf =20,Tg =Th =10,Td =20と計算される。なお、これらの関係式の係数およびしきい値の比の値は呼接続状態に基づいて適当な値に変更することが可能である。
図51は、2×2共通バッファ単位スイッチを4個マトリックス接続して構成した4×4多段共通バッファスイッチである。図51において、980はスイッチ、981は単位スイッチ、982は内部論理キュー群、983は内部論理キュー群対応しきい値、984は内部論理キュー、985は内部論理キュー対応しき986は内部経路、987はアービターである。
図51において、アービター987は、異なる単位スイッチからの2本の出力リンクからの到着セルをスケジューリングして1本の出力リンクに多重する。ここでは、内部論理キューは単位スイッチの出力リンク対応に作られている。また、しきい値配分部963では、内部論理キュー群982をアービターの出力リンク対応に設ける。このとき、図51のアービタの左側2個の内部論理キュー群(b,d)、(a,c)となる。
また、各内部論理キュー群に対するしきい値が、T(d,f) =T(c,f) =T(d,g) =T(d,h) =20のように割り当てられているものとする。また、各内部経路を流れるトラヒックの使用帯域は等しいとする。
このとき、以下の関係式に基づいてしきい値の配分を行なう。
Tb +Td =T(b,d) =20
Tb :Tc =1:1
Ta +Tc +T(a,c) =20
Ta :Tc =1:1
以上より、Tb =Td =Ta =Tc =10と計算される。なお、これらの関係式の係数およびしきい値の比の値は呼接続状態やアービターのスケジューリングアルゴリズムに基づいて適当な値に変更することが可能である。
一般に、複数のノードにより構成されるネットワークにおいて、各ノードに対するバッファ量の割当て、すなわち各ノードに対するしきい値配分も、同様に階層的に実現する。
次に、図52に、動的しきい値設定手段と、呼処理手段、観測、シミュレーションや数値解析による性能評価とを組み合わせたスイッチ制御手段を有するATM交換機の構成を示す。
図52において、990はスイッチ、991はスイッチ制御部、992は呼処理部、993は動的しきい値設定部、994はしきい値テーブル、995はテーブル更新部、996は統計情報保持部である。
統計情報保持部996は、スイッチ990から出力される統計情報を保持する。統計情報保持部996が保持する統計情報としては、コネクション毎や内部論理キュー毎のセル廃棄率、呼損率、呼量などがある。
しきい値テーブル994は、図46をテーブル化したもので、呼接続状態としきい値の組を1エントリとして、複数個のエントリがメモリまたはディスクに記憶される。
呼処理部992は、呼設定要求、あるいは呼切断要求のためのシグナリングセルをスイッチから入力すると、シグナリング中に記述されているトラヒックパタメータと、現在の呼接続状態と、呼設定要求か呼切断要求できるかの情報を動的しきい値設定部993に渡す。
動的しきい値設定部993は、トラヒックパラメータと現在の呼接続状態に基づいてしきい値テーブル994を検索し、得られたしきい値に変更可能かどうかを判定し、その結果を処理部992に出力すると同時にしきい値を変更する。判定の際には、各内部論理キューのしきい値の最大値、しきい値の和に関する最大値を用いる。また、スイッチ全体の呼損率を制御するために、あるいは呼の保留時間のばらつきによって、特定の出力ポートの呼によりバッファが長時間占有されてしまい呼損率が増大する現象を防ぐために、統計情報保持部996に保持される呼量や呼損率の統計情報も合わせて用いる場合もある。この場合には、各論理キューiに設定可能なしきい値の最大値Kmi を動的に変更する。Kmi の変更方法として、以下の4方式がある。
第1に、統計情報保持部996に保持される一定期間観測した呼量を用いて、前述したようなLagrangeの方式に基づいて計算したしきい値をKmi とする方式である。これにより、短時間の呼量の変動による呼損率の劣化を防ぐことが可能になる。
第2に、Nを内部論理キュー数として、Kmi =K/Nとした場合の呼損率をP1 、Kmi =Kに設定し、前述したような現在の呼設定に関する情報を用いてしきい値を設定する方法を用いて、呼設定を一定期間行なったときの呼損率をP2 とし、P1 ≦P2 の場合には次の期間においてKmi =K/Nとし、P1 >P2 の場合にはKmi =Kとする方式である。これにより、呼レベルでスイッチを出力バッファとして使用するか(Kmi =K/N)共通バッファとして使用するか(Kmi =K)を呼損率の状況に応じて切り替えることが可能となる。ここで、呼レベルでスイッチを出力バッファ(共通バッファ)として用いている場合には、呼損率P1 (P2 )は統計情報保持部996に保持される値を用い、呼損率P2 (P1 )は動的しきい値設定部993において呼設定をエミュレートすることにより算出する。
第3に、現在の呼損率をPc とし、第2の方式と同様にKmi =K/N、Kmi =Kとしたときの呼損率P1 、P2 を求めておき、Pc <P2 の場合にはKmi =max(K/N,Kmi −Δ- (Kmi ))とし、P1 <Pc の場合にはKmi =min(K,Kmi +Δ+ (Kmi ))とする方式である。ここで、Δ-(Kmi )およびΔ+ (Kmi )は、それぞれ、現在のしきい値の最大値Kmiから定まるしきい値の最大値の減少値および増加値である。これにより、呼レベルで出力バッファと共通バッファの中間的なスイッチの運用が呼損率の状況に応じて可能となる。
第4に、統計情報保持部996に保持される一定期間観測した呼損率が一定値P以上になるとKmi =K/Nに設定し、P未満の場合にはKmi =Kとする方式である。これにより、呼損率が大きい場合には呼レベルで出力バッファとしてスイッチを使用することが可能となる。
なお、第1からか第4の方式において、Kmi の変更は、基本的に、現在内部論理キューiに設定しているしきい値Ki がKmi 以下になってから行なう。また、内部論理キューiに対して、遅延に関する最大値Di が規定される場合には、さらに、Kmi =min(Kmi 、Di )とする。
呼処理部992は、しきい値の変更が可能であるという判定結果が入力された場合に呼設定または呼切断要求の受付を行なう。
テーブル更新部995は、呼処理部992から現在の呼接続状態を、また、統計情報保持部996からセル廃棄率の観測結果をそれぞれ入力し、それに基づいてしきい値テーブルを適当な値に随時更新する。これにより、ネットワーク運用中の性能をしきい値設定に反映させることができる。
また、テーブルー更新部995は、計算機シュミレーション手段、あるいは数値解析手段も合わせ持つ構成もある。これは、ネットワーク運用中に新しい呼種をネットワークに収容する場合統計情報が十分得られない場合に有効である。この場合には、テーブル更新部995はソフトウェアパッケージとして実装される。
さらに、動的しきい値設定部993は、統計情報保持部996から内部論理キュー毎のセル廃棄率を入力し、ある内部論理キューiのセル廃棄率が一定値以上(以下)になるとしきい値Ki を増加(減少)させることもできる。この場合には、更新後のしきい値の情報が統計情報保持部996に出力される。テーブル更新部995は、統計情報保持部996に保持される現在のしきい値の情報をもとにしきい値テーブル994の更新を行なう。これにより、セル廃棄率の観測値に基づいた自律的な動的しきい値設定およびCAC判定基準の変更が可能となる。
本発明は上述した各実施例に限定されるものではなく、その要旨を逸脱しない範囲で、種々変形して実施することができる。
601…入力バッファ、602…単位スイッチ(1段目)、603…単位スイッチ(2段目)、604…出力バッファ、610…セルスイッチ、620…スイッチ網、100,100a,100b,101,101a,101b,102…共通バッファ型ATMスイッチ、10,11,12,13…100,100a,101101a,102の入力ポート、30,31,32,33…100,100a,101,101a,102の出力ポート、および、100b,101bの入力ポート、50,51,52,53…100b,101bの出力ポート、20,2122,23,40,41,42,43,60,61,62,63…セル出力制御信号、80,80a,80b…モード設定信号、800…モード設定部、801…特殊モード詳細設定部、81…特殊モード設定データ、70a,70b,70c,71a,71b,71c,72a,72b,72c,73a,73b,73c…セル、701a,701b,701c,711a,711b,711c…情報部およびルーティングタグを除くヘッダ部、7021a,7021b,7021c,7121a,7121b,7121c…ルーティングタグ、7022a,7022b,7022c,7122a,7122b,7122c…ルーティングタグ、721a,721b,721c,731a,731b,731c…情報部722a,722b,722c,732a,732b,732c…ヘッダ部、200,200a,200b…マイクロプロセッサ、300…多重化回路(MUX、301…セルバッファ、302…分離化回路(DMUX)、303…制御部、3030…入力制御部、3031…アドレス制御部およびアドレス管理部、3032…出力制御部、30311…アドレス制御部、30311a…通常モード用宛先情報レジスタ、30311b,30311e…直進モード用宛先情報レジスタ、または特殊モード用宛先情報レジスタ、30311c…セレクタ、30311d…デコーダー、30311…アドレス制御部、30312…アドレス管理部500a,500b,500c…設定データ用レジスタ、501…デコーダー、5011…管理テーブル、502a,502b…セレクタ、1,6…セルデータ2…ヘッダ部の情報、2a…ヘッダ部の情報内のルーティングタグ、2b…ヘッダ部の情報内のVPI/VCI値、3…MUX制御信号、4…第1の制御信号、5…アドレスおよび制御信号、7…第2の制御信号、8…DMUX制御信号、9…入力ポート番号、400a,400b,400c,400d…FIFO、900…マルチプレクサ、901…デマルチプレクサ、902、903、904…セル出力ポート、905…共有バッファメモリ、906…アドレス管理用キュー、907…バッファ内セル数カウント部、908…しきい値保持部、909…共有バッファメモリ管理部、910…動的しきい値設定部、911…スイッチ、912…セル入力規制部、913、914、915…セル入力ポート、930…プロセッサ、931…メモリ、932…入出力インターフェース、933…バス、940…セル入力規制部、941…フロー制御信号線、950…比較器、951…デコーダ、960…スイッチ、961…単位スイッチ、962…動的しきい値設定部、963…しきい値配分部、970…スイッチ、971…単位スイッチ、972…内部論理キュー群、973…内部論理キュー群対応しきい値、974…内部論理キュー、975…内部論理キュー対応しきい値、976…内部経路、980…スイッチ、981…単位スイッチ、982…内部論理キュー群、983…内部論理キュー群対応しきい値、984…内部論理キュー、985…内部論理キュー対応しき986…内部経路、987…アービター、990…スイッチ、991…スイッチ制御部、992…呼処理部、993…動的しきい値設定部、994…しきい値テーブル、995…テーブル更新部、996…統計情報保持部