JP3573095B2 - Packet switch circuit - Google Patents
Packet switch circuit Download PDFInfo
- Publication number
- JP3573095B2 JP3573095B2 JP2001061044A JP2001061044A JP3573095B2 JP 3573095 B2 JP3573095 B2 JP 3573095B2 JP 2001061044 A JP2001061044 A JP 2001061044A JP 2001061044 A JP2001061044 A JP 2001061044A JP 3573095 B2 JP3573095 B2 JP 3573095B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- output
- input
- packets
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 169
- 238000012546 transfer Methods 0.000 claims description 52
- 238000013500 data storage Methods 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 23
- 230000008707 rearrangement Effects 0.000 claims description 6
- 239000000872 buffer Substances 0.000 description 105
- 230000006835 compression Effects 0.000 description 32
- 238000007906 compression Methods 0.000 description 32
- 238000012545 processing Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000010521 absorption reaction Methods 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明はパケット通信網に使用されるパケットスイッチ回路に係わり、特に可変長パケットのスイッチングを行うパケットスイッチ回路に関する。
【0002】
【従来の技術】
近年、パケット通信網は、マルチメディア・サービスの普及等の要因によりデータ通信量が急増している。特にデータ通信量が大きな基幹回線網等に接続されるルータでは、多数のパケットのスイッチングを行うことになり、取り扱うデータ量が大きくなる。これに伴い、パケットスイッチ回路のスイッチ容量、すなわち単位時間当たりの処理できるデータ量の大容量化が要求されている。ところが、パケットスイッチ回路に入力されるパケットが可変長パケットの場合、固定長パケットに比べてスイッチングの処理が複雑になり、スイッチ容量の大容量化を困難にしている。このため、従来から可変長パケットのスイッチングについてさまざまな工夫が行われている。
【0003】
図11は、従来提案された可変長パケットのスイッチングを実現するパケットスイッチ回路の構成を表わしたものである。特開平5−227211号公報で開示されたこのパケットスイッチ回路11は、図示しない入力ポートと出力ポートの間にパスを設定してパケットを転送するスイッチ部12と、この設定を制御するためのスイッチ制御部13を備えている。スイッチ部12の入力側には、第1の入力回線141から入力されるパケットを収容する第1の収容部151と、収容されたパケットを蓄積する第1のバッファ161と、蓄積されたパケットを分解する第1の分解部171がこの順に配置されている。ここで第1の分解部171は入力されるパケットを固定長の小パケットに分解するようになっている。第1の分解部171の出力側はスイッチ部12の第1の入力ポートに接続されている。第2〜第Nの入力回線142〜14Nに入力したパケットも同様に第2〜第Nの収容部152〜15N、第2〜第Nのバッファ162〜16N、および第2〜第Nの分解部172〜17Nを経て、それぞれ対応する入力ポートに入力されるようになっている。
【0004】
スイッチ部12の出力側には、第1の出力ポートから出力される小パケットから元のパケットを組み立てる第1の組立部181と、組み立てられたパケットを蓄積する第1のバッファ191と、蓄積されたパケットを収容する第1の収容部201がこの順に配置されている。第1の収容部201はパケットを出力する第1の出力回線211に接続されている。第2〜第Nの出力ポートから出力されたパケットも同様に第2〜第Nの組立部182〜18N、第2〜第Nのバッファ192〜19N、および第2〜第Nの収容部202〜20Nを経て、第2〜第Nの出力回線212〜21Nから出力されるようになっている。
【0005】
このスイッチ部12では、固定長の小パケットをスイッチングしている。このとき、スイッチ制御部13は分解された分の小パケットをすべてスイッチングするまで入力ポートと出力ポートの間にパスを設定し、第1〜第Nの組立部181〜18Nでの元のパケットの組み立てを容易にしている。
【0006】
ところが、入力ポートと出力ポートの間にパスを設定する場合、スイッチングの遅延の問題が発生することがある。たとえば複数の入力ポートに同一の出力ポートを宛先とするパケットが同時に入力された状況のとき、1つの入力ポートがパケットのスイッチングを終了するまでの間、他の入力ポートは同一宛先のパケットのスイッチングを開始することができない。入力されたパケットから順にスイッチングを開始するので、次々に入力されるパケットもスイッチングを待たされることになる。したがって、同一の出力ポートを宛先とするパケットが集中するとき、あるいは分解された小パケット数が多いときには、スイッチングを待たされるパケットが多く発生することがある。また、この待たされているパケットのスイッチングを後回しにして他のパケットのスイッチングを開始する追加機能を付加すると、スイッチ部12の処理や回路の構成が複雑になるという問題が生じる。
【0007】
そこで、スイッチングの遅延の問題を解消するパケットスイッチ回路が従来から提案されている。これらの提案の1つとしてのパケットスイッチ回路では、一般的なアクセスメモリ制御、すなわちデータの書き込みおよび読み出しを周期的に行うことを利用して周期的なスイッチングを行っている。
【0008】
図12は、従来提案されたこのようなアクセスメモリ制御を用いたパケットスイッチ回路の構成を表わしたものである。特開平6−53996号公報で開示されたこのパケットスイッチ回路31は、パケットを入力する第1〜第14の入力回線321〜3214にそれぞれ対応する第1〜第14の入力部分331〜3314と、パケットを出力する第1〜第14の出力回線341〜3414にそれぞれ対応する第1〜第14の出力部分351〜3514を備えている。第1の入力部分331は、入力されるパケットを受け取る第1のレシーバ361と、出力回線を決定する第1のルータ371を備えており、すべての出力部分351〜3514に第1のブロードキャストバス381で接続されている。第2〜第14の入力部分332〜3314も同様に第2〜第14のレシーバ362〜3614と、第2〜第14のルータ372〜3714を備えており、第2〜第14のブロードキャストバス382〜3814で接続されてすべての出力部分351〜3514にパケットを出力するようになっている。第1の出力部分351は、すべての入力部分331〜3314から受信するパケットのうち出力すべきパケットを判断する第1のスイッチメモリ391を備えており、これらの内部に出力すべきパケットを蓄積する第1の出力キュー401を持っている。第1の出力キュー401に接続される第1の32ビットバス411によって、第1の出力回線341にパケットを出力する第1のトランスミッタ421と、パケットの長さを判断する第1のチョッパ431が接続されている。第2〜第14の出力部分352〜3514も同様に第2〜第14のスイッチメモリ392〜3914と、第2〜第14の32ビットバス412〜4114で接続される第2〜第14のチョッパ432〜4314および第2〜第14のトランスミッタ422〜4214を備えている。第2〜第14のトランスミッタ422〜4214から第2〜第14の出力回線342〜3414にパケットを出力するようになっている。
【0009】
図13は、スイッチメモリ内のアクセスメモリ制御によるパケットのスイッチングを簡単に説明するためのものである。図12で示したスイッチメモリに入力されたパケットは入力シフトレジスタ51によってシリアルに受信される。受信されたパケットは、入力シフトレジスタ51と同じデータ幅を持つバス52を介して、入力シフトレジスタ51と同じデータ幅を持つメモリ53にパラレルに出力されて書き込まれる。メモリ53に書き込まれたパケットは出力シフトレジスタ54にパラレルに読み出され、出力シフトレジスタ54からシリアルに出力される。入力シフトレジスタ51のパケットをアクセスメモリ制御の1回の書き込み動作と1回の読み出し動作でスイッチングすることができる。したがって、各入力ポートに入力されるパケットはアクセスメモリ制御の書き込みサイクルと読み出しサイクルの一定時間を待てばスイッチングされることになるので、スイッチングの遅延の問題を解消することができる。
【0010】
【発明が解決しようとする課題】
【0011】
この提案のパケットスイッチ回路31では、周期的なアクセスメモリ制御によって一定時間でスイッチングできるパケット数が一定になるので、一定時間で処理されるデータ量はパケット長に依存することになる。すなわち、パケット長の長短によって、一定時間で処理されるデータ量が変化することになる。たとえばパケット長が短いパケットの入力が集中する場合には一定時間で処理されるデータ量が極端に減少するという事態が発生する。データ通信量が急増している現在、パケットスイッチ回路のスイッチ容量の大容量化が急務となっている。
【0012】
そこで本発明の目的は、パケット長に依存しない大容量のスイッチ容量を持つパケットスイッチ回路を提供することにある。
【0013】
【課題を解決するための手段】
請求項1記載の発明では、(イ)複数の入力路のそれぞれに対応して配置され、宛先の付加されたパケットを順次蓄積する入力側蓄積手段と、(ロ)これらの入力側蓄積手段にそれぞれに蓄積されたパケットを周期的に取り出して1回で取り出した入力側蓄積手段ごとの全データに対して共通した1つのアドレスを割り当てこれらをアドレス単位で格納するデータ格納手段と、(ハ)複数の出力路のそれぞれに対応して配置され、パケットを順次蓄積する出力側蓄積手段と、(ニ)データ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットの送出されるべきそれぞれの出力側蓄積手段を宛先から判別する宛先判別手段と、(ホ)データ格納手段からアドレス単位でデータを順に周期的に取り出して、宛先判別手段の判別結果を用いて各パケットをそれぞれ対応する出力側蓄積手段に振り分けるパケット振分手段と、(ヘ)出力側蓄積手段のそれぞれに蓄積されたパケットを順次出力させる出力路別パケット出力制御手段とをパケットスイッチ回路に具備させる。
【0014】
すなわち請求項1記載の発明では、パケットスイッチ回路は各入力路に対応して配置された入力側蓄積手段からそれぞれデータの取り出しを行うたびに、1回で取り出した全データに1つのアドレスを割り当ててデータ格納手段に格納するようにしている。格納されたこれらのデータは宛先判別手段でパケットごとに宛先が判別される。パケット振分手段は、データ格納手段からアドレス単位でデータを順に周期的に取り出すと共に、宛先判別手段の判別結果を用いて1つのアドレスのデータを構成する各パケットをそれぞれ対応する出力側蓄積手段に振り分けるようになっている。したがって、本発明では1つのアドレスに割り当てられたデータが複数のパケットにより構成されている場合でも、これらをアドレス単位で一括処理することができる。このため、比較的小さなサイズのパケットが集中したような場合にも処理効率が落ちることがなく、可変長パケットの長さによってパケットスイッチ回路の時間あたりのスイッチング処理できるデータ量が変動するという問題を解消することができる。
【0015】
請求項2の発明では、(イ)データの最大伝送速度を個別に設定された複数の入力路のそれぞれに対応して配置され、宛先の付加されたパケットを順次蓄積する入力側蓄積手段と、(ロ)これらの入力側蓄積手段のそれぞれに蓄積されたパケットをデータの最大伝送速度が速いほど短くなるような値に予め設定された入力側蓄積手段ごとの周期で取り出して、1回で取り出した入力側蓄積手段ごとの全データに対して共通した1つのアドレスを割り当てこれらをアドレス単位で格納するデータ格納手段と、(ハ)複数の出力路のそれぞれに対応して配置され、パケットを順次蓄積する出力側蓄積手段と、(ニ)データ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットの送出されるべきそれぞれの出力側蓄積手段を宛先から判別する宛先判別手段と、(ホ)入力側蓄積手段に蓄積されたパケットのいずれかがデータ格納手段に格納されるたびにデータ格納手段からアドレス単位でデータを順に取り出して、宛先判別手段の判別結果を用いて各パケットをそれぞれ対応する出力側蓄積手段に振り分けるパケット振分手段と、(ヘ)出力側蓄積手段のそれぞれに蓄積されたパケットを順次出力させる出力路別パケット出力制御手段とをパケットスイッチ回路に具備させる。
【0016】
すなわち請求項2記載の発明では、パケットスイッチ回路は各入力路に対応して配置された入力側蓄積手段からそれぞれデータの取り出しを行うたびに、1回で取り出した全データに1つのアドレスを割り当ててデータ格納手段に格納するようにしている。格納されたこれらのデータは宛先判別手段でパケットごとに宛先が判別される。パケット振分手段は、データ格納手段からアドレス単位でデータを順に周期的に取り出すと共に、宛先判別手段の判別結果を用いて1つのアドレスのデータを構成する各パケットをそれぞれ対応する出力側蓄積手段に振り分けるようになっている。したがって、本発明では1つのアドレスに割り当てられたデータが複数のパケットにより構成されている場合でも、これらをアドレス単位で一括処理することができる。このため、比較的小さなサイズのパケットが集中したような場合にも処理効率が落ちることがなく、可変長パケットの長さによってパケットスイッチ回路の時間あたりのスイッチング処理できるデータ量が変動するという問題を解消することができる。しかも本発明では、データ格納手段は、入力側蓄積手段のそれぞれに蓄積されたパケットをそれらに対応する入力路のデータの最大伝送速度が速いほど短くなるような周期で取り出して格納している。すなわち、入力路の一部または全部についてデータの最大伝送速度が異なっているような場合には、各入力側蓄積手段の単位時間あたりに蓄積するデータの量が異なるので、データの最大伝送速度が速い入力路に対応する入力側蓄積手段ほど周期を短くしてデータを取り出してデータ格納手段に格納するようにすることで、データ格納手段の効率的な活用を図っている。
【0017】
請求項3の発明では、(イ)複数の入力路のそれぞれに対応して配置され、宛先の示されたパケットを順次蓄積する入力側蓄積手段と、(ロ)これらの入力側蓄積手段にそれぞれに蓄積されたパケットを周期的に取り出して入力側蓄積手段ごとの1回で取り出した全データに対して共通した1つのアドレスを割り当て、アドレス単位で格納するデータ格納手段と、(ハ)このデータ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットごとの送出先を宛先から判別する宛先判別手段と、(ニ)この宛先判別手段で判別したデータをデータ格納手段からアドレス単位で順に読み出すデータ読出手段と、(ホ)このデータ読出手段がアドレス単位にデータを読み出すたびに宛先判別手段の対応する判別結果を使用してこの中から自己の取り込むべき宛先のパケットのみを選択する出力ポートごとに設けられたパケット選択手段と、(ヘ)これらのパケット選択手段に対応して配置され、選択されたパケットを順次対応する出力路に出力する出力路別パケット出力手段とをパケットスイッチ回路に具備させる。
【0018】
すなわち請求項3記載の発明では、パケットスイッチ回路は各入力路に対応して配置された入力側蓄積手段からそれぞれデータの取り出しを行うたびに、1回で取り出した全データに1つのアドレスを割り当ててデータ格納手段に格納するようにしている。格納されたこれらのデータは宛先判別手段でパケットごとに宛先が判別される。データ読出手段は、データ格納手段からアドレス単位でデータを順に周期的に読み出し、それぞれの出力ポートごとに設けられたパケット選択手段に送られる。これらのパケット選択手段では、宛先判別手段の対応する判別結果を使用してこの中から自己の取り込むべき宛先のパケットのみを選択することになる。したがって、本発明では1つのアドレスに割り当てられたデータが複数のパケットにより構成されている場合でも、これらをアドレス単位で一括処理することができる。このため、比較的小さなサイズのパケットが集中したような場合にも処理効率が落ちることがなく、可変長パケットの長さによってパケットスイッチ回路の時間あたりのスイッチング処理できるデータ量が変動するという問題を解消することができる。しかも本発明では、各パケット選択手段にデータを送り込む過程までの制御を単純化し、処理の高速化を図ることができる。
【0019】
請求項4の発明では、請求項3記載のパケットスイッチ回路で、入力側蓄積手段はそれぞれの入力路からシリアルデータとしてパケットを順次入力して蓄積する手段であり、データ読出手段と出力ポートごとに設けられたパケット選択手段の間には、1つのアドレスの全データをパラレルにかつすべてのパケット選択手段に並行して伝送する伝送路が配置されていることを特徴としている。
【0020】
すなわち請求項4記載の発明では、データ読出手段と出力ポートごとに設けられたパケット選択手段の間には、1つのアドレスの全データをパラレルにかつすべてのパケット選択手段に並行して伝送する伝送路が配置されている。このため、1つのアドレスの全データを一度に伝送することが可能になる。
【0021】
請求項5の発明では、請求項3記載のパケットスイッチ回路で、データ格納手段は、それぞれの入力路のデータ伝送速度に反比例した周期で対応する入力側蓄積手段からアドレス単位のデータを取り出して格納する手段であり、データ読出手段はデータ格納手段に単位時間当たり格納されるアドレス単位のデータの量に反比例した周期で、このデータ格納手段からアドレス単位にデータを読み出す手段であることを特徴としている。
【0022】
すなわち請求項5記載の発明では、データ格納手段はそれぞれの入力路のデータ伝送速度に反比例した周期で対応する入力側蓄積手段からアドレス単位のデータを取り出して格納するようにし、データ読出手段はデータ格納手段に単位時間当たり格納されるアドレス単位のデータの量に反比例した周期でデータ格納手段からアドレス単位にデータを読み出すようにしている。このため比較的少ないハードウェアで、効率的なデータの転送が可能になる。
【0023】
請求項6記載の発明では、請求項3記載のパケットスイッチ回路で、出力路別パケット出力手段は、1回で取り出した全データと同一量のデータを複数組格納可能で、予め定めた順序でこれらのメモリ領域を指定することでメモリ領域単位でデータの読み出しが行われるようになったパケット格納手段と、パケット選択手段で自己の取り込むべき宛先のパケットが選択されるたびにその全部のデータ量を算出するデータ量算出手段と、このデータ量算出手段で算出されたデータ量のパケットを転送するに先立って、パケット格納手段の読み出しが行われていない最も古い組のメモリ領域の空き容量とデータ量算出手段で算出したデータ量を比較する比較手段と、この比較手段によって比較されたデータ量の方が最も古い組のメモリ領域の空き容量以下であるときそのメモリ領域にパケット選択手段で選択されたパケットをすべて転送し、これ以外の場合にはこれらのパケットを最も古い組のメモリ領域の次に読み出されるべきメモリ領域にすべて転送するパケット転送手段とを具備することを特徴としている。
【0024】
この請求項6記載の発明では、請求項3記載の発明における出力路別パケット出力手段を具体化している。出力路別パケット出力手段は1回で取り出した全データと同一量のデータを複数組格納可能で、予め定めた順序でこれらのメモリ領域を指定することでメモリ領域単位でデータの読み出しが行われるようになったパケット格納手段を備えている。このパケット格納手段のメモリ領域単位でデータの読み出しが行われるようになっているので、1回当たりの読み出しが効率的に行われるためにはそれぞれのメモリ領域にできるだけ多くのパケットが格納される必要がある。そこでこの発明ではパケット選択手段で自己の取り込むべき宛先のパケットが選択されるたびにデータ量算出手段がその全部のデータ量を算出することにしている。そして、データ量算出手段で算出されたデータ量のパケットを転送するに先立って、比較手段がパケット格納手段の読み出しが行われていない最も古い組のメモリ領域の空き容量とデータ量算出手段で算出したデータ量を比較するようにしている。この結果、比較された転送しようとしているデータ量の方が最も古い組のメモリ領域の空き容量以下であるときには、該当するそのメモリ領域にパケット選択手段で選択されたパケットをすべて転送し、今まで格納されたデータと一緒にデータの読み出しが行われるようにしている。比較された転送しようとしているデータ量の方が最も古い組のメモリ領域の空き容量より大きい場合には、これらのパケットを該当するそのメモリ領域の空いている領域にすべて詰め込むことはできない。そこでこの場合にはそのメモリ領域の次に読み出されるべきメモリ領域にこれらすべてのパケットを転送することにしている。このような工夫を行うことで、たとえばパケット選択手段が1回当たり僅かずつのデータ量のパケットを選択したような場合には、これらを別々にパケット転送手段が転送するのではなく、何回分かをまとめて転送することができるので、パケットを出力路に効率良く出力することができることになる。出力路への転送形態は各種の態様が考えられる。
【0025】
請求項7記載の発明では、請求項6記載のパケットスイッチ回路で、パケット転送手段はパケット選択手段の選択したパケットを隙間なく再配置する再配置手段を備え、パケット転送手段はこの再配置手段によって再配置された各パケットを一括してパラレル転送することを特徴としている。
【0026】
すなわち請求項7記載の発明では、パケット転送手段はパケット選択手段の選択したパケットを隙間なく再配置する再配置手段を備えている。パケット転送手段はこの再配置手段によって再配置された各パケットを一括してパラレル転送している。これにより、シリアルで転送するのに比べて転送の処理が高速化する。また、パケット同士の間隔を詰めて転送するので、受信側の処理が効率化する。
【0027】
【発明の実施の形態】
【0028】
【実施例】
以下実施例につき本発明を詳細に説明する。
【0029】
図1は本発明の一実施例における可変長パケットスイッチ回路を使用したルータの構成を表わしたものである。このルータ101は、図示しない他のルータから送られてくる可変長パケットを入力する第1の入力ポート1021にその入力側を接続する第1の入力インタフェース部1031を備えている。第1の入力インタフェース部1031の出力側は、可変長パケットスイッチ回路104の第1の入力ポート1051に接続されている。第2〜第Nの入力ポート1022〜102Nも同様に第2〜第Nの入力インタフェース部1032〜103Nの入力側にそれぞれ接続され、その出力側は第2〜第Nの入力ポート1052〜105Nにそれぞれ接続されている。可変長パケットスイッチ回路104の第1の出力ポート1061は、第1の出力インタフェース部1071の入力側に接続されている。第1の出力インタフェース部1071の出力側は、図示しない他のルータに可変長パケットを送出する第1の出力ポート1081に接続されている。第2〜第Nの出力ポート1062〜106Nも同様に第2〜第Nの出力インタフェース部1072〜107Nの入力側にそれぞれ接続され、その出力側は第2〜第Nの出力ポート1082〜108Nにそれぞれ接続されている。
【0030】
第1〜第Nの入力ポート1021〜102Nに入力される可変長パケットは、第1〜第Nの入力インタフェース部1031〜103Nによってフレームのフォーマットを装置内フレームのフォーマットに変換される。変換された可変長パケットは、可変長パケットスイッチ回路104でスイッチングされる。スイッチングされた可変長パケットは、第1〜第Nの出力インタフェース部1071〜107Nによって元のフレームのフォーマットに変換される。この可変長パケットはそれぞれ第1〜第Nの出力ポート1081〜108Nから他のルータに可変長パケットを送出している。
【0031】
図2は入力される可変長パケットの一例としてPPPフレームのフォーマットを表わしたものである。このPPP(Point to Point Protocol:ポイントツーポイントプロトコル)フレームの可変長パケット201は、PPPオーバヘッド202、データ部分のPPPペイロード203、ビット誤りを検出するFCS(Frame Check Sequence:フレーム検査シーケンス)204、およびパケットの終わりを示すフラグ205で構成される。PPPオーバヘッド202には、パケットの始まりを示すフラグ206、パケットの宛先のアドレス207、制御情報のコントロール208、およびプロトコル識別子209が配置されている。可変長パケット201は第1〜第Nの入力インタフェース部1031〜103N(図1参照)によって装置内フレームのフォーマットに変換され、第1〜第Nの出力インタフェース部1071〜107N(図1参照)によって再び元の可変長パケット201のフォーマットに変換される。
【0032】
図3は図1で示した入力インタフェース部によって変換された可変長パケットの装置内フレームのフォーマットを表わしたものである。この装置内フレームの可変長パケット301は、装置内オーバヘッド302とデータ部分のPPPペイロード303から構成される。装置内オーバヘッド302には、装置内情報304、入力ポート情報305、および出力ポート情報306が配置されている。入力ポート情報305および出力ポート情報306は、可変長パケットが入力される可変長パケットスイッチ回路104(図1参照)の入力ポートおよび出力される出力ポートを示している。装置内情報303は、可変長パケットスイッチ回路104のその他の装置内制御に使用される情報を表わしている。可変長パケット301は、PPPオーバヘッド202(図2参照)に代わって装置内オーバヘッド302が付加され、可変長パケットスイッチ回路104のどの出力ポートに出力するかについて決定されている。
【0033】
この出力ポートの決定について更に説明を加える。出力ポートの決定には、PPPオーバヘッド202内のアドレス207の情報に加えて、PPPペイロード203内に格納されている情報が必要になる。たとえばPPPペイロード203内にIP(Internet Protocol:インターネットプロトコル)パケットが格納されている場合、IPパケットのヘッダ内の宛先アドレス等の情報を基にして出力ポートを決定する。PPPペイロード203内にその他のパケットが格納されている場合、PPPオーバヘッド202内のプロトコル識別子209を基にして格納されているパケットに応じて出力ポートを決定する。この出力ポートを決定する処理は負荷が高く、CPU(Central Processing Unit:中央処理装置)を使用した大規模な回路が必要になる。本実施例では出力ポートを決定する処理は第1〜第Nの入力インタフェース部1031〜103N(図1参照)内で行い、可変長パケットスイッチ回路104(図1参照)で行う処理の負荷を軽減している。
【0034】
図4は図1に示した可変長パケットスイッチ回路の構成を表わしたものである。以上の説明では入力ポート数および出力ポート数について一般化された数値として値Nで表わしたが、これ以後は値Nが“39”の場合を例にとって具体的に説明する。もちろん値Nはこの値に限定されるものではない。この可変長パケットスイッチ回路104は、第1の入力ポート1051に接続される第1の入力線4011からシリアルに可変長パケットを入力する第1の出力ポート情報抽出部4021を備えている。第1の出力ポート情報抽出部4021は、可変長パケットに付加されている出力ポート情報306(図3参照)を抽出し、第1の出力ポート情報信号4031を出力ポート判定部404へ出力するようにしている。第1の出力ポート情報抽出部4021の第1の出力線4051は第1の入力バッファ4061に接続されている。第1の入力バッファ4061は可変長パケットを順次蓄積し、それぞれの可変長パケットがバッファ内に蓄積されるパケット位置を示す第1のパケット位置情報信号4071を出力ポート判定部404に出力するようになっている。
【0035】
同様にしてそれぞれ第1〜第39の入力ポート1051〜10539に入力された可変長パケットは、第1〜第39の入力線4011〜40139および第1〜第39の出力ポート情報抽出部4021〜40239を経て、第1〜第39の入力バッファ4061〜40639で蓄積されるようになっている。また、出力ポート判定部404にそれぞれ第1〜第39の出力ポート情報信号4031〜40339および第1〜第39のパケット位置情報信号4071〜40739を出力する。
【0036】
第1〜第39の入力バッファ4061〜40639は、入力ポート側データバス408を介して入力ポート側メモリ409に接続されている。入力ポート側メモリ409を制御する入力ポート側メモリ制御部410は、図示しないCPUおよび図示しないROM(リード・オンリ・メモリ)等の記憶媒体で構成され所定の制御を行うようになっている。入力ポート側メモリ制御部410は、第1〜第39の入力バッファ4061〜40639に蓄積された可変長パケットを入力ポート側メモリ409へ格納するための第1〜第39の出力制御信号4111〜41139を出力するようになっている。また、入力ポート側メモリ409に格納された可変長パケットを入力ポート側データバス408上に出力するための出力制御信号412を出力する。入力ポート側データバス408は、第1〜第39の出力ポート1061〜10639にそれぞれ対応する第1〜第39の選択バッファ4131〜41339に接続されている。出力ポート判定部404は、第1〜第39の出力ポート情報信号4031〜40339および第1〜第39のパケット位置情報信号4071〜40739に基づき、第1〜第39の出力ポート1061〜10639に対応した第1〜第39の有効情報信号4141〜41439を生成するようになっている。第1〜第39の有効情報信号4141〜41439はそれぞれ第1〜第39の選択バッファ4131〜41339に出力されている。
【0037】
第1の出力ポート1061に対応する第1の選択バッファ4131は、第1の有効情報信号4141に基づき、入力ポート側データバス408上に出力される可変長パケットを選択して蓄積するようになっている。第1の選択バッファ4131は蓄積された可変長パケットを第1のデータバス4151を介して第1の有効情報圧縮スイッチ4161に出力している。第1の有効情報圧縮スイッチ4161は、第1の出力ポート側メモリ制御部4171からの第1の先頭位置信号4181に基づき可変長パケットを配列するようになっている。第1の出力ポート側メモリ制御部4171は、図示しないCPUおよび図示しないROM(リード・オンリ・メモリ)等の記憶媒体で構成され所定の制御を行うようになっている。第1の出力ポート側メモリ制御部4171は、第1の有効情報圧縮スイッチ4161で配列された可変長パケットを第1の出力ポート側データバス4191を介して第1の出力ポート側メモリ4201へ格納するための第1の出力制御信号4211を出力するようになっている。また、第1の出力ポート側メモリ4201に格納された可変長パケットを第1の出力ポート側データバス4191を介して第1の出力バッファ4221へ出力するための第1の出力制御信号4231を出力する。第1の出力バッファ4221の出力側は、第1の出力線4241によって第1の出力ポート1061に接続されている。第1の出力ポート1061から図1に示した第1の出力インタフェース部1071に可変長パケットが出力されるようになっている。
【0038】
同様にしてそれぞれの第1〜第39の選択バッファ4131〜41339に蓄積された可変長パケットは第1〜第39の有効情報圧縮スイッチ4162〜41639、第1〜第39の出力ポート側メモリ4201〜42039、第1〜第39の出力バッファ4221〜42239を経て、第1〜第39の出力ポート1061〜10639に出力するようになっている。第1〜第39の出力ポート1061〜10639から第1〜第39の出力インタフェース部1071〜10739にそれぞれ可変長パケットを出力する。
【0039】
本実施例では、入力ポート側メモリ409および第1〜第39の出力ポート側メモリ4201〜42039の1アドレスで指定されるデータ幅を8K(キロ)ビットとする。第1〜第39の入力バッファ4061〜40639の容量、入力ポート側データバス408のバス幅、および第1〜第39の選択バッファ4131〜41339の容量を8Kビットとする。第1〜第39の有効情報圧縮スイッチ4161〜41639の出力側容量、第1〜第39の出力ポート側データバス4191〜41939のバス幅、および第1〜第39の出力バッファ4221〜42239の容量を8Kビットとする。
【0040】
また、第1〜第39の入力バッファ4061〜40639から入力ポート側メモリ409へのパケット転送周期を3.28μ(マイクロ)秒とする。39個の入力ポート1051〜10539から入力する可変長パケットの最大伝送レートおよび39個の出力ポート1061〜10639から出力する可変長パケットの最大伝送レートを2.48832Gbps(ギガビット/秒)とする。入力ポート側メモリ409および第1〜第39の出力ポート側メモリ4201〜42039に対する書き込みおよび読み出しサイクルを42n(ナノ)秒とする。これは既存のDRAM(Dynamic Random Access Memory:ダイナミック等速呼び出し記憶装置)のアクセス速度と同等である。
【0041】
図5は、入力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)はサイクル501〜506の順に時間の経過を示し、それぞれの時間間隔は42n秒の等間隔である。同図(b)以降は動作を説明しつつ、適宜説明する。
【0042】
図4における第1〜第39の出力ポート情報抽出部4021〜40239から第1〜第39の選択バッファ4131〜41339までの各動作について更に説明する。第1の出力ポート情報抽出部4021は、入力される可変長パケット中に付加されている出力ポート情報を抽出して第1の出力ポート情報信号4031を出力ポート判定部404へ出力する。また、可変長パケットの先頭位置および最後尾位置を検出して可変長パケットを第1の入力バッファ4061へ出力する。
【0043】
入力された可変長パケットを蓄積する第1の入力バッファ4061は、検出された可変長パケットの先頭位置および最後尾位置の情報に基づき、可変長パケットがバッファ内に蓄積されているバイト単位のパケット位置を示す第1のパケット位置情報信号4071を生成する。第1のパケット位置情報信号4071は出力ポート判定部404に出力される。本実施例では、一般にデータはバイト単位で処理されるので、バイト単位の情報を生成する。また、第1の入力バッファ4061はバッファを2つ備えたダブルバッファとすることによって、蓄積されている可変長パケットが出力中でも入力される新たな可変長パケットを蓄積することができる。
【0044】
入力ポート側メモリ制御部410は、一定周期(3.28μ秒)で第1の入力バッファ4061内に蓄積された複数の可変長パケットを入力ポート側メモリ409へ転送して先頭のアドレスにデータを書き込む。これは第1の出力制御信号4111によって図5(b)で示された第1の入力バッファ4061からの書き込み507のタイミングで行われる。本実施例では、第1の入力バッファ4061の容量、入力ポート側データバス408のバス幅、および入力ポート側メモリ409の1アドレスのデータ幅を一致させている。これにより、第1の入力バッファ4061内に蓄積された複数の可変長パケットは1回の転送サイクルで入力ポート側メモリ409へ転送することができる。
【0045】
同様にして、入力ポート側メモリ409へのデータの書き込みは、入力ポート側メモリ制御部410からの第2の出力制御信号4112(図示せず)によって図5(b)の第2の入力バッファ(図示せず)からの書き込み508のタイミングで行われる。また、同様に第3の出力制御信号4113(図示せず)によって図5(b)の第3の入力バッファ(図示せず)からの書き込み509といったタイミングで番号順に繰り返し行われる。このとき、入力ポート側メモリ409への書き込み周期は84n秒(42n秒×2)となるので、1つの入力バッファからは3.276μ秒(84n秒×39個)ごとに転送が行われる。一方、1つの入力ポートからは可変長パケットが最大伝送レートを2.48832Gbpsで入力されるので、1つの入力バッファが飽和する時間は最短で3.292μ秒(8192ビット÷2.48832Gbps)かかる。メモリやバッファの容量で1Kビットは通常1024ビットになるので8Kビットは8192ビット(1024ビット×8)になる。したがって、1つの入力バッファから入力ポート側メモリ409への転送周期は最短バッファ飽和時間よりも短いので、この入力バッファは飽和しない。
【0046】
このように入力ポート側メモリ409にデータが書き込まれるたびに、入力ポート側メモリ制御部410は、データが書き込まれたアドレス情報信号425を出力ポート判定部404へ出力する。
【0047】
出力ポート判定部404は、入力される第1の出力ポート情報信号4031に基づき、入力ポート側メモリ409のアドレス情報信号425のアドレスに格納されている複数の可変長パケットの出力ポートを決定する。第1の出力ポート情報信号4031で複数あるいはすべての出力ポートを指定することで、複数あるいはすべての出力ポートを選択することが可能になる。また、入力される第1のパケット位置情報信号4071に基づき、第1〜第39の有効情報信号4141〜41439を生成する。出力ポート判定部404は入力ポート側メモリ409のアドレス単位で処理し、処理が完了するたびに入力ポート側メモリ制御部410へ処理の完了を知らせる通知信号426を出力する。
【0048】
入力ポート側メモリ制御部410は、通知信号426によって処理の完了を知らされたアドレスの複数の可変長パケットを入力ポート側データバス408上に同時に読み出して第1〜第39の選択バッファ4131〜41339に転送する。この読み出し動作は、図5(c)で示された入力ポート側メモリ409からの読み出し510〜512のそれぞれのタイミングで行われる。入力ポート側メモリ制御部410の出力制御信号412によって周期84n秒で入力ポート側メモリ409に書き込まれたアドレス順で行われる。このとき、1アドレスで指定される領域に書き込まれているすべての可変長パケットの宛先の出力ポートは、出力ポート判定部404によって決定されている。39個の入力ポート1051〜10539からそれぞれ2.48832Gbpsで入力された可変長パケットは、第1〜第39の有効情報信号4141〜41439が生成される一定時間まで入力ポート側メモリ409に格納される。一定時間後、第1〜第39の選択バッファ4131〜41339へ同時に転送されている。
【0049】
以上説明したアクセス制御では、入力ポート側メモリ制御部410のアドレス情報信号427およびリードライト制御信号428によって、入力ポート側メモリ409のデータの書き込みおよび読み出しを行っている。同様にして第1〜第39の出力ポート情報抽出部4021〜40239から第1〜第39の選択バッファ4131〜41339までの各動作が行われる。
【0050】
第1〜第39の選択バッファ4131〜41339は同一動作をするので、代表して第1の選択バッファ4131の動作について説明する。第1の選択バッファ4131は、出力ポート判定部404が出力する第1の有効情報信号4141を受信する。第1の有効情報信号4141は、第1の選択バッファ4131が選択する可変長パケットが入力ポート側メモリ409の1アドレスで指定されるデータ領域のどこに格納されているかを示している。入力ポート側メモリ409から入力ポート側データバス408上に出力される1アドレスで指定されているデータ領域に格納されている1あるいは複数の可変長パケットを受信し、第1の有効情報信号4141に基づいて可変長パケットを選択して蓄積している。この際、第1の有効情報信号4141に基づいて、第1の選択バッファ4131への書き込みをビット単位あるいはバイト単位で許可あるいは禁止する機能を第1の選択バッファ4131の前段に備えることによって、パケットの選択を実現している。したがって、第1の選択バッファ4131のデータ列の有効情報と有効情報の間には不要なデータが格納されていないことになる。本実施例では、入力ポート側メモリ409の1アドレスで指定されるデータ幅、第1の選択バッファ4131の容量、および入力ポート側データバス408のバス幅を一致させている。これにより、入力ポート側メモリ409の1アドレスで指定されているデータ領域に格納されている複数の可変長パケットは、1回の転送サイクルで第1の選択バッファ4131へ転送される。
【0051】
次に、第1〜第39の入力バッファ4061〜40639から入力ポート側メモリ409への可変長パケットの転送について説明を加える。本実施例では可変長パケットの転送を一定周期で行うので、第1〜第39の入力バッファ4061〜40639に書き込みが途中の可変長パケットが存在する場合がある。この可変長パケットは分割して転送され、出力ポートから出力された後、図1で示した第1〜第39の出力インタフェース部1071〜10739で復元されることになる。可変長パケットを分割した残りのパケットは次の転送周期で転送されることになる。これらの分割されたパケットを復元するとき、これらのパケットがどの入力ポートから入力されたかの情報が必要になる。この情報を分割されたパケットに付加して出力するが、以下に説明するように第1〜第39の出力インタフェース部1071〜10739では、付加された情報を基にして元の可変長パケットに復元することができる。
【0052】
この分割されたパケットに入力ポート情報を付加し、第1〜第39の出力インタフェース部1071〜10739で復元する動作について具体的に説明する。第1〜第39の入力バッファ4061〜40639の先頭部分と最後尾部分に入力ポート情報が書き込まれる領域を予め確保しておく。たとえば、第1の入力ポート1051の第1の入力バッファ4061には、常に入力ポートが“1”であることを示す情報が入力バッファの先頭部分と最後尾部分に書き込まれている。一定周期で第1の入力バッファ4061に書き込まれたパケットは入力ポート側メモリ409へ書き込まれる。このとき、入力ポート情報も同時に入力ポート側メモリ409へ書き込まれる。メモリ領域の先頭部分に書き込まれた入力ポート情報に対しては、その直後に書き込まれていたパケットと同じ出力ポートへの転送として有効情報信号が出力される。メモリ領域の最後尾部分に書き込まれた入力ポート情報に対しては、その直前に書き込まれていたパケットと同じ出力ポートへの転送として有効情報信号が出力される。
【0053】
第1〜第39の出力インタフェース部1071〜10739では、分割されていないパケットの場合、図3で示したパケットの装置内オーバヘッド302に格納されている入力ポート情報305に基づき入力ポートごとのバッファ(図示せず)に蓄積される。分割されたパケットの場合、パケットの先頭部分あるいは最後尾部分に付加されている入力ポート情報に基づき入力ポートごとのバッファに蓄積することにより、分割されたパケットが復元される。このとき、付加された入力ポート情報は削除される。以上のようにして分割されたパケットが処理される。
【0054】
再び図4に戻って、第1〜第39の選択バッファ4131〜41339から第1〜第39の出力バッファ4221〜42239までの各動作について説明する。これらの選択バッファ4131〜41339以降の回路は、同一回路であり独立に動作するため、第1の出力ポート1061に対応する回路を代表して説明する。第1の選択バッファ4131によって蓄積された可変長パケットは、第1のデータバス4151を介して第1の有効情報圧縮スイッチ4161に受信される。これ以後はパケット1〜パケット3(P1〜P3)の3つの可変長パケットが受信された場合を例にとって具体的に説明する。
【0055】
図6は、出力ポート側メモリへの可変長パケット書き込み制御の様子を表わしたものである。同図(a)は、第1の出力ポート側メモリ4201の1アドレスで指定されるデータ領域601を示している。本実施例ではLSB602(Least Significant Bit:最下位ビット)からMSB603(Most Significant Bit:最上位ビット)の8Kビットとする。データの流れを説明するためデータ領域601を基準にして、同図(b)以降は動作を説明しつつ、適宜説明する。
【0056】
第1の有効情報圧縮スイッチ4161は出力ポート判定部404から第1の有効情報信号4141を受信する。図6(b)は出力ポート判定部404が出力する第1の有効情報信号4141を表わしている。3つの可変長パケットについて、それぞれパケット1は第1の位置604、パケット2は第2の位置605、パケット3は第3の位置606のデータ位置を示している。
【0057】
第1の選択バッファ4131は、図6(b)で示した第1の有効情報信号4141の示す位置のデータを選択して可変長パケットを格納している。図6(c)は第1の選択バッファ4131における可変長パケットの格納状態であり、領域607にはデータが格納され、領域608にはデータが格納されていない。
【0058】
第1の有効情報圧縮スイッチ4161では、出力ポート判定部404が出力する第1の有効情報信号4141に基づいて図6(c)に示した領域607のみを取り出し、可変長パケットのパケット長の総和である図6(d)で示す有効情報長609を表わす第1の有効情報長信号4291を第1の出力ポート側メモリ制御部4171へ出力している。
【0059】
第1の出力ポート側メモリ制御部4171は、第1の有効情報圧縮スイッチ4161が出力する第1の有効情報長信号4291の有効情報長と、第1の出力ポート側メモリ4201の可変長パケットが書き込まれている最後尾のアドレス中の可変長パケットが書き込まれていない領域長を比較する。本実施例では、図6(f)で示した第1の出力ポート側メモリ4201における可変長パケットの格納状態を比較する。第1の出力ポート側メモリ4201の内部は、前回の書き込みサイクルまでに書き込みが行われた領域611、今回新たに書き込みが行われた領域612、および書き込みが行われていない領域613に分かれている。本実施例では、比較した結果として、有効情報長の方が短い場合、第1の出力ポート側メモリ4201の可変長パケットが書き込まれている最後尾のアドレスにおける空き領域に可変長パケットを書き込む。このとき、第1の出力ポート側メモリ4201の可変長パケットが書き込まれている最後尾のアドレス中の可変長パケットが書き込まれていない領域の先頭位置を第1の先頭位置信号4181として第1の有効情報圧縮スイッチ4161に出力する。比較した結果、有効情報長の方が長いような場合には、第1の出力ポート側メモリ4201の可変長パケットが書き込まれている最後尾のアドレスの次のアドレスの先頭位置から可変長パケットを書き込む。このとき、第1の有効情報圧縮スイッチ4161が出力する可変長パケットの第1の先頭位置信号4181としてLSBの位置を出力する。
【0060】
第1の有効情報圧縮スイッチ4161は、第1の出力ポート側メモリ制御部4171が出力する可変長パケットの第1の先頭位置信号4181に基づいて、出力する可変長パケットの先頭位置を決定して可変長パケットを図6(e)に示す位置情報610のように配列する。第1の有効情報圧縮スイッチ4161の出力状態は、この配列動作によって、図6(d)に示すような可変長パケット出力状態となる。ここで、第1の有効情報圧縮スイッチ4161の具体的な回路について説明を加える。
【0061】
図7は有効情報圧縮スイッチの基本動作を2入力2出力のセレクタを用いて構成する場合の原理的な構成を示したものである。本実施例では第1のデータバス4151は8192ビットであるが、ここでは簡単に説明するため4ビット分のデータを入出力する有効情報圧縮スイッチ701を示している。この簡略化した有効情報圧縮スイッチ701は、それぞれ第1〜第4の入力ポート7021〜7024および第1〜第4の出力ポート7031〜7034を備えている。有効情報圧縮スイッチ701は、アレイ状に配置された2入力2出力の第1〜第4のセレクタ7041〜7044を第1段として、同様にして第2段および第3段としてそれぞれ第5〜第8のセレクタ7045〜7048および第9〜第12のセレクタ7049〜70412で構成される。
【0062】
この有効情報圧縮スイッチ701に有効ビットとして第1の入力ポート7021、第3の入力ポート7023および第4の入力ポート7024にデータが入力され、無効ビットとして第2の入力ポート7022にはデータが入力されないものとする。また、配列位置として第1〜第3の出力ポート7031〜7033からデータを出力するような場合とする。第1の入力ポート7021に入力されたデータは、第1のセレクタ7041、第5のセレクタ7045、および第9のセレクタ7049を順に経由して第1の出力ポート7031に出力されている。同様にして、第3の入力ポート7023に入力されたデータは、第3のセレクタ7043、第5のセレクタ7045、および第10のセレクタ70410を順に経由して第2の出力ポート7032に出力され、第4の入力ポート7024に入力されたデータは、第4のセレクタ7044、第8のセレクタ7048、および第11のセレクタ70411を順に経由して第3の出力ポート7033に出力されている。ここでは2入力2出力のセレクタを示しているが、アレイ状に配置するセレクタの数と段数を増加させることで本実施例の有効情報圧縮スイッチを実現することができる。本実施例では、データのビット数が“8192”であるので、セレクタ数は“8192”となり段数は“14”段となる。
【0063】
この第1の有効情報圧縮スイッチ4161によって配列された図6(e)に示す位置情報610の可変長パケットを第1の出力ポート側メモリ4201に格納している。図6(f)で示すように前回の書き込みサイクルまでに書き込まれた可変長パケットに引き続いて、まだ書き込みが行われていない領域に、可変長パケットのみを格納することができる。本実施例では、第1の有効情報圧縮スイッチ4161の出力側容量、第1の出力ポート側メモリ4201の1アドレスで指定されるデータ幅、および第1の出力ポート側データバス4191のデータ幅が一致している。これにより、第1の出力ポート側メモリ4201への書き込みを1回の書き込みサイクルで行うことができる。
【0064】
図8は、出力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)はサイクル801〜806の順に時間の経過を示し、それぞれの時間間隔は42n秒の等間隔である。同図(b)は第1の出力ポート側メモリ4201に対しての第1の有効情報圧縮スイッチ4161からの書き込みを表わしている。第1の出力ポート側メモリ4201への書き込み807は、第1の出力ポート側メモリ制御部4171の第1の出力制御信号4211によって第1の有効情報圧縮スイッチ4161で配列された可変長パケットを周期84n秒(42n秒×2)で書き込んでいる。
【0065】
第1の出力ポート側メモリ4201に格納された可変長パケットは第1の出力ポート側データバス4191を介して第1の出力バッファ4221へ転送している。本実施例では、第1の出力ポート側メモリ4201の1アドレスで指定されるデータ幅、第1の出力バッファ4221の容量、および第1の出力ポート側データバス4191のデータ幅が一致している。これにより、第1の出力ポート側メモリ4201から第1の出力バッファ4221への可変長パケットの転送を1回の読み出しサイクルで行われている。図8(c)で示すように第1の出力ポート側メモリ4201からの読み出し808は、第1の出力ポート側メモリ制御部4171の第1の出力制御信号4211によって周期84n秒で第1の出力ポート側メモリ4201に書き込まれたアドレス順で行われる。第1の出力ポート側メモリ制御部4171は、第1のアドレス情報信号4301およびリードライト制御信号4311によって第1の出力ポート側メモリ4201のデータの書き込みおよび読み出しを行っている。
【0066】
第1の出力バッファ4221に蓄積された可変長パケットは、第1の出力ポート1061に接続される第1の出力線4241でシリアルに出力される。また、第1の出力バッファ4221はバッファを2つ備えたダブルバッファとすることによって、可変長パケットを出力中でも第1の出力ポート側メモリ4201が読み出した可変長パケットを蓄積することができる。更に、第1の出力バッファ4221は蓄積している可変長パケットがすべて出力されてバッファ内が空となる前に、第1の出力ポート側メモリ制御部4171に対して可変長パケットの転送を要求する第1のパケット転送要求信号4321を出力する。
【0067】
第1の出力ポート側メモリ制御部4171は、第1の出力ポート側メモリ4201内の1アドレスで指定される8Kビットの領域に書き込まれている可変長パケットを1回の読み出しサイクルで第1の出力バッファ4221に転送できる。第1の出力ポート側メモリ4201内の1アドレスで指定される8Kビットの領域に8Kビットの可変長パケットが格納されている場合、2.48832Gbpsで出力されるため、格納されている可変長パケットがすべて出力されるまで時間が3.292μ秒かかることになる。
【0068】
本実施例で第1〜第39の出力ポート側メモリ4201〜42039に着目すると、最大の書き込み速度は可変長パケットスイッチ回路104にあるすべての第1〜第39の入力ポート1051〜10539からパケットが入力される速度の総和になる。読み出し速度は出力ポートごとのパケットが出力される速度と一致する。したがって、複数の入力ポートから特定の出力ポートの宛先のパケットが入力することが集中するトラフィックの輻輳が発生する場合、特定の出力ポートの出力ポート側メモリに多くのパケットが急速に滞留する可能性がある。
【0069】
たとえば、第1の出力ポート側メモリ4201内に格納されている可変長パケットの蓄積量が設定されたしきい値を越えた場合を考える。本実施例では、図1に示した第1〜第39の入力インタフェース部1031〜10339には、図示しない大容量の輻輳吸収用のバッファを用意する。第1の出力ポート側メモリ制御部4171は、第1〜第39の入力インタフェース部1031〜10339に対して第1の出力ポート1061の宛先の可変長パケットの出力停止を要求する第1の出力停止要求信号4331を出力する。第1〜第39の入力インタフェース部1031〜10339は、第1の出力停止要求信号4331を受信すると、第1の出力ポート1061の宛先の可変長パケットのみを輻輳吸収用のバッファに一時的に蓄積する。第1の出力停止要求信号4331が解除された場合、第1の出力ポート1061の宛先の可変長パケットの出力を再開する。これにより、本実施例の可変長パケットスイッチ回路104で出力ポートごとに大容量のバッファを用意することなく、第1の出力ポート側メモリ4201のしきい値を越えて処理できなくなるオーバーフローを防ぐことができる。
【0070】
一般には複数の選択した転送先に同じパケットを転送するマルチキャスト、あるいは転送できるすべての転送先に同じパケットを転送するブロードキャストを実現し、スイッチの処理能力を上げるために出力バッファ型スイッチが用いられる。この出力バッファ型スイッチの場合、スイッチング自体の速度を示すスイッチコアの転送速度Sは次式(1)で表わされる。
【0071】
S=NV/B ・・・(1)
【0072】
(1)式で使用されている変数Nはポート数、変数Vはポート速度、および変数Bはスイッチ内でのパラレル展開数を表わしている。パラレル展開数Bを大きくすることによって、スイッチコアの転送速度Sを下げることができる。しかし、パケット単位で転送を行う場合、パラレル展開数Bよりもパケット長の短いパケットを転送するとき、余剰帯域が発生してスイッチ容量が低下する問題が発生する。したがって、パラレル展開数Bは転送パケットの最小パケット長であるATM(Asynchronous Transfer Mode:非同期転送モード)セルや最小IPパケットのサイズとなり大きい値にできない。また、スイッチ回路の大規模化を図ると、ポート数Nやポート速度Vの上昇をもたらし、スイッチコアの転送速度Sの著しい上昇をもたらすため、実現が困難であった。
【0073】
本実施例は出力バッファ型スイッチであるが、1アドレスで指定されるデータ領域を数Kビットまで拡張して、1アドレスで指定される全データ領域に対して1回の書き込みサイクルおよび読み出しサイクルで行うことができる。また、出力ポートごとの選択バッファ4131〜41339が出力ポートごとの有効情報信号4141〜41439に基づき、入力側データバス408上に出力された複数の可変長パケットから、必要な可変長パケットのみを選択して格納することができる。パラレル展開数Bを数Kビットとして、スイッチコアの転送速度Sを大幅に削減することによって、超大容量のスイッチ回路を構築できる。たとえば、本実施例のパケットスイッチ回路104を既存のメモリアクセス性能(DRAM)を適用して1チップで実現する場合、1チップで約100Gbps(97.52Gbps=8Kビット/84n秒)のスイッチ容量となる。
【0074】
変形例
【0075】
図9は本発明の変形例として入力される可変長パケットの異なる伝送レートを混在させた図4に示した可変長パケットスイッチ回路における入力ポート側の変形を表わしたものである。この変形例では、図4で示した第1〜第39の入力ポート1051〜10539に対応する構成の一部分を第1〜第42の入力ポート9011〜90142に対応する構成の一部分としたものであり、その他の構成は図4と同一であり図示および説明を省略する。この図で図4と同一部分には同一の符号を付しており、これらの説明を適宜省略する。この変形例では、第1〜第4の4個の入力ポート9011〜9014の最大伝送レートを622.08Mbps(メガビット/秒)とし、第5〜第42の入力ポート9015〜90142の最大伝送レートを2.48832Gbpsとしている。第1〜第42の入力バッファ9021〜90242の容量は同じ容量(8Kビット)とする。また、第1〜第4の入力バッファ9021〜9024に蓄積されている可変長パケットを入力ポート側メモリ409へ転送する周期は、第5〜第42の入力バッファ9025〜90242の転送周期の4倍とする。すなわち、第1〜第4の入力バッファ9021〜9024から入力ポート側メモリ409への転送は13.12μ秒(3.28μ秒×4)ごとに行われる。
【0076】
図10は、変形例における入力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)は図5(a)に示した時間の経過と同一である。入力ポート側メモリ409に対しての同図(b)で示す第1〜第42の入力バッファ9021〜90242からの書き込みおよび同図(c)で示す入力ポート側データバス408への読み出しは交互に行われている。第1〜第4の入力バッファ9021〜9024のいずれかの書き込み513、第5の入力バッファ9025の書き込み514、第6の入力バッファ(図示せず)の書き込み515の番号順で繰り返し行われる。第1〜第4の入力バッファ9021〜9024のいずれかの書き込み513は、第1〜第4の入力バッファ9021〜9024の番号順で繰り返し行われる。これにより、第1〜第4の入力バッファ9021〜9024の各転送周期を第5〜第42の入力バッファ9025〜90242の4倍とすることができる。入力ポート側メモリ409からの読み出し516〜518は、図5と同様に周期84n秒で入力ポート側メモリ409に書き込まれたアドレス順で行われる。
【0077】
この変形例では、第1〜第42の入力ポート9011〜90142から入力される可変長パケットの最大伝送レートの総和は97.04Gbps(622.08Mbps×4+2.48832Gbps×38)となる。これは図4で示したすべての入力ポートから入力される最大伝送レートが同じである場合の伝送レートの総和97.04Gbps(2.48832Gbps×39)と等しくなる。したがって、スイッチ容量を落とさずに入力の異なる最大伝送レートを混在させたパケットスイッチ回路が実現できる。
【0078】
発明のその他の変形可能性
【0079】
以上説明した実施例では、可変長パケットを対象にしてきたが、固定長パケットについても適用するものにしてもよい。また、バッファからメモリへの転送の周期を一定周期で説明したが、それぞれの入力ポートからのデータ伝送速度に対応して周期を変えてもよい。同様にしてメモリからバッファの転送の周期においても、アドレスに格納されたデータ量に対応して周期を変えてもよい。本実施例では容易な制御によるパケット転送を説明したが、転送周期を変えることによって更にパケット転送を効率良く行うことができる。また、有効情報圧縮スイッチ416は2入力2出力のセレクタを用いて構成したが、他にもクロスバースイッチを用いて構成してもよい。
【0080】
また本実施例では、有効情報信号414に基づいて可変長パケットを選択して格納するようにしたが、次に説明するようにしてもよい。入力ポート側データバス408上に出力されたパケットは、一旦すべて選択バッファ413に格納するようにする。出力されたすべてのパケットが一旦格納された後、有効情報信号414と共に有効情報圧縮スイッチ416にデータバス415を介して送られる。有効情報圧縮スイッチ416の前段に不要なパケットを廃棄する機能を備えて廃棄することも可能である。このとき、選択バッファ413は単なるバッファの機能のみの動作をすることになる。データバス415上のデータ列の有効情報と有効情報の間には不要なデータが存在することになるので廃棄する機能が必要になる。また、データバス415上のデータ列に不要なデータを伝送しないために、選択バッファ413の後段に不要なパケットを廃棄する機能を備えて一旦すべてのパケットを格納した後に廃棄することも可能である。
【0081】
更に実施例では、出力ポート側メモリ420にデータを書き込むとき、最後尾のアドレスの空き領域が足りない場合、そのアドレスには書き込まず次のアドレスに書き込むようにした。このような1アドレスで指定される領域での空き領域が不足する問題を解決するためには、たとえば出力ポート側メモリ420を2つ設けるようにすればよい。2つの出力ポート側メモリ420をそれぞれAメモリおよびBメモリとする。また、出力ポート側データバス419、AメモリおよびBメモリの1アドレスで指定されるビット幅を4ビットとして図7で示した有効情報圧縮スイッチ701を用いて説明する。
【0082】
まず、書き込み制御について説明する。有効情報圧縮スイッチ701で出力されるデータが4ビットであるとする。まずAメモリの1アドレスで指定される領域のまだデータが書き込まれていない領域に書き込むが、Aメモリの1ビット目から3ビット目はすでに前回データが書き込まれている場合を想定する。この場合、新たなデータをAメモリの4ビット目に書き込み、残りの3ビットのデータをBメモリに書き込むようにする。有効情報圧縮スイッチ701では、第1の入力ポート7021に入力された1ビット目のデータを第4の出力ポート7034に4ビット目のデータとして出力するようにする。また、第2〜第4の入力ポート7022〜7024にそれぞれ入力された残りの3ビットのデータは、第1〜第3の出力ポート7031〜7033にそれぞれ出力するようにする。これらの動作は図7で説明したように対応するセレクタを経由することによって行うことができる。したがって、第4の出力ポート7034から出力されるデータはAメモリに書き込むデータとして、第1〜第3の出力ポート7031〜7033からそれぞれ出力されるデータはBメモリに書き込むデータとして配列されることになる。AメモリおよびBメモリへの書き込みは同じ書き込みサイクルで同時に行う。次の書き込みサイクルの書き込みデータは、Bメモリの1アドレスで指定される領域のまだ書き込まれていない領域に書き込みを行う。データがBメモリのまだ書き込まれていない領域に書き込みきれない場合、前述した手順でBメモリへの書き込みと、書き込みきれなかった残りのデータのAメモリへの書き込みを同時に行う。この書き込み制御で書き込みデータがAメモリおよびBメモリにそのまま転送される場合、それぞれのメモリに不必要なデータを廃棄するか、あるいはデータを更新する処理が必要になる。読み出し制御については、Aメモリ、Bメモリの1アドレスごと交互に読み出しを行う。したがって、メモリの1アドレスで指定されるビット幅のデータを順に書き込むことができるので、さらにデータの転送の効率化を図ることができる。
【0083】
【発明の効果】
以上説明したように請求項1記載の発明によれば、入力側蓄積手段から1回で取り出した全データに対して1つのアドレスを割り当ててデータの格納等の処理を行うので、1回分のデータであればこれが複数パケットで構成されていても一度に処理されることになり1パケットずつスイッチングする従来の処理に比べてスイッチングのための処理能力を向上させることができる。また、特定のパケットに対して宛先判別手段で判別される出力側蓄積手段を複数の出力側蓄積手段に指定することにより、パケットを選択する複数の出力路に出力するマルチキャストあるいはすべての出力路に出力するブロードキャストが容易に実現できる。
【0084】
また請求項2記載の発明によれば、入力側蓄積手段ごとに蓄積されたパケットを取り出す周期をデータの最大伝送速度に対応して設定しているので、比較的高速の入力路を伝送されてきたデータをそれよりも遅い入力路を伝送されてきたデータよりも短い周期でスイッチングすることができる。また、個々のデータ格納領域に格納されるデータ量を均一化することができるので、効率的なデータ処理を行うことができる。これにより、1転送サイクルでほぼ一定の転送帯域を確保することができる。また、特定のパケットに対して宛先判別手段で判別される出力側蓄積手段を複数の出力側蓄積手段に指定することにより、パケットを選択する複数の出力路に出力するマルチキャストあるいはすべての出力路に出力するブロードキャストが容易に実現できる。
【0085】
更に請求項3記載の発明によれば、データ格納手段の1つのアドレスに複数のパケットが格納されていてもこれらを同時にすべてのパケット選択手段に読み出し、該当するパケットを選択することができる。また、特定のパケットに対して宛先判別手段で判別される出力側蓄積手段を複数の出力側蓄積手段に指定することにより、パケットを選択する複数の出力路に出力するマルチキャストあるいはすべての出力路に出力するブロードキャストが容易に実現できる。
【0086】
また請求項4の発明によれば、1つのアドレスの全データをパラレルにかつすべてのパケット選択手段に並行して伝送することができる。このため、1つのアドレスの全データを1回のサイクルで伝送することができ、1つのアドレスに割り当てられるデータを増加させることにより、大容量のパケットのスイッチングが可能になる。
【0087】
更に請求項5記載の発明によれば、入力路の異なるデータ伝送速度や単位時間当たり格納されるアドレス単位の異なるデータの量に対応した周期でデータを伝送するので、効率良くデータを処理することを可能にしている。
【0088】
また請求項6記載の発明によれば、パケット選択手段によって選択されたパケットをパケット格納手段のメモリ領域の空いている領域に格納することによって、パケットを出力路に効率良く出力することができる。
【0089】
更に請求項7記載の発明によれば、パケット選択手段の選択したパラレルデータを1回のサイクルで転送することができ、転送の処理が高速化する。また、パケット同士の間隔を詰めて転送するので、受信側の処理が効率化する。
【図面の簡単な説明】
【図1】本発明の一実施例における可変長パケットスイッチ回路を使用したルータの構成を表わした構成図である。
【図2】本実施例で可変長パケットの一例としてPPPフレームのフォーマットを表わした説明図である。
【図3】本実施例で図1で示した入力インタフェース部によって変換された可変長パケットの装置内フレームのフォーマットを表わした説明図である。
【図4】本実施例で図1に示した可変長パケットスイッチ回路の構成を表わした構成図である。
【図5】本実施例で入力ポート側メモリに対するアクセス制御のタイミングを表わしたタイミング図である。
【図6】本実施例で出力ポート側メモリへの可変長パケット書き込み制御の様子を表わした説明図である。
【図7】本実施例で有効情報圧縮スイッチの一例として2入力2出力のセレクタを用いた構成を表わした構成図である。
【図8】本実施例で出力ポート側メモリに対するアクセス制御のタイミングを表わしたタイミング図である。
【図9】本発明の変形例として入力される可変長パケットの異なる伝送レートを混在させた図4に示した可変長パケットスイッチ回路における入力ポート側の変形を表わした構成図である。
【図10】変形例における入力ポート側メモリに対するアクセス制御のタイミングを表わしたタイミング図である。
【図11】従来提案されたパケットスイッチ回路の構成を表わした構成図である。
【図12】従来提案されたアクセスメモリ制御を用いたパケットスイッチ回路の構成を表わした構成図である。
【図13】図12に示したパケットスイッチ回路のスイッチメモリ内のアクセスメモリ制御によるパケットのスイッチングを説明した説明図である。
【符号の説明】
104 可変長パケットスイッチ回路
105 入力ポート
106 出力ポート
401 入力線
402 出力ポート情報抽出部
403 出力ポート情報信号
404 出力ポート判定部
405 入力バッファ
407 パケット位置情報信号
408 入力ポート側データバス
409 入力ポート側メモリ
410 入力ポート側メモリ制御部
411、412、421、423 出力制御信号
413 選択バッファ
414 有効情報信号
415 データバス
416 有効情報圧縮スイッチ
417 出力ポート側メモリ制御部
418 先頭位置信号
419 出力ポート側データバス
420 出力ポート側メモリ
422 出力バッファ
424 出力線
425、427、430 アドレス情報信号
426 通知信号
428、431 リードライト制御信号
429 有効情報長信号
432 パケット転送要求信号
433 出力停止要求信号[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a packet switch circuit used in a packet communication network, and more particularly to a packet switch circuit for switching a variable-length packet.
[0002]
[Prior art]
2. Description of the Related Art In recent years, the amount of data communication in a packet communication network is rapidly increasing due to factors such as the spread of multimedia services. In particular, in a router connected to a backbone network or the like having a large data traffic, switching of a large number of packets is performed, and a large amount of data is handled. Accordingly, there is a demand for an increase in the switch capacity of the packet switch circuit, that is, the amount of data that can be processed per unit time. However, when the packet input to the packet switch circuit is a variable-length packet, the switching process is more complicated than that of the fixed-length packet, making it difficult to increase the switch capacity. For this reason, various devices have been conventionally devised for switching variable-length packets.
[0003]
FIG. 11 shows a configuration of a conventionally proposed packet switch circuit that realizes switching of variable-length packets. The
[0004]
On the output side of the
[0005]
The
[0006]
However, when a path is set between an input port and an output port, a problem of switching delay may occur. For example, in a situation where a packet destined for the same output port is simultaneously input to a plurality of input ports, another input port switches packets of the same destination until one input port finishes switching packets. Can not start. Since the switching is started in order from the input packet, the packets input one after another are also subjected to the switching. Therefore, when packets destined for the same output port are concentrated or when the number of decomposed small packets is large, many packets waiting for switching may occur. In addition, if an additional function of starting the switching of another packet by delaying the switching of the waiting packet is added, there arises a problem that the processing of the
[0007]
Therefore, a packet switch circuit that solves the problem of switching delay has been conventionally proposed. In a packet switch circuit as one of these proposals, periodic switching is performed by using general access memory control, that is, by periodically performing writing and reading of data.
[0008]
FIG. 12 shows a configuration of a conventionally proposed packet switch circuit using such access memory control. The
[0009]
FIG. 13 is a diagram for simply explaining packet switching by access memory control in the switch memory. The packet input to the switch memory shown in FIG. 12 is serially received by the
[0010]
[Problems to be solved by the invention]
[0011]
In the proposed
[0012]
Accordingly, an object of the present invention is to provide a packet switch circuit having a large switch capacity independent of the packet length.
[0013]
[Means for Solving the Problems]
According to the first aspect of the present invention, there are provided (a) an input-side storage unit which is arranged corresponding to each of a plurality of input paths and sequentially stores packets to which destinations are added; (C) data storage means for periodically fetching the packets stored in each of them and allocating one common address to all the data for each input-side storage means fetched at one time and storing them in address units; An output-side storage unit that is arranged corresponding to each of the plurality of output paths and sequentially stores packets; and (d) packets to be transmitted for each of the data constituting the data for each address stored in the data storage unit. Destination determining means for determining the output-side storage means from the destination; and (e) periodically extracting data in address units from the data storage means, and Packet distribution means for distributing each packet to a corresponding output-side storage means using the determination result; and (f) output-path-specific packet output control means for sequentially outputting the packets stored in each of the output-side storage means. A packet switch circuit is provided.
[0014]
In other words, according to the first aspect of the present invention, the packet switch circuit allocates one address to all data taken out at one time each time data is taken out from the input storage means arranged corresponding to each input path. In the data storage means. The destination of these stored data is determined for each packet by destination determining means. The packet distribution unit periodically retrieves data from the data storage unit in address units in order, and uses the determination result of the destination determination unit to transfer each packet constituting data of one address to the corresponding output side storage unit. It is to be sorted. Therefore, according to the present invention, even when data assigned to one address is composed of a plurality of packets, these can be collectively processed in address units. For this reason, even when packets of relatively small size are concentrated, the processing efficiency does not decrease, and the amount of data that can be switched by the packet switch circuit per time varies depending on the length of the variable-length packet. Can be eliminated.
[0015]
According to the second aspect of the present invention, (a) input-side storage means which is arranged corresponding to each of a plurality of input paths for which the maximum transmission rate of data is individually set and sequentially stores packets to which destinations are added; (B) Packets stored in each of these input-side storage units are extracted at a preset cycle for each input-side storage unit to a value that becomes shorter as the maximum data transmission speed is higher, and are extracted at one time. Data storage means for allocating one common address to all data for each input-side storage means and storing them in address units; and (c) arranging them in correspondence with each of a plurality of output paths and sequentially transmitting packets. Output-side storage means for storing, and (d) respective output-side storage means to which packets constituting the data for each address stored in the data storage means are to be transmitted Destination determining means for determining from a destination, and (e) each time one of the packets stored in the input-side storing means is stored in the data storing means, sequentially retrieves data in address units from the data storing means, and Packet distributing means for distributing each packet to the corresponding output-side storage means using the result of the determination, and (f) output-path-specific packet output control means for sequentially outputting the packets stored in each of the output-side storage means. Is provided in the packet switch circuit.
[0016]
In other words, in the invention according to
[0017]
According to the third aspect of the present invention, (a) input-side storage means arranged corresponding to each of a plurality of input paths and sequentially storing packets whose destinations are indicated, and (b) these input-side storage means. (C) data storage means for periodically taking out the packets stored in the storage unit, allocating one common address to all the data taken out at one time for each input side storage means, and storing the same in address units; Destination determining means for determining from the destination the destination of each packet constituting the data for each address stored in the storage means; and (d) sequentially determining the data determined by the destination determining means from the data storage means in address units. (E) Each time the data reading means reads data in address units, it uses the corresponding discrimination result of the destination discriminating means. A packet selecting means provided for each output port for selecting only a packet of a destination to be taken in by itself; and (f) an output path arranged corresponding to these packet selecting means and sequentially selecting the selected packets. And an output path-specific packet output means for outputting to the packet switch circuit.
[0018]
In other words, in the invention according to claim 3, the packet switch circuit allocates one address to all data taken out at one time each time data is taken out from the input storage means arranged corresponding to each input path. In the data storage means. The destination of these stored data is determined for each packet by destination determining means. The data reading means periodically and sequentially reads data from the data storage means in address units and sends the data to the packet selecting means provided for each output port. In these packet selecting means, only the packet of the destination to be taken in by itself is selected from the packet using the corresponding determination result of the destination determining means. Therefore, according to the present invention, even when data assigned to one address is composed of a plurality of packets, these can be collectively processed in address units. For this reason, even when packets of relatively small size are concentrated, the processing efficiency does not decrease, and the amount of data that can be switched by the packet switch circuit per time varies depending on the length of the variable-length packet. Can be eliminated. In addition, according to the present invention, the control up to the process of sending data to each packet selecting means can be simplified, and the processing speed can be increased.
[0019]
According to a fourth aspect of the present invention, in the packet switch circuit according to the third aspect, the input-side storage means is means for sequentially inputting and storing packets as serial data from respective input paths, and for each of the data reading means and the output port. A transmission path for transmitting all data of one address in parallel and in parallel to all packet selecting means is provided between the provided packet selecting means.
[0020]
In other words, according to the fourth aspect of the present invention, transmission between the data reading means and the packet selection means provided for each output port, wherein all data of one address is transmitted in parallel and in parallel to all packet selection means. Road is located. Therefore, it becomes possible to transmit all data of one address at a time.
[0021]
According to a fifth aspect of the present invention, in the packet switch circuit according to the third aspect, the data storage means fetches and stores data in address units from the corresponding input side storage means at a cycle inversely proportional to the data transmission speed of each input path. The data reading means is means for reading data from the data storage means in address units at a period inversely proportional to the amount of data in address units stored in the data storage means per unit time. .
[0022]
That is, in the invention according to the fifth aspect, the data storage means takes out and stores the data of the address unit from the corresponding input side storage means at a cycle inversely proportional to the data transmission speed of each input path, and the data reading means stores the data. Data is read from the data storage means in address units at a period inversely proportional to the amount of data in address units stored in the storage means per unit time. Therefore, efficient data transfer can be achieved with relatively few hardware.
[0023]
According to a sixth aspect of the present invention, in the packet switch circuit according to the third aspect, the packet output means for each output path can store a plurality of sets of data having the same amount as all the data taken out at one time, in a predetermined order. By designating these memory areas, the data is read out in units of memory area. The packet storage means and the packet selection means reduce the total data amount each time a destination packet to be captured is selected. Means for calculating the amount of data to be calculated, and prior to transferring the packet of the amount of data calculated by the means for calculating the amount of data, the free space and the amount of data in the oldest set of memory areas from which the packet storage means have not been read out. Comparing means for comparing the data amount calculated by the calculating means, and comparing the data amount by the comparing means with the oldest set of memory areas When the amount is equal to or less than the amount, all the packets selected by the packet selecting means are transferred to the memory area, and otherwise, all the packets are transferred to the memory area to be read next to the oldest set of memory areas. And a packet transfer means.
[0024]
According to the sixth aspect of the present invention, the output path-specific packet output means in the third aspect of the invention is embodied. The output path-specific packet output means can store a plurality of sets of data having the same amount as all the data taken out at one time, and by specifying these memory areas in a predetermined order, the data is read out in memory area units. And a packet storage means. Since data is read in units of memory areas of the packet storage means, as many packets as possible need to be stored in each memory area in order to perform reading once efficiently. There is. Therefore, in the present invention, the data amount calculating means calculates the entire data amount every time the packet of the destination to be captured is selected by the packet selecting means. Before transferring the packet of the data amount calculated by the data amount calculation unit, the comparison unit calculates the free space of the oldest set of memory areas from which the packet storage unit has not been read and the data amount calculation unit. The amount of data obtained is compared. As a result, when the compared data amount to be transferred is less than the free space of the oldest set of memory areas, all the packets selected by the packet selecting means are transferred to the corresponding memory area, and Data is read out together with the stored data. If the compared data amount to be transferred is larger than the free space of the oldest set of memory areas, it is not possible to pack all of these packets into the corresponding free area of the memory area. Therefore, in this case, all these packets are transferred to a memory area to be read next to the memory area. By making such a contrivance, for example, when the packet selecting means selects packets with a small amount of data at one time, the packets are not transferred separately by the packet transferring means, but are transferred several times. Can be transferred collectively, so that the packet can be efficiently output to the output path. Various forms are conceivable for the transfer form to the output path.
[0025]
According to a seventh aspect of the present invention, in the packet switch circuit according to the sixth aspect, the packet transfer means includes a rearrangement means for rearranging the packets selected by the packet selection means without gaps, and the packet transfer means uses the rearrangement means It is characterized in that the rearranged packets are collectively transferred in parallel.
[0026]
That is, in the invention according to claim 7, the packet transfer means includes the rearrangement means for rearranging the packets selected by the packet selection means without gaps. The packet transfer means collectively transfers each packet rearranged by the rearrangement means in parallel. This speeds up the transfer process as compared to serial transfer. In addition, since the packets are transferred with the interval therebetween being shortened, the processing on the receiving side is made more efficient.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
[0028]
【Example】
Hereinafter, the present invention will be described in detail with reference to examples.
[0029]
FIG. 1 shows a configuration of a router using a variable length packet switch circuit according to an embodiment of the present invention. The
[0030]
First to
[0031]
FIG. 2 shows a format of a PPP frame as an example of an input variable length packet. The variable-
[0032]
FIG. 3 shows the format of an in-device frame of a variable-length packet converted by the input interface unit shown in FIG. The variable-
[0033]
The determination of the output port will be further described. The determination of the output port requires information stored in the
[0034]
FIG. 4 shows the configuration of the variable length packet switch circuit shown in FIG. In the above description, the number of input ports and the number of output ports are represented by values N as generalized numerical values. Hereinafter, the case where the value N is “39” will be specifically described. Of course, the value N is not limited to this value. The variable-length
[0035]
Similarly, the first to
[0036]
First to 39th input buffers 4061~ 40639Are connected to an input
[0037]
[0038]
Similarly, each of the first to 39th selection buffers 4131~ 41339The variable-length packets stored in the first to 39th effective information compression switches 4162~ 41639, First to 39 th output
[0039]
In this embodiment, the input
[0040]
Also, the first to 39th input buffers 4061~ 40639The packet transfer cycle from the to the input
[0041]
FIG. 5 shows the timing of access control to the input port side memory. FIG. 9A shows the passage of time in the order of
[0042]
4 th to 39 th output port
[0043]
[0044]
The input port side
[0045]
Similarly, writing of data to the input
[0046]
As described above, every time data is written to the input
[0047]
The output
[0048]
The input port side
[0049]
In the access control described above, writing and reading of data in the input
[0050]
First to 39th selection buffers 4131~ 41339Perform the same operation, and therefore, the
[0051]
Next, the first to 39th input buffers 4061~ 40639The transfer of the variable length packet from the to the input
[0052]
Input port information is added to the divided packets, and the first to 39th
[0053]
First to 39th
[0054]
Returning to FIG. 4 again, the first to 39 th selection buffers 4131~ 41339To the
[0055]
FIG. 6 shows how variable-length packet writing to the output port side memory is controlled. FIG. 12A shows the first output port side memory 420.11 shows a
[0056]
First effective
[0057]
[0058]
First effective
[0059]
First output port side
[0060]
First effective
[0061]
FIG. 7 shows a basic configuration in the case where the basic operation of the effective information compression switch is configured using a two-input two-output selector. In this embodiment, the
[0062]
This valid
[0063]
This first valid
[0064]
FIG. 8 shows the timing of access control to the output port side memory. FIG. 7A shows the passage of time in the order of
[0065]
First output
[0066]
[0067]
First output port side
[0068]
In the present embodiment, the first to 39th output
[0069]
For example, the first output
[0070]
In general, an output buffer type switch is used to realize multicast that transfers the same packet to a plurality of selected transfer destinations or broadcast that transfers the same packet to all transfer destinations that can be transferred, and to increase the processing capability of the switch. In the case of this output buffer type switch, the transfer speed S of the switch core indicating the speed of the switching itself is expressed by the following equation (1).
[0071]
S = NV / B (1)
[0072]
The variable N used in the equation (1) represents the number of ports, the variable V represents the port speed, and the variable B represents the number of parallel expansions in the switch. By increasing the number of parallel developments B, the transfer speed S of the switch core can be reduced. However, in the case of transferring in packet units, when transferring a packet having a packet length shorter than the number of parallel developments B, a problem occurs in that a surplus bandwidth is generated and the switch capacity is reduced. Therefore, the number B of parallel development becomes the size of an ATM (Asynchronous Transfer Mode) cell or the minimum IP packet which is the minimum packet length of the transfer packet, and cannot be set to a large value. In addition, when the scale of the switch circuit is increased, the number of ports N and the port speed V are increased, and the transfer speed S of the switch core is significantly increased.
[0073]
The present embodiment is an output buffer type switch. The data area specified by one address is extended to several K bits, and the entire data area specified by one address is written in one write cycle and one read cycle. It can be carried out. The
[0074]
Modified example
[0075]
FIG. 9 shows a modification of the input port side in the variable length packet switch circuit shown in FIG. 4 in which different transmission rates of variable length packets inputted as a modification of the present invention are mixed. In this modification, the first to
[0076]
FIG. 10 shows the timing of access control to the input port side memory in the modification. FIG. 5A is the same as the elapse of time shown in FIG. The first to forty-second input buffers 902 shown in FIG.1~ 90242And the reading to the input port
[0077]
In this modification, the first to
[0078]
Other variants of the invention
[0079]
In the embodiment described above, variable-length packets are targeted, but the present invention may be applied to fixed-length packets. Further, although the transfer cycle from the buffer to the memory has been described as a fixed cycle, the cycle may be changed according to the data transmission speed from each input port. Similarly, in the transfer cycle from the memory to the buffer, the cycle may be changed according to the amount of data stored in the address. In this embodiment, the packet transfer by the easy control has been described. However, the packet transfer can be more efficiently performed by changing the transfer cycle. Further, the effective
[0080]
Further, in the present embodiment, the variable length packet is selected and stored based on the
[0081]
Further, in the embodiment, when writing data to the output
[0082]
First, the write control will be described. It is assumed that the data output from the effective
[0083]
【The invention's effect】
As described above, according to the first aspect of the present invention, one address is assigned to all data extracted from the input storage means at a time, and processing such as data storage is performed. If this is the case, even if it is composed of a plurality of packets, it is processed at once, and the processing capacity for switching can be improved as compared with the conventional processing of switching one packet at a time. Also, by designating the output-side storage means determined by the destination determination means for a specific packet to a plurality of output-side storage means, multicast output to a plurality of output paths for selecting a packet or all output paths can be performed. The broadcast to be output can be easily realized.
[0084]
According to the second aspect of the present invention, since the cycle for extracting the packets stored for each input-side storage means is set in accordance with the maximum transmission rate of data, a relatively high-speed input path is transmitted. Data can be switched in a shorter cycle than data transmitted over a slower input path. In addition, since the amount of data stored in each data storage area can be equalized, efficient data processing can be performed. Thereby, a substantially constant transfer band can be secured in one transfer cycle. Also, by designating the output-side storage means determined by the destination determination means for a specific packet to a plurality of output-side storage means, multicast output to a plurality of output paths for selecting a packet or all output paths can be performed. The broadcast to be output can be easily realized.
[0085]
Furthermore, according to the third aspect of the present invention, even if a plurality of packets are stored in one address of the data storage means, these can be read out to all the packet selection means at the same time and the corresponding packet can be selected. Also, by designating the output-side storage means determined by the destination determination means for a specific packet to a plurality of output-side storage means, multicast output to a plurality of output paths for selecting a packet or all output paths can be performed. The broadcast to be output can be easily realized.
[0086]
According to the invention of
[0087]
According to the fifth aspect of the present invention, data is transmitted at a cycle corresponding to different data transmission speeds of input paths and different amounts of data stored in address units per unit time, so that data can be processed efficiently. Is possible.
[0088]
According to the invention of claim 6, by storing the packet selected by the packet selecting means in an empty area of the memory area of the packet storing means, the packet can be efficiently output to the output path.
[0089]
Further, according to the invention of claim 7, the parallel data selected by the packet selecting means can be transferred in one cycle, and the transfer processing is speeded up. In addition, since the packets are transferred with the interval therebetween being shortened, the processing on the receiving side is made more efficient.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a configuration of a router using a variable length packet switch circuit according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram showing a format of a PPP frame as an example of a variable length packet in the embodiment.
FIG. 3 is an explanatory diagram showing a format of an in-device frame of a variable-length packet converted by the input interface unit shown in FIG. 1 in the embodiment.
FIG. 4 is a configuration diagram illustrating a configuration of a variable-length packet switch circuit illustrated in FIG. 1 in the present embodiment.
FIG. 5 is a timing chart showing the timing of access control to the input port side memory in the present embodiment.
FIG. 6 is an explanatory diagram showing a state of controlling variable-length packet writing to an output port side memory in the present embodiment.
FIG. 7 is a configuration diagram showing a configuration using a two-input, two-output selector as an example of an effective information compression switch in the present embodiment.
FIG. 8 is a timing chart showing the timing of access control to the output port side memory in this embodiment.
9 is a configuration diagram showing a modification on the input port side of the variable length packet switch circuit shown in FIG. 4 in which different transmission rates of variable length packets input as a modification of the present invention are mixed.
FIG. 10 is a timing chart showing timing of access control to an input port side memory in a modified example.
FIG. 11 is a configuration diagram showing a configuration of a conventionally proposed packet switch circuit.
FIG. 12 is a configuration diagram showing a configuration of a conventionally proposed packet switch circuit using access memory control.
13 is an explanatory diagram illustrating packet switching by access memory control in a switch memory of the packet switch circuit illustrated in FIG. 12;
[Explanation of symbols]
104 Variable Length Packet Switch Circuit
105 input port
106 output port
401 input line
402 Output Port Information Extraction Unit
403 Output port information signal
404 Output port judgment unit
405 input buffer
407 packet position information signal
408 Input port side data bus
409 Input port side memory
410 Input port side memory control unit
411, 412, 421, 423 Output control signal
413 Selection buffer
414 Valid information signal
415 Data bus
416 Effective information compression switch
417 Output port side memory controller
418 Start position signal
419 Output port side data bus
420 Output port side memory
422 output buffer
424 output line
425, 427, 430 Address information signal
426 Notification signal
428, 431 Read / write control signal
429 Effective information length signal
432 packet transfer request signal
433 output stop request signal
Claims (7)
これらの入力側蓄積手段のそれぞれに蓄積されたパケットを周期的に取り出して1回で取り出した入力側蓄積手段ごとの全データに対して共通した1つのアドレスを割り当てこれらをアドレス単位で格納するデータ格納手段と、
複数の出力路のそれぞれに対応して配置され、パケットを順次蓄積する出力側蓄積手段と、
前記データ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットの送出されるべきそれぞれの出力側蓄積手段を前記宛先から判別する宛先判別手段と、
前記データ格納手段からアドレス単位でデータを順に周期的に取り出して、宛先判別手段の判別結果を用いて各パケットをそれぞれ対応する出力側蓄積手段に振り分けるパケット振分手段と、
前記出力側蓄積手段のそれぞれに蓄積されたパケットを順次出力させる出力路別パケット出力制御手段
とを具備することを特徴とするパケットスイッチ回路。Input-side storage means that is arranged corresponding to each of the plurality of input paths and sequentially stores packets to which destinations are added;
Data that periodically retrieves packets stored in each of these input-side storage units, allocates one common address to all data for each input-side storage unit that is extracted at one time, and stores them in address units Storage means;
Output-side storage means that is arranged corresponding to each of the plurality of output paths and sequentially stores packets;
Destination discriminating means for discriminating, from the destination, each output-side accumulating means to which packets constituting the data are transmitted for each address stored in the data storing means,
Packet distribution means for periodically fetching data from the data storage means in address units in order and allocating each packet to a corresponding output-side storage means using the result of determination by the destination determination means;
A packet switch circuit comprising: an output-path-based packet output control means for sequentially outputting packets stored in each of the output-side storage means.
これらの入力側蓄積手段のそれぞれに蓄積されたパケットをデータの最大伝送速度が速いほど短くなるような値に予め設定された入力側蓄積手段ごとの周期で取り出して、1回で取り出した入力側蓄積手段ごとの全データに対して共通した1つのアドレスを割り当てこれらをアドレス単位で格納するデータ格納手段と、
複数の出力路のそれぞれに対応して配置され、パケットを順次蓄積する出力側蓄積手段と、
前記データ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットの送出されるべきそれぞれの出力側蓄積手段を前記宛先から判別する宛先判別手段と、
前記入力側蓄積手段に蓄積されたパケットのいずれかが前記データ格納手段に格納されるたびに前記データ格納手段からアドレス単位でデータを順に取り出して、宛先判別手段の判別結果を用いて各パケットをそれぞれ対応する出力側蓄積手段に振り分けるパケット振分手段と、
前記出力側蓄積手段のそれぞれに蓄積されたパケットを順次出力させる出力路別パケット出力制御手段
とを具備することを特徴とするパケットスイッチ回路。Input-side storage means arranged corresponding to each of the plurality of input paths for which the maximum transmission rate of data is individually set, and sequentially storing packets to which destinations are added;
The packets stored in each of these input-side storage means are extracted at a cycle set for each of the input-side storage means to a value set to be shorter as the maximum data transmission speed is higher, and the input side extracted at one time. Data storage means for allocating one common address to all data for each storage means and storing them in address units;
Output-side storage means that is arranged corresponding to each of the plurality of output paths and sequentially stores packets;
Destination discriminating means for discriminating, from the destination, each output-side accumulating means to which packets constituting the data are transmitted for each address stored in the data storing means,
Every time one of the packets stored in the input side storage means is stored in the data storage means, data is sequentially extracted from the data storage means in address units, and each packet is determined using the result of the destination determination means. Packet distribution means for distributing to the corresponding output side storage means,
A packet switch circuit comprising: an output-path-based packet output control means for sequentially outputting packets stored in each of the output-side storage means.
これらの入力側蓄積手段にそれぞれに蓄積されたパケットを周期的に取り出して入力側蓄積手段ごとの1回で取り出した全データに対して共通した1つのアドレスを割り当て、アドレス単位で格納するデータ格納手段と、
このデータ格納手段に格納されたアドレスごとのデータについてそれらを構成するパケットごとの送出先を前記宛先から判別する宛先判別手段と、
この宛先判別手段で判別したデータを前記データ格納手段からアドレス単位で順に読み出すデータ読出手段と、
このデータ読出手段がアドレス単位にデータを読み出すたびに前記宛先判別手段の対応する判別結果を使用してこの中から自己の取り込むべき宛先のパケットのみを選択する出力ポートごとに設けられたパケット選択手段と、
これらのパケット選択手段に対応して配置され、選択されたパケットを順次対応する出力路に出力する出力路別パケット出力手段
とを具備することを特徴とするパケットスイッチ回路。An input-side storage unit that is arranged corresponding to each of the plurality of input paths and sequentially stores packets whose destinations are indicated;
Data storage for periodically extracting packets stored in these input-side storage means, assigning a common address to all data extracted once for each input-side storage means, and storing the data in address units Means,
Destination determining means for determining, from the destination, a destination of each packet constituting the data for each address stored in the data storage means,
Data reading means for sequentially reading the data determined by the destination determining means from the data storage means in address units;
Each time the data reading means reads data in address units, a packet selecting means provided for each output port for selecting only a packet of a destination to be taken in by using the corresponding judgment result of the destination judging means. When,
A packet switch circuit, comprising: output path-specific packet output means arranged corresponding to these packet selection means and for sequentially outputting selected packets to corresponding output paths.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001061044A JP3573095B2 (en) | 2001-03-06 | 2001-03-06 | Packet switch circuit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001061044A JP3573095B2 (en) | 2001-03-06 | 2001-03-06 | Packet switch circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002261797A JP2002261797A (en) | 2002-09-13 |
| JP3573095B2 true JP3573095B2 (en) | 2004-10-06 |
Family
ID=18920398
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001061044A Expired - Fee Related JP3573095B2 (en) | 2001-03-06 | 2001-03-06 | Packet switch circuit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3573095B2 (en) |
-
2001
- 2001-03-06 JP JP2001061044A patent/JP3573095B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002261797A (en) | 2002-09-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4334760B2 (en) | Networking system | |
| CN100405344C (en) | Apparatus and method for distributing buffer status information in a switch fabric | |
| US20020118706A1 (en) | Data packet transmission scheduling based on anticipated finish times | |
| WO2002091672A2 (en) | A system and a method for processing data packets or frames | |
| US7602809B2 (en) | Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability | |
| JPH10117200A (en) | Switch, cross-connect switching device, connection device, and routing method in switch | |
| JP2001217873A (en) | Method and device for deciding packet transmission priority of data streams and method for deciding transmission priority as to data packet between data streams | |
| US7079538B2 (en) | High-speed router | |
| JP3561870B2 (en) | Packet buffer device | |
| JP2000124953A (en) | Buffer control method and buffer control device | |
| US20020031092A1 (en) | Switching apparatus, communication apparatus, and communication system | |
| JPH11187052A5 (en) | ||
| EP1508225B1 (en) | Method for data storage in external and on-chip memory in a packet switch | |
| CN113518046B (en) | Message forwarding method and frame type switching equipment | |
| US20020075886A1 (en) | Data communication network switching unit having a systolic ring structure | |
| US20030152112A1 (en) | Inverse multiplexing via disparate links | |
| JP3573095B2 (en) | Packet switch circuit | |
| US6643702B1 (en) | Traffic scheduler for a first tier switch of a two tier switch | |
| US6914901B1 (en) | System and method for communicating using multiple memory banks | |
| JP2009177256A (en) | Packet switch apparatus and packet switch method | |
| KR100384996B1 (en) | Apparatus and Method for packet switching using ATM cell switching | |
| JP2009218778A (en) | Packet transmission system | |
| JP3543725B2 (en) | Packet switching device and packet switching method | |
| CN119210567B (en) | Broadband satellite onboard switching system based on multi-port dynamic allocation and shared multi-queue | |
| JPH07283813A (en) | Output buffer type atm switch |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040601 |
|
| 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: 20040608 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040621 |
|
| 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: 20070709 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |