(57)【特許請求の範囲】
【請求項１】
通信ラインから各々がパケットを受け取る、ある幅を持ったＩ個の入力ポート部(Ｉは１以上の整数)と、
通信ラインへと各々がパケットを送り出す、ある幅を持ったＯ個の出力ポート部(Ｏは１以上の整数)と、
各入力ポート部及び各出力ポート部に接続されており、出入力ポート部の幅よりも大きな幅を持ち、複数のパケットを運ぶキャリア部であって、複数のパケットのデータは、割り当てられたタイムスロットにて送られるキャリア部と、
複数のパケットが貯蔵されるメモリー部であって、キャリア部に接続されているメモリー部と、
Ｉ個の入力ポート部からキャリア部を経由してメモリー部へとパケットのデータを供給する供給部であって、キャリア部とＩ個の入力ポート部に接続されて、Ｉ個の入力ポート部で受け取ったパケットを貯蔵する入力段の複数の待ち行列群と、キャリア部とＯ個の出力ポート部に接続されて、Ｏ個の出力ポート部から送り出すパケットを貯蔵する出力段の複数の待ち行列群とを含んでいる供給部と、
を有しており、
供給部は、入力段の待ち行列群の複数のパケットのデータが、キャリア部の幅を満たすのに十分な場合にのみ、割り当てられたタイムスロットにて、複数のパケットのデータをメモリー部に送り、キャリア部の幅を満たすのに十分なデータがない場合には、待ち行列群のデータを割り当てられたタイムスロットにてメモリー部に送らない、
スイッチシステム。
【請求項２】
キャリア部の幅の大きさは、どのパケットの幅からも独立である、請求項１に規定されたスイッチシステム。
【請求項３】
入力ポート部は、さまざまな大きさのパケットを受け取る、請求項２に規定されたシステム。
【請求項４】
出力ポート部は、通信ラインへさまざまな大きさのパケットを送り出す、請求項３に規定されたシステム。
【請求項５】
供給部もまた、メモリー部からキャリア部を経由してＯ個の出力ポート部へと、パケットを供給し、各送信サイクルの間に、それらの全体幅がキャリア部の幅に等しい複数のパケットか複数のパケットの部分をメモリー部に送ることができる、請求項４に規定されたシステム。
【請求項６】
供給部は、入力ポート部によって受け取られたパケットを、対応する入力段の待ち行列群に配置する仕分け部を含んでおり、この仕分け部がＩ個の入力ポート部と複数の入力段の待ち行列群に接続されている、請求項５に規定されたシステム。
【請求項７】
供給部は、出力段の待ち行列群にあるパケットを、対応する出力ポート部へと配置する処理部を含んでいて、この処理部がＯ個の出力ポート部と複数の出力段の待ち行列群に接続されている、請求項６に規定されたシステム。
【請求項８】
仕分け部は、パケットを対応する入力段の待ち行列群に書き込むための、書き込み用第１有限状態機を含み、供給部はパケットを入力段の待ち行列群からメモリー部へと書き込むための書き込み用第２有限状態機と、パケットをメモリー部から出力段の待ち行列群へと読み込むための読み込み用第１有限状態機を含み、処理部は、パケットを出力段の待ち行列群からネットワークへと読み込むための読み込み用第２有限状態機を含んでいる、請求項７に規定されたシステム。
【請求項９】
メモリー部は、共有されたメモリーを含んでいる、請求項８に規定されたシステム。
【請求項１０】
パケットまたはパケットの部分が、時分割多重に基づいたキャリア部上を移動する、請求項９に規定されたシステム。
【請求項１１】
キャリア部は、バスを含んでいる、請求項１０に規定されたシステム。
【請求項１２】
入力段の待ち行列群が、データの少なくとも１つのキャッシュラインを含む場合、読み込み用第１有限状態機は、入力段の待ち行列群のパケットのデータをバスへ送る、請求項１１に規定されたシステム。
【請求項１３】
通信ラインは、ATMネットワークである、請求項１２に規定されたシステム。
【請求項１４】
メモリー部は、パケットの境界を知ることなく蓄積されたパケットを有する、請求項１３に規定されたシステム。
【請求項１５】
ある幅を有する時分割多重バスと、
時分割多重バスに接続されており、時分割多重バスの時分割多重によってアクセスされるメモリー部と、
複数のパケットのデータを、該データのパケットの境界を知ることなく、時分割多重バスを通じてメモリー部に読み込み、書き込むための読み書きメカニズムとを具えており、
読み書きメカニズムは、複数のパケットのデータが、時分割多重バスの幅を満たすのに十分な場合にのみ、割り当てられたタイムスロットにて、複数のパケットのデータをメモリー部に送り、時分割多重バスの幅を満たすのに十分なデータがない場合には、複数のパケットのデータを、割り当てられたタイムスロットにて送らないスイッチングシステム。
【請求項１６】
ある幅を持つ時分割多重キャリア部と、
時分割多重キャリア部に接続されており、時分割多重キャリア部の時分割多重によってアクセスされるメモリー部と、
複数のパケットのデータが時分割多重によって時分割多重キャリア部の幅を満たすよう、パケットのデータをメモリー部に供給するための、ある幅を持った入力段部であって、時分割多重キャリア部の幅は入力段部の幅の非整数倍である入力段部と、
複数のパケットのデータを、そのデータが時分割多重キャリア部の幅を満たすように、時分割多重によってメモリー部に供給する供給部と、
を具えており、
入力段部は、複数のパケットのデータが、時分割キャリア部の幅を満たすのに十分な場合にのみ、割り当てられたタイムスロットにて、複数のパケットのデータをメモリー部に送り、時分割キャリア部の幅を満たすのに十分でない場合には、それらバケットのデータを、割り当てられたタイムスロットにて送らないスイッチシステム。
【請求項１７】
パケットを切り換えるための方法であって、
第１のパケットと、少なくとも第２のパケットとをスイッチ部で受け取る工程と、
第１のパケットと第２のパケットのデータが、バスの幅を満たすのに十分な場合にのみ、第１のパケットと第２のパケットを、バスの時分割多重によって、割り当てられたタイムスロットにてメモリー部に送り、バスの幅を満たすのに十分なデータがない場合には、第１のパケットと第２のパケットのデータを、割り当てられたタイムスロットにて送らない工程と、
を具えており、
バスの幅はどのパケットに含まれているデータの関数にもなっていない方法。
【請求項１８】
バスの幅は、パケットの幅の非整数倍である、請求項１７に規定された方法。
【請求項１９】
第１のパケットと少なくとも第２のパケットを入力段の待ち行列群に配置する工程と、入力段の待ち行列群にあるデータを、バスで割り当てられたタイムスロットの間に、データがバス幅を満たすように、メモリー部に送る工程とを含む、請求項１８に規定された方法。
【請求項２０】
データを送る工程の前に、入力段の待ち行列群が少なくともバス幅を満たすのに十分なデータを持っているかどうかを、データがバスに送られる前に決定する工程を含む、請求項１９に規定された方法。
【請求項２１】
データを送る工程の前に、入力段の待ち行列群がデータの少なくとも１つのキャッシュラインを持っているかどうかを決定する工程を含む、請求項２０に規定された方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は時分割多重スイッチ(TDM)に関するものである。さらに詳しくいうと、本発明はメモリーのバス幅が、どんなパケットの幅からも独立している、スイッチの時分割多重に関するものである。
【０００２】
【発明の背景】
時分割多重方式はスイッチシステムを実行するために使われる１つの技術である。図1に示されているように、それぞれがRの割合でパケットを受け取るN個の入力ポートと、それぞれがRの割合でパケットを送り出すN個の出力ポートを持ったスイッチ構造を考えてみよう。１つの共有されているTDMスイッチシステムのためには、２×N×Rの総バンド幅を持つ１つのメモリーバスが必要とされている。到着するパケットは集められメモリーに書き込まれる。一旦メモリーに書き込まれた後、そのパケットはメモリーから読み出され、出力ポート上で送られる。
【０００３】
このシステムは、共有されているメモリーが入力ポートと出力ポートすべてにサービスするのに十分なバンド幅を持っておれば、正しく障害なく作動する。メモリーのバンド幅は、メモリーバスのスピードと、メモリーバスの幅を増大させると、増すことができる。現在のメモリーバスのスピードは、マイクロプロセッサー同期キャッシュメモリーを使って、技術的にだいたい３００MHzに制限されている。さらにメモリーのバンド幅を増すためには、メモリーバスがもっと拡げられなければならない。
【０００４】
図２に示されているように、４つの入力ポートと４つの出力ポートを持つTDMスイッチシステムの例を考えてみよう。入力ポートと出力ポートは、１ビット幅のデータ経路で構成され、単一の固定されたクロックの速度で作動する。これはすべてのポートとメモリーバスについて同じである。すべてのパケットが８ビットの長さであると仮定しよう。その構造物は８ビット幅のTDMメモリーバスを使って実行されることができる。８クロック周期以上の期間に、各入力ポートは１クロック周期が割り与えられ、１つのパケット(８ビット)をメモリーに書き込み、各出力ポートは１クロック周期が割り与えられ、メモリーから１つのパケットを読み込む。
【０００５】
TDMスイッチシステムを実用化するには、設計を複雑にするいくつかの課題がある。スイッチシステムのアプリケーションに応じて、パケットは通常はサイズが変えられる。パケットのサイズを変えることは、メモリーバス上でのパケットの断片(fragmentation)のためTDMシステムの性能を下げる。もし１つのパケットがメモリー周期の整数倍を使用しないならば、メモリーバンド幅は、メモリー幅より小さなデータを読み込み、または書き込むメモリー周期で無駄になる。典型的には、TDMシステムは断片に伴う非効率性を補うために２×N×Rより大きいメモリーバンド幅で実行されている。
【０００６】
断片の課題は、メモリー幅が最小サイズのデータパケットに近づき、あるいは超えるにしたがって重大となる。メモリーバスの幅がパケットの最小長さの2倍に等しいシステムを考えてみよう。受け取ったパケットの長さがすべてパケットの最小長さと等しい間は、メモリーに書き込まれたすべてのパケットがメモリーバスのデータビットを半分しか使っていないので、メモリーシステムのバンド幅は５０％に減らされる(または５０％の効率になる)。
【０００７】
メモリーバス上のパケットの断片のために、典型的なTDMスイッチシステムは、最小長さのパケットとせいぜい同じ幅のバス幅を使っている。
TDMスイッチシステムの共有メモリーの全バンド幅は、メモリーバスのバンド幅によって制約されている。メモリーバスのバンド幅は、それの速さ(クロック率)とそれの幅(ビット数)によって決まる。記憶速度が、使用可能な記憶要素の技術によって固定されているとするならば、TDMスイッチの全バンド幅は最小パケットサイズによって制約されていることになる。
【０００８】
【発明の要旨】
本発明は、スイッチシステムに関するものである。システムには、ある幅を持つ通信ラインからパケットを受け取るI個の入力ポート部がある(Iは１以上の整数である)。システムには、ある幅を持つ通信ラインへパケットを送るO個の出力ポート部がある(Oは１以上の整数である)。システムにはキャリア部があり、その上をパケットが移動する。キャリア部は入力、出力通信ラインの幅よりも広い幅を持つ。キャリア部は各入力ポート部と各出力ポート部に接続されている。システムには、パケットが貯蔵されるメモリー部がある。システムには、入力ポート部からキャリア部を経由してパケットをメモリー部に供給するメカニズムがある。該供給部は、各送信サイクル中にて、それらの全体幅がキャリア部の幅に等しいパケットまたはパケットの部分をメモリー部に送ることができる。
【０００９】
本発明はパケットのスイッチシステムに関するものである。システムには、ある幅と全バンド幅を持ち、それぞれのパケットの送受信をするための入力ポート部と、出力ポート部を持った中央資源がある。中央資源は入力、出力ポート部に割り当てられるタイムスロットによって分割される。中央資源の幅の大きさは、どんなパケットの幅の大きさからも独立であり、全バンド幅は際限なく大きくなりうる。システムにはパケットを貯蔵するメモリー部があり、メモリー部は中央資源に接続されている。
【００１０】
本発明はスイッチシステムに関するものである。システムには時分割多重バスがある。システムには、バスの時分割多重によってアクセスされたバスに接続されたメモリー部がある。システムにはデータのパケットの境界を知ることなく、パケットのデータをバスを通じてメモリー部に読み込み、書き込むためのメカニズムがある。
【００１１】
本発明はスイッチシステムに関するものである。システムにはある幅を持つ時分割多重キャリア部がある。システムにはそのキャリア部に接続されたメモリー部がある。システムにはパケットのデータが、時分割多重によって、パケットのデータがバスの幅を満たすようパケットのデータをメモリー部に供給するための、ある幅を持つ入力部がある。バス幅はパケットの幅の非整数倍である。システムにはパケットのデータをメモリー部から供給するための、ある幅を持つ出力部がある。
【００１２】
本発明は、各々がある幅を持っている入力部から出力部へとパケットを切り換えるための方法に関するものである。その方法は、第１のパケットと少なくとも第２のパケットをスイッチ部で受け取る工程を含んでいる。その方法は、ある幅を持つバスの分割多重を経て、第１のパケットと第２のパケットのデータをメモリー部へ送り、それによってパケットからのデータは、バスの幅の所定箇所を満たす工程を含んでいる。バスの幅は入力、出力部の幅と同じでない。
【００１３】
【発明の実施の形態】
図面に於いて、いくつかの図、より詳しく言うと、図３、４を通じ、そこでは同じ参照番号は、同種のまたは同じ部分を示している。スイッチシステム(10)が示されている。システム(10)には通信ライン(16)からパケットを受け取るI個のある幅を持つ入力ポート部(12)がある(Iは１以上の整数である)。１つの入力ポート部(12)は１つの入力ポートを含んでいるのが望ましい。システムには通信ライン(16)へパケットを送るO個のある幅を持つ出力ポート部(14)がある。１つの出力ポート部(14)は１つの出力ポートを含んでいるのが望ましい(Oは１以上の整数である)。システムにはキャリア部(20)があり、その上をパケットが移動する。キャリア部(20)は入力、出力部の幅より広い幅を持つ。キャリア部(20)は各入力ポート部と各出力ポート部に接続されている。システム(10)にはパケットが貯蔵されるメモリー部(22)がある。システムには入力ポート部(12)からキャリア部(20)を経由してパケットをメモリー部(22)に供給するメカニズムがある。該供給部(20)は各送信サイクルの間に、それらの全体幅がキャリア部(20)の幅に等しいパケット又はパケットの部分をメモリー部(22)に送ることができる。
【００１４】
キャリア部(20)の幅の大きさはどの入力、出力部の幅からも独立であることが望ましい。入力ポート機構は、さまざまなサイズのパケットを受け取るのが望ましい。出力ポート部は、さまざまサイズのパケットを通信ライン(16)へと送り出すのが望ましい。通信ライン(16)はＡＴＭネットワークでもよい。
【００１５】
供給部(20)もまた、メモリー部(22)からキャリア部(20)を経由して出力ポート部(14)へと、パケットを供給するのが望ましい。供給部(20)は各送信サイクルの間に、それらの全体幅がキャリア部(20)の幅に等しいパケット又はパケットの部分をメモリー部(22)から送ることができる。
【００１６】
供給部(20)には、待ち行列群(24)(queue group)の入力段があり、これはキャリア部(20)と入力ポート部(12)に接続されていて、入力ポート部によって受け取られたパケットを貯蔵する。また、待ち行列群(26)の出力段があり、これは供給部(20)と、出力ポート部(14)に接続されていて、出力ポート部から送り出すべきパケットを貯蔵する。そして各待ち行列群は１つのパケットに対応している。
供給部(20)は入力ポート部によって受け取られたパケットを、対応する待ち行列群の入力段に配置する仕分け部(28)を含んでいて、この仕分け部(28)は入力ポート部(12)と待ち行列群(24)の入力段に接続されているのが望ましい。供給部(20)は待ち行列群の出力段にあるパケットを、対応する出力ポート部(14)へと配置する処理部(30)を含んでいて、この処理部(30)は出力ポート部(14)と待ち行列群(26)の出力段に接続されているのが望ましい。
【００１７】
仕分け部(28)は、パケットを対応する入力待ち行列に書き込むための、書き込み用第１有限状態機(32)(write finite state machine)を含み、供給部(20)は、パケットを待ち行列群の入力段からメモリー部(22)へと書き込むための書き込み用第２有限状態機(34)とパケットをメモリー部(22)から待ち行列群の出力段へと読み込むための読み込み用第１有限状態機(36)を含み、処理部(30)は、待ち行列群の出力段からネットワークへと読み込むための読み込み用第２有限状態機(38)を含んでいるのが望ましい。
【００１８】
メモリー部(22)は共有されたメモリー(40)を含んでいるのが望ましい。パケットまたはパケットの一部が、時分割多重に基づいてキャリア部(20)を動くのが望ましい。キャリア部(20)はバス(42)を含むのが望ましい。待ち行列群の入力段がデータの少なくとも１つのキャッシュラインを含むときには、読み込み用第１有限状態機(36)は待ち行列群の入力段のパケットのデータをバス(42)へと移送するだけなのが望ましい。
【００１９】
本発明はパケットのスイッチシステム(10)に関するものである。システムには、ある幅と、ある全バンド幅を持ち、パケットを受け取るための入力ポート部(12)と、パケットを送り出すための出力ポート部(14)を持った、中央資源(44)がある。中央資源(44)は入力、出力ポート部(14)に割り当てられるタイムスロットによって分割される。中央資源(44)の幅の大きさはどんなパケットの幅の大きさからも独立であり、全バンド幅は際限なく大きくなりうる。システム(10)にはパケットを貯蔵するメモリー部(22)があり、メモリー部(22)は中央資源(44)に接続されている。
【００２０】
中央資源(44)はメモリーバス(42)を含むのが望ましい。中央資源(44)はパケットが分類される先の待ち行列の一群を含み、パケットは待ち行列の一群から読み出されメモリー部(22)へと書き込まれるのが望ましい。
本発明はスイッチシステム(10)に関するものである。システム(10)には時分割多重バス(42)がある。システム(10)にはバス(42)の時分割多重によってアクセスされたバス(42)に接続されたメモリー部(22)がある。システムにはデータのパケットの境界を知らなくして、パケットのデータをバス(42)を通じてメモリー部(22)に読み込み、書き込むためのメカニズムがある。
【００２１】
本発明はスイッチシステム(10)に関するものである。システムにはある幅を持つ時分割多重キャリア部(20)がある。システムにはそのキャリア部(20)に接続されたメモリー部(22)がある。システムにはパケットのデータが時分割多重によってバス(42)の幅を満たすよう、パケットのデータを入力ポート部からメモリー部(22)に供給するためのメカニズムがある。バス(42)幅は入力、出力ポート部の幅の非整数倍である。
【００２２】
本発明は入力部から出力部へとパケットを切り換えるための方法に関するものである。その方法は第１のパケットと少なくとも第２のパケットをある幅を持つスイッチ部で受け取る工程を含んでいる。その方法は、第１パケットと第２パケットのデータを、ある幅を持つバス(42)の時分割多重によって、メモリー部(22)へ送り、パケットからのデータは、バス(42)の幅の所定部分を満たす工程を含んでいる。バス(42)幅は入力、出力ポート部の幅と同じではない。
【００２３】
バス(42)幅は入力ポート部の幅の正の数の倍が望ましく、非整数倍でもよい。送信の工程は、最初のパケットと少なくとも２番目のパケットを待ち行列群の入力段に配置する工程と、待ち行列群の入力段にあるデータを、バス(42)で割り当てられたタイムスロットの間に、データがバス幅(42)の所定の割合を満たすように、メモリー部(22)に送る工程を含むのが望ましい。
【００２４】
データ送信工程の前に、入力待ち行列の一群が少なくともバス幅(42)の所定の割合を満たすに十分なデータを持っているかどうかを、データがバス(42)に送られる前に判定する工程があるのが望ましい。データ送り工程の前に、待ち行列群の入力段が少なくとも１つのキャッシュラインを持っているかどうかを判定する工程があるのが望ましい。
【００２５】
この発明のオペレーション、つまりシステム(10)では、典型的なTDMスイッチシステムのメモリー幅制限は、パケットを待ち行列群(24)の入力段に仕分けして、それから待ち行列群(24)の入力段からデータを読み込みメモリーへ書き込むことにより取り除かれている。メモリー幅は最小限のパケットの大きさから独立であり、TDMスイッチシステムの全バンド幅は際限なく大きくすることが出来る。
【００２６】
スイッチシステム(10)の入力ポートに到着したパケットは待ち行列の一群(24)のある決まった番号に分類される。１つの待ち行列は３段階で各群に実装される。
１．入力段階：  待ち行列の後尾は書き込み用第１有限状態機(W-FSM)によりスイッチ構造に実装される。
２．メモリー段階：  待ち行列の中央は共有されたメモリーで実装される。
３．出力段階：  待ち行列の先頭は読み込み用第１有限状態機(W-FSM)によりスイッチ構造に実装される。
【００２７】
共有されたメモリーへの読み込み・書き込みは待ち行列群の中のデータ上で実行され、待ち行列でのパケットの境界が意識されることはない。共有されたメモリーへのアクセスは、共有されたメモリーバスの時分割多重によって読み込み用・書き込み用FSMに割り当てられる。
【００２８】
W-FSMは以下のように実装される：
W-FSMが待ち行列に格納する過程：
パケットは入力ポートから到着した後、分類されW-FSM上の待ち行列  群の後尾に追加される。
W-FSMが待ち行列に排出する過程：
(TDMバスにタイムスロットが割り当てられたとき)
(W-FSMが少なくとも1つのデータキャッシュラインを含むのであれば)
キャッシュラインをW-FSMの先頭で、共有されたメモリ待ち行列の後尾に書き込む。
R-FSMは以下のように実装される：
R-FSMが待ち行列にデータを格納する過程
(TDMバスに割り当てられたタイムスロットにおいて)
もし(R-FSMがデータを含まない場合)
もし(共有されたメモリーがこの待ち行列群のためのデータを含んでいる場合)
共有されたメモリー待ち行列の先頭において、キャッシュラインを読込、R-FSM待ち行列の後尾にキューする。
そうでないならば(共有されたメモリーが、この待ち行列群のためのデータを含んでいないなら、)
W-FSM待ち行列の先頭から(キャッシュラインまでの)R-FSM  待ち行列の後尾までの任意のデータを読み込む。
R-FSMが待ち行列にデータを排出する過程
パケットはR-FSM待ち行列の出力段の先頭から取り出されて、処理さ  れ、出力ポートへと転送される。
【００２９】
更に特定すると、１つのセルまたは１つのパケットは、スイッチ(45)の１つの入力ポートに到着する。W-FSM(32)は待ち行列群(24)へとパケットを分類する。他のパケットがスイッチ(45)の入力ポートに到着すると、それらもまたW-FSM(32)によりそれらの対応する待ち行列群(24)へと分類される。待ち行列群に一旦分類されると、それら(パケット)は対応する入力段の待ち行列群の後尾に付け加えられる。スイッチ(45)の入力ポートに到着したセルの分類と格納はその後も続いていくが、ある決まった入力段の待ち行列群(24)については、１つのパケットが分類されると、そのパケットが対応する入力段の待ち行列群の後尾に付け加えられる。
【００３０】
入力段の待ち行列群(24)に対応する書き込み用第２有限状態機(34)は、入力段の待ち行列群(24)内のパケットの個数を記録している。入力段の待ち行列群(24)上のデータに十分なパケットが入力段の待ち行列群(24)にあるときは、書き込み用第２有限状態機(34)は、入力段の待ち行列群(24)にバス上で割り与えられたタイムスロットの到着を待っている。割り当てられたタイムスロットが到着しても、キャッシュラインを満たすのに十分なデータが入力段の待ち行列群(24)にないために、以前は入力段の待ち行列群(24)からデータを解放しなかったものの、いまやキャッシュラインを満たすのに十分なデータがあるので、書き込み用第２有限状態機(34)は、入力段の待ち行列群(24)から、入力段の待ち行列群(24)に割り当てられたタイムスロットの間にキャッシュラインを満たすのに十分なデータを送る。割り当てられたタイムスロットとは、入力段の待ち行列群(24)からバスへとデータキャッシュラインが送られるのを許容するに十分な期間である。入力段の待ち行列群(24)からのデータキャッシュラインがバス上で送られると、入力段の待ち行列群(24)に残るデータは入力段の待ち行列群(24)の先頭まで移動される。更に入力段の待ち行列群(24)の先頭に移動されたデータは次のパケットや入力段の待ち行列群(24)に入ろうとするデータのための余地をうみだす。データが入力段の待ち行列群(24)からバスに送られているまさにその時、セルが入力段の待ち行列群(24)の後尾に配置されることもありうる。
【００３１】
キャッシュラインのサイズによっては、バスに送られたデータは、入力段の待ち行列群(24)内のパケットが持つデータの整数倍以外の場合がある。例えばキャッシュラインは、キャッシュラインのデータがメモリー(40)へとバス上で送られた後に、入力段の待ち行列群(24)にパケットの一部が残るような幅となる場合である。書き込み用第２有限状態機(34)は、セルやパケットの境界を意識することなく、セルやパケットの一体性に対する結果が何であれ、データでキャッシュラインを満たすことのみが問題となる。よって、セルやパケットは割り与えられたタイムスロット内でデータがキャッシュラインを満たすという制約条件に適応すべく分割される。
【００３２】
バスから共有されたメモリー(40)にデータキャッシュラインが到着した時、コントローラ(47)はデータキャッシュラインを共有されたメモリー(40)に貯蔵し、入力段の待ち行列群(24)からのキャッシュラインおよびキャッシュラインの接続元である入力段の待ち行列群(24)の順番にならって、共有されたメモリー(40)での番地を記録する。その後、異なる入力段の待ち行列群(24)から送られるデータキャッシュラインが、コントローラ(47)により、共有されたメモリー(40)に貯蔵される。そして入力段の待ち行列群(24)から送られた次のキャッシュラインも同様に共有されたメモリー(40)に貯蔵される。コントローラ(47)は、待ち行列群(24)入力段からのキャッシュラインが格納される番地のトラックを保持しておく。仮に入力段待ち行列群(24)からの最初のキャッシュラインがセルの最初の部分を有し、入力段待ち行列群(24)からの２番目のキャッシュラインがセルの２番目の部分を持っていたとしても、入力段待ち行列群(24)からの次のキャッシュラインは必ずしも同一番地に格納されたり、又は互いに隣り合った２つの番地に格納されることは必要でない。
【００３３】
パケットが出力ポートから送り出される時は、ある出力段の待ち行列群(26)に対応する読み込み用第１有限状態機(36)は、その出力段の待ち行列群(26)にバス上で割り当てられたタイムスロットを待っている。読み込み用第１有限状態機(36)は出力段の待ち行列群(26)に読み込まれる共有されたメモリー(40)内のデータをとどめる。読み込み用第１有限状態機(36)はコントローラ(47)と書き込み用第１有限状態機(32)に接続されているため、どのデータが対応する出力段の待ち行列群(26)に送られるかが分かる。出力段の待ち行列群(26)に次の割り当てられたタイムスロットが到着すると、出力段の待ち行列群(26)のための共有されたメモリー(40)にあるキャッシュラインは読み込み用第１有限状態機(36)によって出力段の待ち行列群(26)に読み込まれる。読み込み用第１有限状態機(36)はコントローラ(47)と接続されることによって、どの場所からキャッシュラインを読み込むべきかが分かる。キャッシュラインは順番に読み込まれ出力段の待ち行列群(26)に配置されるので、共有されたメモリー(40)への書き込み段階で出力段の待ち行列群(26)が再結合されると、分割された全てのセルもまた再結合される。出力段の待ち行列群(26)のために割り与えられたタイムスロットが到着した時に、何のデータもない時は読み込み用第１有限状態機は入力段の待ち行列群(24)から直接キャッシュラインへとデータを読み込み、そのデータは最終的に出力段の待ち行列群(26)へと伝達されることとなる。
【００３４】
読み込み用第２有限状態機(38)は出力段の待ち行列群のパケットの情報をとどめている。パケットの中で所定量が出力段の待ち行列群(26)で形成された時のみ読み込み用第２有限状態機(38)は出力段の待ち行列群(26)から所定量までパケットを読み込み、ネットワークにパケットを送り出す。
【００３５】
メモリーへの読み込み・書き込みは全てデータの全てのキャッシュラインを含むため、メモリーバス(42)の効率は１００％である。小さなパケットはメモリーバス(42)上でデータの断片化を起こさない。さらにメモリーバスの幅は際限なく増大することができ、パケットの大きさに制限されない。
【００３６】
待ち行列群のモデルは、任意の待ち行列構造を実装するために用いることができる。出力待ち行列を実装するには、１個の待ち行列群が各出力ポートに割り与えられる。待ち行列群は入力段の待ち行列群、共有されたメモリーに蓄えられたあるキャッシュライン、出力段の待ち行列群で構成される。パケットの仕分け部は入力の際にパケットをそれぞれ検査し、パケットを適切な出力段の待ち行列に分類する。パケットは、その出力段の待ち行列群に対応する入力段の待ち行列群に関連付けられる。出力段の待ち行列群(28)は、W-FSM、R-FSMを用いてメモリーから、またメモリーへとキューされる。R-FSMの後、パケットは直ちに出力ポートへキューされる。
【００３７】
１つの待ち行列群(24)を入力ポート毎に関連づけることにより、簡単なパケット仕分け部を使って入力待ち行列が実装される。優先順位に基づいた仕組みは以下のように実装される。１つの待ち行列群が、いくつかの優先順位レベルの夫々に対して定義される。入力の際、１つのパケットは、優先した待ち行列群の１つへ仕分けられる。待ち行列群はW-FSMやR-FSMを用いてメモリーにキューされる。R-FSMの後、パケットはそれぞれの出力ポートを決定するために処理され、システムから送り出される。
【００３８】
【例】
４つの入力ポート、４つの出力ポートのパケットスイッチがシステム(10)を使って実装される。システムは全体的に同期していて20MHzクロック周期で動作する。４つの入力は８ビット幅で動作し、４つの160Mbpsインターフェースを実装する。パケットは図５に示されているようにパケット始端(SOP)とパケット終端(EOP)をあらわす符号語によって区切られている。
【００３９】
この例は出力待ち行列スイッチを仮定している。スイッチシステム(10)の入力ポートに到着したパケットは、各出力ポートに対して１つが対応し、４つの待ち行列群に分類される。図４を参照すると、出力待ち行列は各群３つのサブシステムに実装される：
１．後尾はスイッチ構造内で書き込み用第１有限状態機(W-FSM)により実装される。
２．中間は共有されたメモリーに実装される。
３．先頭は読み込み用第１有限状態機(R-FSM)によりスイッチ構造中へ実装される。
【００４０】
共有されたメモリーへの読み込み・書き込みは待ち行列群のデータ上で実装され、待ち行列内のデータのパケット境界を意識することなく実行される。共有されたメモリーへのアクセスは共有されたメモリーバスの時分割多重によって、読み込み用・書き込み用第１有限状態機に割り当てられる。共有されたメモリーバス幅はキャッシュラインと呼ばれている。
【００４１】
本発明の入力段・出力段にある待ち行列群の先頭と後尾はシフトレジスタ(51)の中で直接実装される。シフトレジスタ(51)はやってくるデータのインターフェースと同じ幅でメモリーキャッシュラインと同じ長さである。４つのポートのスイッチのためのデータパスは図６に示されている。
【００４２】
キャッシュラインは６４ビット長で、８バイトそのものである。各ポートからのデータは８ビット幅キャッシュラインのシフトレジスタへと８レジスタの深さでシフトされる。示されていないのは、同じく８レジスターの深さで８ビットのシフトレジスターの前の、同期シフトレジスターである。メモリーバスは図７に示されているようにTDM(時分割多重)方式で、それぞれが各入力・出力ポート用に８つのタイムスロットに分割される。一例としてのスイッチが出力待ち行列を実装しているため、出力待ち行列は常に同じ割合で排出され、従って常にバス上の同じタイムスロットを使うこととなる。到着するパケットはどの出力ポートにも向けられるため、入力段の待ち行列はいかなる割合でも満たすことができる。入力段の待ち行列は必要なだけ入力バスのタイムスロットを割り当てられる。総入力率は４つのタイムスロットを超えないので、入力段が４つの入力段タイムスロットを任意に調節させるのに十分である。
【００４３】
同期レジスタはどのデータも失われないことを補償するために使用される。典型的にはデータは同期レジスタには貯蔵されない。到着する全てのパケットはキャッシュレジスタに直接書き込まれる。もしキャッシュレジスタがTDMバス上のそのタイムスロットの前に満たされた場合、同期レジスタはデータを貯蔵し始め、一旦キャッシュラインレジスタが空になると同期レジスタからのデータはキャッシュラインレジスタに押し込まれる。もしキャッシュラインレジスタがまだ一杯なら、すぐに次の入力バスサイクルを調節する。満たされたキャッシュラインレジスタのみがバスサイクルを調節する。
【００４４】
図８に示されているように、(この発明の入力、出力段)の先頭と後尾は、ハードウェアのFIFO待ち行列に直接実装される。待ち行列群の中間部分はメモリーに実装され、キャッシュラインに貯蔵されている。この例では１クロック周期のみでキャッシュライン全体を読み込み、書き込める２５６層メモリーが使われている。Zero turn around memories (ZBT)が仮定され、書き込みが直接読み込みに続くようになっている。
【００４５】
図９に示されているように５つのFIFO待ち行列(57)がメモリーの待ち行列群の中間部分を実装するのに必要とされる。待ち行列の４つはメモリーに含まれるキャッシュラインの番地を含み、５つ目の待ち行列はフリーリストと呼ばれ、空のキャッシュラインの番地を含んでいる。フリーリストのリセット操作により、FIFOは初期化されメモリーに含まれるキャッシュラインの全ての番地を含むようになり、チャンネル番地FIFOは空になる。
データパスは８つの状態のうち１つで動作する：
Ain, Bin, Cin, Din, Aout, Bout, Cout, Dout
【００４６】
この状態は上記メモリーの枠組みにより示されるタイムスロットにより決定される。この例では４つの出力待ち行列群は個々の特定した状態を使っている。入力段は入力状態のうちどれでも使うことを要求する。調整機構はどの入力段が適切な入力タイムスロットを使うのかを明らかにする。全ての入力(出力)状態は同様に動作する。入力段Aがうまく入力状態を調整している入力状態Ainを考えてみる。TDMの枠組みの最初のクロック周期ではAinは以下のように動作する：
(TDMバスに割り当てられたタイムスロットで)
もし(キャッシュラインレジスタが一杯ならば)
―  メモリーバスを駆動するためにフリーリストの先      頭で番地を使う。
―  チャンネルAキャッシュラインのレジスタに含        まれているデータをメモリーに書き込む。
―  フリーリストのメモリー番地を押し出す。
―  フリーリストのメモリー番地をチャンネルA番        地FIFOの後尾に押し込む。
【００４７】
もしフリーリストのメモリー番地でFIFOが空ならチャンネルAキャッシュラインレジスタに位置するデータは落とされる。チャンネルAで落とされたパケットを特定するためには注意が必要である。他の入力チャンネルはそれら自身の特定されたメモリータイムスロットで同様に動作する。TDMの枠組みでの出力状態Aoutを考えてみる。５つ目のクロック周期ではAoutは次のように動作する：
(TDMバスに割り当てられたタイムスロットで)
もし(R-FSMがデータを何も持っていない場合)
もし(共有されたメモリーがこの待ち行列群のためのデータを含んでいるなら)
キャッシュラインを共有されたメモリーの待ち行列の先  頭でR-FSM待ち行列の後尾に読み込む。
そうでないならば(共有されたメモリーがこの待ち行列群のためのデータを含んでいない場合)
W-FSM待ち行列の先頭から(キャッシュラインに至るまで  の)全てのデータをR-FSMの後尾に読み込む。
【００４８】
R-FSM待ち行列の排出過程については、パケットはR-FSM待ち行列の先頭から押し出されて伝達され、出力ポートに送られる。メモリーへの読み込み・書き込みは全てデータの全てのキャッシュラインを含むため、メモリーバス(42)の効率は１００％である。小さなパケットはメモリーバス(42)上でデータの断片化を起こさない。さらにメモリーバスの幅は際限なく増大することができ、パケットの大きさに制限されない。
【００４９】
この発明は図示のために前述の具体化方法において詳述されてきたものだが、この詳しい部分は、この目的(図示)のためだけのものであり、技術分野の者なら以下の特許請求の範囲で述べられるものは別にして、この発明の真意と範囲から逸脱することなく、変更を加え得ると理解されるべきである。
【図面の簡単な説明】
添付の図では、この発明の望ましい具体例と、この発明を実行する望ましい方法が示されている。
【図１】従来技術の時分割多重スイッチの概略図である。
【図２】４つの入力、４つの出力を持った従来技術の時分割多重スイッチの概略図である。
【図３】本発明のスイッチシステムの概略図である。
【図４】本発明のスイッチシステムの概略図である。
【図５】記号語の概略図である。
【図６】  4つのポートパスのデータ経路の概略図である。
【図７】  TDM方式で分割されたメモリーバスの概略図である。
【図８】メモリーの概略図である。
【図９】５つのFIFO待ち行列の概略図である。
【符号の説明】
(10)  スイッチシステム
(12)  入力ポート部
(16)  通信ライン
(20)  キャリア部
(22)  メモリー部
(24)  入力段待ち行列群
(26)  出力段待ち行列群
(28)  仕分け部
(30)  処理部
(32)  書込み用第１有限状態機
(34)  書込み用第２有限状態機
(36)  読込み用第１有限状態機
(38)  読込み用第２有限状態機
(40)  メモリー
(42)  バス
(44)  中央資源
【図１】
0004480845.tif 000002
【図２】
0004480845.tif 000003
【図３】
0004480845.tif 000004
【図４】
0004480845.tif 000005
【図５】
0004480845.tif 000006
【図６】
0004480845.tif 000007
【図７】
0004480845.tif 000008
【図８】
0004480845.tif 000009
【図９】
0004480845.tif 000010