Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3573095B2 - Packet switch circuit - Google Patents
[go: Go Back, main page]

JP3573095B2 - Packet switch circuit - Google Patents

Packet switch circuit Download PDF

Info

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
Application number
JP2001061044A
Other languages
Japanese (ja)
Other versions
JP2002261797A (en
Inventor
博行 菊地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001061044A priority Critical patent/JP3573095B2/en
Publication of JP2002261797A publication Critical patent/JP2002261797A/en
Application granted granted Critical
Publication of JP3573095B2 publication Critical patent/JP3573095B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はパケット通信網に使用されるパケットスイッチ回路に係わり、特に可変長パケットのスイッチングを行うパケットスイッチ回路に関する。
【0002】
【従来の技術】
近年、パケット通信網は、マルチメディア・サービスの普及等の要因によりデータ通信量が急増している。特にデータ通信量が大きな基幹回線網等に接続されるルータでは、多数のパケットのスイッチングを行うことになり、取り扱うデータ量が大きくなる。これに伴い、パケットスイッチ回路のスイッチ容量、すなわち単位時間当たりの処理できるデータ量の大容量化が要求されている。ところが、パケットスイッチ回路に入力されるパケットが可変長パケットの場合、固定長パケットに比べてスイッチングの処理が複雑になり、スイッチ容量の大容量化を困難にしている。このため、従来から可変長パケットのスイッチングについてさまざまな工夫が行われている。
【0003】
図11は、従来提案された可変長パケットのスイッチングを実現するパケットスイッチ回路の構成を表わしたものである。特開平5−227211号公報で開示されたこのパケットスイッチ回路11は、図示しない入力ポートと出力ポートの間にパスを設定してパケットを転送するスイッチ部12と、この設定を制御するためのスイッチ制御部13を備えている。スイッチ部12の入力側には、第1の入力回線14から入力されるパケットを収容する第1の収容部15と、収容されたパケットを蓄積する第1のバッファ16と、蓄積されたパケットを分解する第1の分解部17がこの順に配置されている。ここで第1の分解部17は入力されるパケットを固定長の小パケットに分解するようになっている。第1の分解部17の出力側はスイッチ部12の第1の入力ポートに接続されている。第2〜第Nの入力回線14〜14に入力したパケットも同様に第2〜第Nの収容部15〜15、第2〜第Nのバッファ16〜16、および第2〜第Nの分解部17〜17を経て、それぞれ対応する入力ポートに入力されるようになっている。
【0004】
スイッチ部12の出力側には、第1の出力ポートから出力される小パケットから元のパケットを組み立てる第1の組立部18と、組み立てられたパケットを蓄積する第1のバッファ19と、蓄積されたパケットを収容する第1の収容部20がこの順に配置されている。第1の収容部20はパケットを出力する第1の出力回線21に接続されている。第2〜第Nの出力ポートから出力されたパケットも同様に第2〜第Nの組立部18〜18、第2〜第Nのバッファ19〜19、および第2〜第Nの収容部20〜20を経て、第2〜第Nの出力回線21〜21から出力されるようになっている。
【0005】
このスイッチ部12では、固定長の小パケットをスイッチングしている。このとき、スイッチ制御部13は分解された分の小パケットをすべてスイッチングするまで入力ポートと出力ポートの間にパスを設定し、第1〜第Nの組立部18〜18での元のパケットの組み立てを容易にしている。
【0006】
ところが、入力ポートと出力ポートの間にパスを設定する場合、スイッチングの遅延の問題が発生することがある。たとえば複数の入力ポートに同一の出力ポートを宛先とするパケットが同時に入力された状況のとき、1つの入力ポートがパケットのスイッチングを終了するまでの間、他の入力ポートは同一宛先のパケットのスイッチングを開始することができない。入力されたパケットから順にスイッチングを開始するので、次々に入力されるパケットもスイッチングを待たされることになる。したがって、同一の出力ポートを宛先とするパケットが集中するとき、あるいは分解された小パケット数が多いときには、スイッチングを待たされるパケットが多く発生することがある。また、この待たされているパケットのスイッチングを後回しにして他のパケットのスイッチングを開始する追加機能を付加すると、スイッチ部12の処理や回路の構成が複雑になるという問題が生じる。
【0007】
そこで、スイッチングの遅延の問題を解消するパケットスイッチ回路が従来から提案されている。これらの提案の1つとしてのパケットスイッチ回路では、一般的なアクセスメモリ制御、すなわちデータの書き込みおよび読み出しを周期的に行うことを利用して周期的なスイッチングを行っている。
【0008】
図12は、従来提案されたこのようなアクセスメモリ制御を用いたパケットスイッチ回路の構成を表わしたものである。特開平6−53996号公報で開示されたこのパケットスイッチ回路31は、パケットを入力する第1〜第14の入力回線32〜3214にそれぞれ対応する第1〜第14の入力部分33〜3314と、パケットを出力する第1〜第14の出力回線34〜3414にそれぞれ対応する第1〜第14の出力部分35〜3514を備えている。第1の入力部分33は、入力されるパケットを受け取る第1のレシーバ36と、出力回線を決定する第1のルータ37を備えており、すべての出力部分35〜3514に第1のブロードキャストバス38で接続されている。第2〜第14の入力部分33〜3314も同様に第2〜第14のレシーバ36〜3614と、第2〜第14のルータ37〜3714を備えており、第2〜第14のブロードキャストバス38〜3814で接続されてすべての出力部分35〜3514にパケットを出力するようになっている。第1の出力部分35は、すべての入力部分33〜3314から受信するパケットのうち出力すべきパケットを判断する第1のスイッチメモリ39を備えており、これらの内部に出力すべきパケットを蓄積する第1の出力キュー40を持っている。第1の出力キュー40に接続される第1の32ビットバス41によって、第1の出力回線34にパケットを出力する第1のトランスミッタ42と、パケットの長さを判断する第1のチョッパ43が接続されている。第2〜第14の出力部分35〜3514も同様に第2〜第14のスイッチメモリ39〜3914と、第2〜第14の32ビットバス41〜4114で接続される第2〜第14のチョッパ43〜4314および第2〜第14のトランスミッタ42〜4214を備えている。第2〜第14のトランスミッタ42〜4214から第2〜第14の出力回線34〜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の入力ポート102にその入力側を接続する第1の入力インタフェース部103を備えている。第1の入力インタフェース部103の出力側は、可変長パケットスイッチ回路104の第1の入力ポート105に接続されている。第2〜第Nの入力ポート102〜102も同様に第2〜第Nの入力インタフェース部103〜103の入力側にそれぞれ接続され、その出力側は第2〜第Nの入力ポート105〜105にそれぞれ接続されている。可変長パケットスイッチ回路104の第1の出力ポート106は、第1の出力インタフェース部107の入力側に接続されている。第1の出力インタフェース部107の出力側は、図示しない他のルータに可変長パケットを送出する第1の出力ポート108に接続されている。第2〜第Nの出力ポート106〜106も同様に第2〜第Nの出力インタフェース部107〜107の入力側にそれぞれ接続され、その出力側は第2〜第Nの出力ポート108〜108にそれぞれ接続されている。
【0030】
第1〜第Nの入力ポート102〜102に入力される可変長パケットは、第1〜第Nの入力インタフェース部103〜103によってフレームのフォーマットを装置内フレームのフォーマットに変換される。変換された可変長パケットは、可変長パケットスイッチ回路104でスイッチングされる。スイッチングされた可変長パケットは、第1〜第Nの出力インタフェース部107〜107によって元のフレームのフォーマットに変換される。この可変長パケットはそれぞれ第1〜第Nの出力ポート108〜108から他のルータに可変長パケットを送出している。
【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の入力インタフェース部103〜103(図1参照)によって装置内フレームのフォーマットに変換され、第1〜第Nの出力インタフェース部107〜107(図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の入力インタフェース部103〜103(図1参照)内で行い、可変長パケットスイッチ回路104(図1参照)で行う処理の負荷を軽減している。
【0034】
図4は図1に示した可変長パケットスイッチ回路の構成を表わしたものである。以上の説明では入力ポート数および出力ポート数について一般化された数値として値Nで表わしたが、これ以後は値Nが“39”の場合を例にとって具体的に説明する。もちろん値Nはこの値に限定されるものではない。この可変長パケットスイッチ回路104は、第1の入力ポート105に接続される第1の入力線401からシリアルに可変長パケットを入力する第1の出力ポート情報抽出部402を備えている。第1の出力ポート情報抽出部402は、可変長パケットに付加されている出力ポート情報306(図3参照)を抽出し、第1の出力ポート情報信号403を出力ポート判定部404へ出力するようにしている。第1の出力ポート情報抽出部402の第1の出力線405は第1の入力バッファ406に接続されている。第1の入力バッファ406は可変長パケットを順次蓄積し、それぞれの可変長パケットがバッファ内に蓄積されるパケット位置を示す第1のパケット位置情報信号407を出力ポート判定部404に出力するようになっている。
【0035】
同様にしてそれぞれ第1〜第39の入力ポート105〜10539に入力された可変長パケットは、第1〜第39の入力線401〜40139および第1〜第39の出力ポート情報抽出部402〜40239を経て、第1〜第39の入力バッファ406〜40639で蓄積されるようになっている。また、出力ポート判定部404にそれぞれ第1〜第39の出力ポート情報信号403〜40339および第1〜第39のパケット位置情報信号407〜40739を出力する。
【0036】
第1〜第39の入力バッファ406〜40639は、入力ポート側データバス408を介して入力ポート側メモリ409に接続されている。入力ポート側メモリ409を制御する入力ポート側メモリ制御部410は、図示しないCPUおよび図示しないROM(リード・オンリ・メモリ)等の記憶媒体で構成され所定の制御を行うようになっている。入力ポート側メモリ制御部410は、第1〜第39の入力バッファ406〜40639に蓄積された可変長パケットを入力ポート側メモリ409へ格納するための第1〜第39の出力制御信号411〜41139を出力するようになっている。また、入力ポート側メモリ409に格納された可変長パケットを入力ポート側データバス408上に出力するための出力制御信号412を出力する。入力ポート側データバス408は、第1〜第39の出力ポート106〜10639にそれぞれ対応する第1〜第39の選択バッファ413〜41339に接続されている。出力ポート判定部404は、第1〜第39の出力ポート情報信号403〜40339および第1〜第39のパケット位置情報信号407〜40739に基づき、第1〜第39の出力ポート106〜10639に対応した第1〜第39の有効情報信号414〜41439を生成するようになっている。第1〜第39の有効情報信号414〜41439はそれぞれ第1〜第39の選択バッファ413〜41339に出力されている。
【0037】
第1の出力ポート106に対応する第1の選択バッファ413は、第1の有効情報信号414に基づき、入力ポート側データバス408上に出力される可変長パケットを選択して蓄積するようになっている。第1の選択バッファ413は蓄積された可変長パケットを第1のデータバス415を介して第1の有効情報圧縮スイッチ416に出力している。第1の有効情報圧縮スイッチ416は、第1の出力ポート側メモリ制御部417からの第1の先頭位置信号418に基づき可変長パケットを配列するようになっている。第1の出力ポート側メモリ制御部417は、図示しないCPUおよび図示しないROM(リード・オンリ・メモリ)等の記憶媒体で構成され所定の制御を行うようになっている。第1の出力ポート側メモリ制御部417は、第1の有効情報圧縮スイッチ416で配列された可変長パケットを第1の出力ポート側データバス419を介して第1の出力ポート側メモリ420へ格納するための第1の出力制御信号421を出力するようになっている。また、第1の出力ポート側メモリ420に格納された可変長パケットを第1の出力ポート側データバス419を介して第1の出力バッファ422へ出力するための第1の出力制御信号423を出力する。第1の出力バッファ422の出力側は、第1の出力線424によって第1の出力ポート106に接続されている。第1の出力ポート106から図1に示した第1の出力インタフェース部107に可変長パケットが出力されるようになっている。
【0038】
同様にしてそれぞれの第1〜第39の選択バッファ413〜41339に蓄積された可変長パケットは第1〜第39の有効情報圧縮スイッチ416〜41639、第1〜第39の出力ポート側メモリ420〜42039、第1〜第39の出力バッファ422〜42239を経て、第1〜第39の出力ポート106〜10639に出力するようになっている。第1〜第39の出力ポート106〜10639から第1〜第39の出力インタフェース部107〜10739にそれぞれ可変長パケットを出力する。
【0039】
本実施例では、入力ポート側メモリ409および第1〜第39の出力ポート側メモリ420〜42039の1アドレスで指定されるデータ幅を8K(キロ)ビットとする。第1〜第39の入力バッファ406〜40639の容量、入力ポート側データバス408のバス幅、および第1〜第39の選択バッファ413〜41339の容量を8Kビットとする。第1〜第39の有効情報圧縮スイッチ416〜41639の出力側容量、第1〜第39の出力ポート側データバス419〜41939のバス幅、および第1〜第39の出力バッファ422〜42239の容量を8Kビットとする。
【0040】
また、第1〜第39の入力バッファ406〜40639から入力ポート側メモリ409へのパケット転送周期を3.28μ(マイクロ)秒とする。39個の入力ポート105〜10539から入力する可変長パケットの最大伝送レートおよび39個の出力ポート106〜10639から出力する可変長パケットの最大伝送レートを2.48832Gbps(ギガビット/秒)とする。入力ポート側メモリ409および第1〜第39の出力ポート側メモリ420〜42039に対する書き込みおよび読み出しサイクルを42n(ナノ)秒とする。これは既存のDRAM(Dynamic Random Access Memory:ダイナミック等速呼び出し記憶装置)のアクセス速度と同等である。
【0041】
図5は、入力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)はサイクル501〜506の順に時間の経過を示し、それぞれの時間間隔は42n秒の等間隔である。同図(b)以降は動作を説明しつつ、適宜説明する。
【0042】
図4における第1〜第39の出力ポート情報抽出部402〜40239から第1〜第39の選択バッファ413〜41339までの各動作について更に説明する。第1の出力ポート情報抽出部402は、入力される可変長パケット中に付加されている出力ポート情報を抽出して第1の出力ポート情報信号403を出力ポート判定部404へ出力する。また、可変長パケットの先頭位置および最後尾位置を検出して可変長パケットを第1の入力バッファ406へ出力する。
【0043】
入力された可変長パケットを蓄積する第1の入力バッファ406は、検出された可変長パケットの先頭位置および最後尾位置の情報に基づき、可変長パケットがバッファ内に蓄積されているバイト単位のパケット位置を示す第1のパケット位置情報信号407を生成する。第1のパケット位置情報信号407は出力ポート判定部404に出力される。本実施例では、一般にデータはバイト単位で処理されるので、バイト単位の情報を生成する。また、第1の入力バッファ406はバッファを2つ備えたダブルバッファとすることによって、蓄積されている可変長パケットが出力中でも入力される新たな可変長パケットを蓄積することができる。
【0044】
入力ポート側メモリ制御部410は、一定周期(3.28μ秒)で第1の入力バッファ406内に蓄積された複数の可変長パケットを入力ポート側メモリ409へ転送して先頭のアドレスにデータを書き込む。これは第1の出力制御信号411によって図5(b)で示された第1の入力バッファ406からの書き込み507のタイミングで行われる。本実施例では、第1の入力バッファ406の容量、入力ポート側データバス408のバス幅、および入力ポート側メモリ409の1アドレスのデータ幅を一致させている。これにより、第1の入力バッファ406内に蓄積された複数の可変長パケットは1回の転送サイクルで入力ポート側メモリ409へ転送することができる。
【0045】
同様にして、入力ポート側メモリ409へのデータの書き込みは、入力ポート側メモリ制御部410からの第2の出力制御信号411(図示せず)によって図5(b)の第2の入力バッファ(図示せず)からの書き込み508のタイミングで行われる。また、同様に第3の出力制御信号411(図示せず)によって図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の出力ポート情報信号403に基づき、入力ポート側メモリ409のアドレス情報信号425のアドレスに格納されている複数の可変長パケットの出力ポートを決定する。第1の出力ポート情報信号403で複数あるいはすべての出力ポートを指定することで、複数あるいはすべての出力ポートを選択することが可能になる。また、入力される第1のパケット位置情報信号407に基づき、第1〜第39の有効情報信号414〜41439を生成する。出力ポート判定部404は入力ポート側メモリ409のアドレス単位で処理し、処理が完了するたびに入力ポート側メモリ制御部410へ処理の完了を知らせる通知信号426を出力する。
【0048】
入力ポート側メモリ制御部410は、通知信号426によって処理の完了を知らされたアドレスの複数の可変長パケットを入力ポート側データバス408上に同時に読み出して第1〜第39の選択バッファ413〜41339に転送する。この読み出し動作は、図5(c)で示された入力ポート側メモリ409からの読み出し510〜512のそれぞれのタイミングで行われる。入力ポート側メモリ制御部410の出力制御信号412によって周期84n秒で入力ポート側メモリ409に書き込まれたアドレス順で行われる。このとき、1アドレスで指定される領域に書き込まれているすべての可変長パケットの宛先の出力ポートは、出力ポート判定部404によって決定されている。39個の入力ポート105〜10539からそれぞれ2.48832Gbpsで入力された可変長パケットは、第1〜第39の有効情報信号414〜41439が生成される一定時間まで入力ポート側メモリ409に格納される。一定時間後、第1〜第39の選択バッファ413〜41339へ同時に転送されている。
【0049】
以上説明したアクセス制御では、入力ポート側メモリ制御部410のアドレス情報信号427およびリードライト制御信号428によって、入力ポート側メモリ409のデータの書き込みおよび読み出しを行っている。同様にして第1〜第39の出力ポート情報抽出部402〜40239から第1〜第39の選択バッファ413〜41339までの各動作が行われる。
【0050】
第1〜第39の選択バッファ413〜41339は同一動作をするので、代表して第1の選択バッファ413の動作について説明する。第1の選択バッファ413は、出力ポート判定部404が出力する第1の有効情報信号414を受信する。第1の有効情報信号414は、第1の選択バッファ413が選択する可変長パケットが入力ポート側メモリ409の1アドレスで指定されるデータ領域のどこに格納されているかを示している。入力ポート側メモリ409から入力ポート側データバス408上に出力される1アドレスで指定されているデータ領域に格納されている1あるいは複数の可変長パケットを受信し、第1の有効情報信号414に基づいて可変長パケットを選択して蓄積している。この際、第1の有効情報信号414に基づいて、第1の選択バッファ413への書き込みをビット単位あるいはバイト単位で許可あるいは禁止する機能を第1の選択バッファ413の前段に備えることによって、パケットの選択を実現している。したがって、第1の選択バッファ413のデータ列の有効情報と有効情報の間には不要なデータが格納されていないことになる。本実施例では、入力ポート側メモリ409の1アドレスで指定されるデータ幅、第1の選択バッファ413の容量、および入力ポート側データバス408のバス幅を一致させている。これにより、入力ポート側メモリ409の1アドレスで指定されているデータ領域に格納されている複数の可変長パケットは、1回の転送サイクルで第1の選択バッファ413へ転送される。
【0051】
次に、第1〜第39の入力バッファ406〜40639から入力ポート側メモリ409への可変長パケットの転送について説明を加える。本実施例では可変長パケットの転送を一定周期で行うので、第1〜第39の入力バッファ406〜40639に書き込みが途中の可変長パケットが存在する場合がある。この可変長パケットは分割して転送され、出力ポートから出力された後、図1で示した第1〜第39の出力インタフェース部107〜10739で復元されることになる。可変長パケットを分割した残りのパケットは次の転送周期で転送されることになる。これらの分割されたパケットを復元するとき、これらのパケットがどの入力ポートから入力されたかの情報が必要になる。この情報を分割されたパケットに付加して出力するが、以下に説明するように第1〜第39の出力インタフェース部107〜10739では、付加された情報を基にして元の可変長パケットに復元することができる。
【0052】
この分割されたパケットに入力ポート情報を付加し、第1〜第39の出力インタフェース部107〜10739で復元する動作について具体的に説明する。第1〜第39の入力バッファ406〜40639の先頭部分と最後尾部分に入力ポート情報が書き込まれる領域を予め確保しておく。たとえば、第1の入力ポート105の第1の入力バッファ406には、常に入力ポートが“1”であることを示す情報が入力バッファの先頭部分と最後尾部分に書き込まれている。一定周期で第1の入力バッファ406に書き込まれたパケットは入力ポート側メモリ409へ書き込まれる。このとき、入力ポート情報も同時に入力ポート側メモリ409へ書き込まれる。メモリ領域の先頭部分に書き込まれた入力ポート情報に対しては、その直後に書き込まれていたパケットと同じ出力ポートへの転送として有効情報信号が出力される。メモリ領域の最後尾部分に書き込まれた入力ポート情報に対しては、その直前に書き込まれていたパケットと同じ出力ポートへの転送として有効情報信号が出力される。
【0053】
第1〜第39の出力インタフェース部107〜10739では、分割されていないパケットの場合、図3で示したパケットの装置内オーバヘッド302に格納されている入力ポート情報305に基づき入力ポートごとのバッファ(図示せず)に蓄積される。分割されたパケットの場合、パケットの先頭部分あるいは最後尾部分に付加されている入力ポート情報に基づき入力ポートごとのバッファに蓄積することにより、分割されたパケットが復元される。このとき、付加された入力ポート情報は削除される。以上のようにして分割されたパケットが処理される。
【0054】
再び図4に戻って、第1〜第39の選択バッファ413〜41339から第1〜第39の出力バッファ422〜42239までの各動作について説明する。これらの選択バッファ413〜41339以降の回路は、同一回路であり独立に動作するため、第1の出力ポート106に対応する回路を代表して説明する。第1の選択バッファ413によって蓄積された可変長パケットは、第1のデータバス415を介して第1の有効情報圧縮スイッチ416に受信される。これ以後はパケット1〜パケット3(P1〜P3)の3つの可変長パケットが受信された場合を例にとって具体的に説明する。
【0055】
図6は、出力ポート側メモリへの可変長パケット書き込み制御の様子を表わしたものである。同図(a)は、第1の出力ポート側メモリ420の1アドレスで指定されるデータ領域601を示している。本実施例ではLSB602(Least Significant Bit:最下位ビット)からMSB603(Most Significant Bit:最上位ビット)の8Kビットとする。データの流れを説明するためデータ領域601を基準にして、同図(b)以降は動作を説明しつつ、適宜説明する。
【0056】
第1の有効情報圧縮スイッチ416は出力ポート判定部404から第1の有効情報信号414を受信する。図6(b)は出力ポート判定部404が出力する第1の有効情報信号414を表わしている。3つの可変長パケットについて、それぞれパケット1は第1の位置604、パケット2は第2の位置605、パケット3は第3の位置606のデータ位置を示している。
【0057】
第1の選択バッファ413は、図6(b)で示した第1の有効情報信号414の示す位置のデータを選択して可変長パケットを格納している。図6(c)は第1の選択バッファ413における可変長パケットの格納状態であり、領域607にはデータが格納され、領域608にはデータが格納されていない。
【0058】
第1の有効情報圧縮スイッチ416では、出力ポート判定部404が出力する第1の有効情報信号414に基づいて図6(c)に示した領域607のみを取り出し、可変長パケットのパケット長の総和である図6(d)で示す有効情報長609を表わす第1の有効情報長信号429を第1の出力ポート側メモリ制御部417へ出力している。
【0059】
第1の出力ポート側メモリ制御部417は、第1の有効情報圧縮スイッチ416が出力する第1の有効情報長信号429の有効情報長と、第1の出力ポート側メモリ420の可変長パケットが書き込まれている最後尾のアドレス中の可変長パケットが書き込まれていない領域長を比較する。本実施例では、図6(f)で示した第1の出力ポート側メモリ420における可変長パケットの格納状態を比較する。第1の出力ポート側メモリ420の内部は、前回の書き込みサイクルまでに書き込みが行われた領域611、今回新たに書き込みが行われた領域612、および書き込みが行われていない領域613に分かれている。本実施例では、比較した結果として、有効情報長の方が短い場合、第1の出力ポート側メモリ420の可変長パケットが書き込まれている最後尾のアドレスにおける空き領域に可変長パケットを書き込む。このとき、第1の出力ポート側メモリ420の可変長パケットが書き込まれている最後尾のアドレス中の可変長パケットが書き込まれていない領域の先頭位置を第1の先頭位置信号418として第1の有効情報圧縮スイッチ416に出力する。比較した結果、有効情報長の方が長いような場合には、第1の出力ポート側メモリ420の可変長パケットが書き込まれている最後尾のアドレスの次のアドレスの先頭位置から可変長パケットを書き込む。このとき、第1の有効情報圧縮スイッチ416が出力する可変長パケットの第1の先頭位置信号418としてLSBの位置を出力する。
【0060】
第1の有効情報圧縮スイッチ416は、第1の出力ポート側メモリ制御部417が出力する可変長パケットの第1の先頭位置信号418に基づいて、出力する可変長パケットの先頭位置を決定して可変長パケットを図6(e)に示す位置情報610のように配列する。第1の有効情報圧縮スイッチ416の出力状態は、この配列動作によって、図6(d)に示すような可変長パケット出力状態となる。ここで、第1の有効情報圧縮スイッチ416の具体的な回路について説明を加える。
【0061】
図7は有効情報圧縮スイッチの基本動作を2入力2出力のセレクタを用いて構成する場合の原理的な構成を示したものである。本実施例では第1のデータバス415は8192ビットであるが、ここでは簡単に説明するため4ビット分のデータを入出力する有効情報圧縮スイッチ701を示している。この簡略化した有効情報圧縮スイッチ701は、それぞれ第1〜第4の入力ポート702〜702および第1〜第4の出力ポート703〜703を備えている。有効情報圧縮スイッチ701は、アレイ状に配置された2入力2出力の第1〜第4のセレクタ704〜704を第1段として、同様にして第2段および第3段としてそれぞれ第5〜第8のセレクタ704〜704および第9〜第12のセレクタ704〜70412で構成される。
【0062】
この有効情報圧縮スイッチ701に有効ビットとして第1の入力ポート702、第3の入力ポート702および第4の入力ポート702にデータが入力され、無効ビットとして第2の入力ポート702にはデータが入力されないものとする。また、配列位置として第1〜第3の出力ポート703〜703からデータを出力するような場合とする。第1の入力ポート702に入力されたデータは、第1のセレクタ704、第5のセレクタ704、および第9のセレクタ704を順に経由して第1の出力ポート703に出力されている。同様にして、第3の入力ポート702に入力されたデータは、第3のセレクタ704、第5のセレクタ704、および第10のセレクタ70410を順に経由して第2の出力ポート703に出力され、第4の入力ポート702に入力されたデータは、第4のセレクタ704、第8のセレクタ704、および第11のセレクタ70411を順に経由して第3の出力ポート703に出力されている。ここでは2入力2出力のセレクタを示しているが、アレイ状に配置するセレクタの数と段数を増加させることで本実施例の有効情報圧縮スイッチを実現することができる。本実施例では、データのビット数が“8192”であるので、セレクタ数は“8192”となり段数は“14”段となる。
【0063】
この第1の有効情報圧縮スイッチ416によって配列された図6(e)に示す位置情報610の可変長パケットを第1の出力ポート側メモリ420に格納している。図6(f)で示すように前回の書き込みサイクルまでに書き込まれた可変長パケットに引き続いて、まだ書き込みが行われていない領域に、可変長パケットのみを格納することができる。本実施例では、第1の有効情報圧縮スイッチ416の出力側容量、第1の出力ポート側メモリ420の1アドレスで指定されるデータ幅、および第1の出力ポート側データバス419のデータ幅が一致している。これにより、第1の出力ポート側メモリ420への書き込みを1回の書き込みサイクルで行うことができる。
【0064】
図8は、出力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)はサイクル801〜806の順に時間の経過を示し、それぞれの時間間隔は42n秒の等間隔である。同図(b)は第1の出力ポート側メモリ420に対しての第1の有効情報圧縮スイッチ416からの書き込みを表わしている。第1の出力ポート側メモリ420への書き込み807は、第1の出力ポート側メモリ制御部417の第1の出力制御信号421によって第1の有効情報圧縮スイッチ416で配列された可変長パケットを周期84n秒(42n秒×2)で書き込んでいる。
【0065】
第1の出力ポート側メモリ420に格納された可変長パケットは第1の出力ポート側データバス419を介して第1の出力バッファ422へ転送している。本実施例では、第1の出力ポート側メモリ420の1アドレスで指定されるデータ幅、第1の出力バッファ422の容量、および第1の出力ポート側データバス419のデータ幅が一致している。これにより、第1の出力ポート側メモリ420から第1の出力バッファ422への可変長パケットの転送を1回の読み出しサイクルで行われている。図8(c)で示すように第1の出力ポート側メモリ420からの読み出し808は、第1の出力ポート側メモリ制御部417の第1の出力制御信号421によって周期84n秒で第1の出力ポート側メモリ420に書き込まれたアドレス順で行われる。第1の出力ポート側メモリ制御部417は、第1のアドレス情報信号430およびリードライト制御信号431によって第1の出力ポート側メモリ420のデータの書き込みおよび読み出しを行っている。
【0066】
第1の出力バッファ422に蓄積された可変長パケットは、第1の出力ポート106に接続される第1の出力線424でシリアルに出力される。また、第1の出力バッファ422はバッファを2つ備えたダブルバッファとすることによって、可変長パケットを出力中でも第1の出力ポート側メモリ420が読み出した可変長パケットを蓄積することができる。更に、第1の出力バッファ422は蓄積している可変長パケットがすべて出力されてバッファ内が空となる前に、第1の出力ポート側メモリ制御部417に対して可変長パケットの転送を要求する第1のパケット転送要求信号432を出力する。
【0067】
第1の出力ポート側メモリ制御部417は、第1の出力ポート側メモリ420内の1アドレスで指定される8Kビットの領域に書き込まれている可変長パケットを1回の読み出しサイクルで第1の出力バッファ422に転送できる。第1の出力ポート側メモリ420内の1アドレスで指定される8Kビットの領域に8Kビットの可変長パケットが格納されている場合、2.48832Gbpsで出力されるため、格納されている可変長パケットがすべて出力されるまで時間が3.292μ秒かかることになる。
【0068】
本実施例で第1〜第39の出力ポート側メモリ420〜42039に着目すると、最大の書き込み速度は可変長パケットスイッチ回路104にあるすべての第1〜第39の入力ポート105〜10539からパケットが入力される速度の総和になる。読み出し速度は出力ポートごとのパケットが出力される速度と一致する。したがって、複数の入力ポートから特定の出力ポートの宛先のパケットが入力することが集中するトラフィックの輻輳が発生する場合、特定の出力ポートの出力ポート側メモリに多くのパケットが急速に滞留する可能性がある。
【0069】
たとえば、第1の出力ポート側メモリ420内に格納されている可変長パケットの蓄積量が設定されたしきい値を越えた場合を考える。本実施例では、図1に示した第1〜第39の入力インタフェース部103〜10339には、図示しない大容量の輻輳吸収用のバッファを用意する。第1の出力ポート側メモリ制御部417は、第1〜第39の入力インタフェース部103〜10339に対して第1の出力ポート106の宛先の可変長パケットの出力停止を要求する第1の出力停止要求信号433を出力する。第1〜第39の入力インタフェース部103〜10339は、第1の出力停止要求信号433を受信すると、第1の出力ポート106の宛先の可変長パケットのみを輻輳吸収用のバッファに一時的に蓄積する。第1の出力停止要求信号433が解除された場合、第1の出力ポート106の宛先の可変長パケットの出力を再開する。これにより、本実施例の可変長パケットスイッチ回路104で出力ポートごとに大容量のバッファを用意することなく、第1の出力ポート側メモリ420のしきい値を越えて処理できなくなるオーバーフローを防ぐことができる。
【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回の書き込みサイクルおよび読み出しサイクルで行うことができる。また、出力ポートごとの選択バッファ413〜41339が出力ポートごとの有効情報信号414〜41439に基づき、入力側データバス408上に出力された複数の可変長パケットから、必要な可変長パケットのみを選択して格納することができる。パラレル展開数Bを数Kビットとして、スイッチコアの転送速度Sを大幅に削減することによって、超大容量のスイッチ回路を構築できる。たとえば、本実施例のパケットスイッチ回路104を既存のメモリアクセス性能(DRAM)を適用して1チップで実現する場合、1チップで約100Gbps(97.52Gbps=8Kビット/84n秒)のスイッチ容量となる。
【0074】
変形例
【0075】
図9は本発明の変形例として入力される可変長パケットの異なる伝送レートを混在させた図4に示した可変長パケットスイッチ回路における入力ポート側の変形を表わしたものである。この変形例では、図4で示した第1〜第39の入力ポート105〜10539に対応する構成の一部分を第1〜第42の入力ポート901〜90142に対応する構成の一部分としたものであり、その他の構成は図4と同一であり図示および説明を省略する。この図で図4と同一部分には同一の符号を付しており、これらの説明を適宜省略する。この変形例では、第1〜第4の4個の入力ポート901〜901の最大伝送レートを622.08Mbps(メガビット/秒)とし、第5〜第42の入力ポート901〜90142の最大伝送レートを2.48832Gbpsとしている。第1〜第42の入力バッファ902〜90242の容量は同じ容量(8Kビット)とする。また、第1〜第4の入力バッファ902〜902に蓄積されている可変長パケットを入力ポート側メモリ409へ転送する周期は、第5〜第42の入力バッファ902〜90242の転送周期の4倍とする。すなわち、第1〜第4の入力バッファ902〜902から入力ポート側メモリ409への転送は13.12μ秒(3.28μ秒×4)ごとに行われる。
【0076】
図10は、変形例における入力ポート側メモリに対するアクセス制御のタイミングを表わしている。同図(a)は図5(a)に示した時間の経過と同一である。入力ポート側メモリ409に対しての同図(b)で示す第1〜第42の入力バッファ902〜90242からの書き込みおよび同図(c)で示す入力ポート側データバス408への読み出しは交互に行われている。第1〜第4の入力バッファ902〜902のいずれかの書き込み513、第5の入力バッファ902の書き込み514、第6の入力バッファ(図示せず)の書き込み515の番号順で繰り返し行われる。第1〜第4の入力バッファ902〜902のいずれかの書き込み513は、第1〜第4の入力バッファ902〜902の番号順で繰り返し行われる。これにより、第1〜第4の入力バッファ902〜902の各転送周期を第5〜第42の入力バッファ902〜90242の4倍とすることができる。入力ポート側メモリ409からの読み出し516〜518は、図5と同様に周期84n秒で入力ポート側メモリ409に書き込まれたアドレス順で行われる。
【0077】
この変形例では、第1〜第42の入力ポート901〜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の入力ポート702に入力された1ビット目のデータを第4の出力ポート703に4ビット目のデータとして出力するようにする。また、第2〜第4の入力ポート702〜702にそれぞれ入力された残りの3ビットのデータは、第1〜第3の出力ポート703〜703にそれぞれ出力するようにする。これらの動作は図7で説明したように対応するセレクタを経由することによって行うことができる。したがって、第4の出力ポート703から出力されるデータはAメモリに書き込むデータとして、第1〜第3の出力ポート703〜703からそれぞれ出力されるデータは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 packet switch circuit 11 disclosed in Japanese Patent Application Laid-Open No. H5-222711 includes a switch section 12 for setting a path between an input port and an output port (not shown) to transfer a packet, and a switch for controlling the setting. The control unit 13 is provided. The first input line 14 is connected to the input side of the switch unit 12.1First storing unit 15 that stores packets input from1And a first buffer 16 for storing the accommodated packets.1And a first decomposing unit 17 for decomposing the stored packets.1Are arranged in this order. Here, the first disassembly unit 171Is designed to break an incoming packet into small packets of fixed length. First decomposition unit 171Is connected to a first input port of the switch unit 12. 2nd to Nth input lines 142~ 14NSimilarly, packets input to the second to Nth accommodation units 152~ 15N, The second to N-th buffers 162~ 16N, And the second to N-th decomposition units 172~ 17NThrough the corresponding input ports.
[0004]
On the output side of the switch unit 12, a first assembling unit 18 that assembles an original packet from small packets output from the first output port is provided.1And a first buffer 19 for storing the assembled packets.1And a first storage unit 20 for storing the stored packets.1Are arranged in this order. First storage section 201Is a first output line 21 for outputting a packet1It is connected to the. Similarly, the packets output from the second to Nth output ports are output from the second to Nth assembling units 18.2~ 18N, The second to N-th buffers 192~ 19N, And the second to Nth accommodation units 202~ 20NThrough the second to Nth output lines 212~ 21NOutput from
[0005]
The switch unit 12 switches fixed-length small packets. At this time, the switch control unit 13 sets a path between the input port and the output port until all of the small packets that have been disassembled are switched.1~ 18NFacilitates the assembling of the original packet.
[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 switch unit 12 and the configuration of the circuit become complicated.
[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 packet switch circuit 31 disclosed in Japanese Patent Application Laid-Open No. 6-53996 has first to fourteenth input lines 32 for inputting packets.1~ 3214The first to fourteenth input portions 33 respectively corresponding to1~ 3314And first to fourteenth output lines 34 for outputting a packet.1~ 3414The first to fourteenth output portions 35 respectively corresponding to1~ 3514It has. First input part 331Is a first receiver 36 that receives an incoming packet.1And the first router 37 that determines the output line1And all output portions 351~ 3514First broadcast bus 381Connected. The second to fourteenth input parts 332~ 3314Similarly, the second to fourteenth receivers 362~ 3614And the second to fourteenth routers 372~ 3714And the second to fourteenth broadcast buses 382~ 3814All output parts 35 connected by1~ 3514To output the packet. First output part 351Are all input parts 331~ 3314Switch memory 39 for determining a packet to be output among packets received from1And a first output queue 40 for accumulating packets to be output therein.1have. First output queue 40132 bit bus 41 connected to1The first output line 341Transmitter 42 that outputs a packet to1And a first chopper 43 for determining the length of the packet1Is connected. The second to fourteenth output portions 352~ 3514Similarly, the second to fourteenth switch memories 392~ 3914And the second to fourteenth 32-bit buses 412~ 4114Second to fourteenth choppers 43 connected by2~ 4314And the second to fourteenth transmitters 422~ 4214It has. Second to fourteenth transmitters 422~ 4214To the second to fourteenth output lines 342~ 3414To output the packet.
[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 input shift register 51. The received packet is output and written in parallel to a memory 53 having the same data width as the input shift register 51 via a bus 52 having the same data width as the input shift register 51. The packet written in the memory 53 is read in parallel to the output shift register 54 and is output serially from the output shift register 54. The packet of the input shift register 51 can be switched by one write operation and one read operation of access memory control. Therefore, the packet input to each input port is switched after waiting for a certain period of the write cycle and the read cycle of the access memory control, so that the switching delay problem can be solved.
[0010]
[Problems to be solved by the invention]
[0011]
In the proposed packet switch circuit 31, the number of packets that can be switched in a fixed time becomes constant by periodic access memory control, so that the amount of data processed in a fixed time depends on the packet length. That is, the amount of data processed in a certain period of time varies depending on the length of the packet. For example, when the input of packets with a short packet length is concentrated, a situation occurs in which the amount of data processed in a certain time is extremely reduced. At present, when data traffic is rapidly increasing, there is an urgent need to increase the switch capacity of the packet switch circuit.
[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 claim 2, 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. Moreover, in the present invention, the data storage means extracts and stores the packets stored in each of the input-side storage means in a cycle such that the packets become shorter as the maximum transmission speed of the data of the corresponding input path becomes faster. That is, when the maximum transmission speed of data is different for some or all of the input paths, the amount of data stored per unit time of each input-side storage means is different, so that the maximum transmission speed of data is different. The more efficient the data storage means, the more the input storage means corresponding to the faster input path has the shorter cycle and takes out the data and stores it in the data storage means.
[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 router 101 has a first input port 102 for inputting a variable length packet sent from another router (not shown).1Input interface section 103 for connecting its input side to1It has. First input interface unit 1031Is connected to the first input port 105 of the variable length packet switch circuit 104.1It is connected to the. Second to Nth input ports 1022~ 102NSimilarly, the second to Nth input interface units 1032~ 103N, Respectively, and the output side thereof is connected to the second to Nth input ports 105.2~ 105NConnected to each other. First output port 106 of variable length packet switch circuit 1041Is the first output interface unit 1071Is connected to the input side. First output interface unit 1071Of the first output port 108 for sending a variable length packet to another router (not shown)1It is connected to the. Second to Nth output ports 1062~ 106NSimilarly, the second to N-th output interface units 1072~ 107N, And the output side thereof is connected to the second to Nth output ports 108.2~ 108NConnected to each other.
[0030]
First to Nth input ports 1021~ 102NAre input to the first to Nth input interface units 1031~ 103NThe format of the frame is converted into the format of the frame in the apparatus. The converted variable length packet is switched by the variable length packet switch circuit 104. The switched variable-length packets are output to the first to N-th output interface units 107.1~ 107NIs converted to the format of the original frame. The variable-length packets are output from the first to N-th output ports 108, respectively.1~ 108NSends variable length packets to other routers.
[0031]
FIG. 2 shows a format of a PPP frame as an example of an input variable length packet. The variable-length packet 201 of the PPP (Point to Point Protocol) frame includes a PPP overhead 202, a PPP payload 203 of a data portion, an FCS (Frame Check Sequence: frame inspection sequence) 204 for detecting a bit error, and It consists of a flag 205 indicating the end of the packet. In the PPP overhead 202, a flag 206 indicating the start of a packet, a destination address 207 of the packet, a control information control 208, and a protocol identifier 209 are arranged. The variable-length packet 201 includes the first to Nth input interface units 1031~ 103N(Refer to FIG. 1), and is converted into the format of the in-apparatus frame.1~ 107N(Refer to FIG. 1), the original format of the variable-length packet 201 is converted again.
[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-length packet 301 of the intra-device frame includes an intra-device overhead 302 and a PPP payload 303 of a data portion. In-device overhead 302 includes in-device information 304, input port information 305, and output port information 306. The input port information 305 and the output port information 306 indicate an input port and an output port of the variable length packet switch circuit 104 (see FIG. 1) to which the variable length packet is input. The in-device information 303 represents information used for other in-device control of the variable length packet switch circuit 104. The variable-length packet 301 is provided with an in-device overhead 302 in place of the PPP overhead 202 (see FIG. 2), and it is determined which output port of the variable-length packet switch circuit 104 is to be output.
[0033]
The determination of the output port will be further described. The determination of the output port requires information stored in the PPP payload 203 in addition to the information of the address 207 in the PPP overhead 202. For example, when an IP (Internet Protocol) packet is stored in the PPP payload 203, an output port is determined based on information such as a destination address in a header of the IP packet. If another packet is stored in the PPP payload 203, the output port is determined based on the stored packet based on the protocol identifier 209 in the PPP overhead 202. The processing for determining this output port is heavy in load, and requires a large-scale circuit using a CPU (Central Processing Unit). In this embodiment, the process of determining the output port is performed by the first to Nth input interface units 103.1~ 103N(See FIG. 1), and reduces the load of processing performed by the variable length packet switch circuit 104 (see FIG. 1).
[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 packet switch circuit 104 includes a first input port 1051Input line 401 connected to1Output port information extraction unit 402 for serially inputting variable length packets from1It has. First output port information extraction unit 4021Extracts the output port information 306 (see FIG. 3) added to the variable length packet, and outputs the first output port information signal 4031Is output to the output port determination unit 404. First output port information extraction unit 4021First output line 405 of1Is the first input buffer 4061It is connected to the. First input buffer 4061Accumulates variable-length packets sequentially, and stores a first packet position information signal 407 indicating a packet position where each variable-length packet is stored in the buffer.1Is output to the output port determination unit 404.
[0035]
Similarly, the first to 39th input ports 1051~ 10539Are input to the first to 39th input lines 4011~ 40139And the first to 39th output port information extraction units 4021~ 40239Through the first to 39th input buffers 4061~ 40639Is to be accumulated. Also, the output port determination unit 404 controls the output port information signals 4031~ 40339And the first to 39th packet position information signals 4071~ 40739Is output.
[0036]
First to 39th input buffers 4061~ 40639Are connected to an input port side memory 409 via an input port side data bus 408. The input port side memory control unit 410 for controlling the input port side memory 409 is configured by a storage medium such as a CPU (not shown) and a ROM (Read Only Memory) not shown and performs predetermined control. The input port side memory control unit 410 includes first to 39 th input buffers 406.1~ 40639To the 39th output control signal 411 for storing the variable-length packets stored in the input port side memory 409.1~ 41139Is output. Further, it outputs an output control signal 412 for outputting the variable length packet stored in the input port side memory 409 onto the input port side data bus 408. The input port side data bus 408 is connected to the first to 39 th output ports 106.1~ 10639To the 39th selection buffer 413 respectively corresponding to1~ 41339It is connected to the. The output port determination unit 404 outputs the first to 39 th output port information signals 4031~ 40339And the first to 39th packet position information signals 4071~ 40739, The first to 39th output ports 1061~ 10639To the 39th valid information signal 414 corresponding to1~ 41439Is generated. 1st to 39th valid information signals 4141~ 41439Are the first to 39th selection buffers 413, respectively.1~ 41339Is output to
[0037]
First output port 1061Selection buffer 413 corresponding to1Is the first valid information signal 4141, A variable length packet output on the input port side data bus 408 is selected and stored. First selection buffer 4131Transmits the stored variable-length packets to the first data bus 415.1Via the first effective information compression switch 4161Output to First effective information compression switch 4161Is the first output port side memory control unit 4171From the first start position signal 4181The variable length packets are arranged on the basis of. First output port side memory control unit 4171Is constituted by a storage medium such as a CPU (not shown) and a ROM (Read Only Memory) not shown, and performs predetermined control. First output port side memory control unit 4171Is the first effective information compression switch 4161The variable-length packets arrayed by the first output port side data bus 4191Via the first output port side memory 4201Output control signal 421 for storing in1Is output. Further, the first output port side memory 4201The variable-length packet stored in the first output port side data bus 4191Via the first output buffer 4221Output control signal 423 for outputting to1Is output. First output buffer 4221The output side of the first output line 4241The first output port 1061It is connected to the. First output port 1061To the first output interface unit 107 shown in FIG.1The variable length packet is output to the.
[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 port side memories 4201~ 42039, The first to 39 th output buffers 4221~ 42239Through the first to 39th output ports 1061~ 10639Output. 1st to 39th output ports 1061~ 10639To the first to 39th output interface units 1071~ 10739Output variable-length packets.
[0039]
In this embodiment, the input port side memory 409 and the first to 39th output port side memories 4201~ 42039The data width specified by one address is 8K (kilo) bits. First to 39th input buffers 4061~ 40639, The bus width of the input port side data bus 408, and the first to thirty-ninth selection buffers 413.1~ 41339Is 8K bits. First to 39th effective information compression switches 4161~ 41639, Output port data bus 4191~ 41939Bus width and the first to 39 th output buffers 4221~ 42239Is 8K bits.
[0040]
Also, the first to 39th input buffers 4061~ 40639The packet transfer cycle from the to the input port side memory 409 is 3.28 μ (micro) seconds. 39 input ports 1051~ 10539Transmission rate of variable-length packets input from the port and 39 output ports 1061~ 10639Assume that the maximum transmission rate of the variable-length packets output from is 2.48832 Gbps (gigabit / second). Input port side memory 409 and first to 39 th output port side memories 4201~ 42039Is 42 n (nano) seconds. This is equivalent to the access speed of an existing DRAM (Dynamic Random Access Memory).
[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 cycles 501 to 506, and each time interval is an equal interval of 42 ns. The operation will be described as appropriate while referring to FIG.
[0042]
4 th to 39 th output port information extraction unit 402 in FIG.1~ 40239To the 39th selection buffer 4131~ 41339Each operation up to will be further described. First output port information extraction unit 4021Extracts the output port information added to the input variable length packet and outputs the first output port information signal 4031Is output to the output port determination unit 404. Further, the head position and the tail position of the variable length packet are detected, and the variable length packet is transmitted to the first input buffer 406.1Output to
[0043]
First input buffer 406 for storing input variable-length packets1Is a first packet position information signal 407 indicating the byte position of the packet in which the variable length packet is stored in the buffer based on the information on the head position and the tail position of the detected variable length packet.1Generate First packet position information signal 4071Is output to the output port determination unit 404. In this embodiment, data is generally processed in units of bytes, so that information in units of bytes is generated. Also, the first input buffer 4061By using a double buffer having two buffers, it is possible to accumulate a new variable-length packet that is input even when the stored variable-length packet is being output.
[0044]
The input port side memory control unit 410 starts the first input buffer 406 at a constant cycle (3.28 μsec).1A plurality of variable-length packets stored in the memory are transferred to the input port side memory 409 and data is written to the head address. This is the first output control signal 4111The first input buffer 406 shown in FIG.1Is performed at the timing of writing 507 from. In the present embodiment, the first input buffer 4061, The bus width of the input port side data bus 408, and the data width of one address of the input port side memory 409. As a result, the first input buffer 4061A plurality of variable length packets stored in the memory can be transferred to the input port side memory 409 in one transfer cycle.
[0045]
Similarly, writing of data to the input port side memory 409 is performed by the second output control signal 411 from the input port side memory control unit 410.2(Not shown) at the timing of writing 508 from the second input buffer (not shown) in FIG. 5B. Similarly, the third output control signal 4113(Not shown), writing is performed from a third input buffer (not shown) in FIG. At this time, since the writing cycle to the input port side memory 409 is 84 nsec (42 nsec × 2), the data is transferred from one input buffer every 3.276 μsec (84 nsec × 39). On the other hand, since a variable-length packet is input from one input port at a maximum transmission rate of 2.48832 Gbps, the time required for one input buffer to saturate is at least 3.292 μsec (8192 bits ÷ 2.48832 Gbps). Since 1K bits are usually 1024 bits depending on the capacity of the memory or the buffer, 8K bits is 8192 bits (1024 bits × 8). Therefore, since the transfer cycle from one input buffer to the input port side memory 409 is shorter than the shortest buffer saturation time, this input buffer is not saturated.
[0046]
As described above, every time data is written to the input port side memory 409, the input port side memory control unit 410 outputs the address information signal 425 in which the data is written to the output port determination unit 404.
[0047]
The output port determination unit 404 receives the first output port information signal 4031, The output ports of the plurality of variable length packets stored at the address of the address information signal 425 of the input port side memory 409 are determined. First output port information signal 4031By specifying a plurality or all of the output ports, it becomes possible to select a plurality or all of the output ports. Also, the input first packet position information signal 4071Based on the first to 39th valid information signals 4141~ 41439Generate The output port determination unit 404 performs processing in address units of the input port side memory 409, and outputs a notification signal 426 notifying the completion of the processing to the input port side memory control unit 410 each time the processing is completed.
[0048]
The input port side memory control unit 410 simultaneously reads a plurality of variable length packets of the address notified of the completion of the processing by the notification signal 426 onto the input port side data bus 408 and reads out the first to 39 th selection buffers 413.1~ 41339Transfer to This reading operation is performed at the respective timings of reading 510 to 512 from the input port side memory 409 shown in FIG. The processing is performed in the order of addresses written in the input port side memory 409 at a cycle of 84 nsec by the output control signal 412 of the input port side memory control unit 410. At this time, the output port of the destination of all the variable length packets written in the area specified by one address is determined by the output port determination unit 404. 39 input ports 1051~ 10539Variable-length packets input at 2.48832 Gbps from the first to the 39th valid information signals 414, respectively.1~ 41439Are stored in the input port side memory 409 until a certain time is generated. After a certain time, the first to 39 th selection buffers 4131~ 41339Are being transferred to at the same time.
[0049]
In the access control described above, writing and reading of data in the input port side memory 409 are performed by the address information signal 427 and the read / write control signal 428 of the input port side memory control unit 410. Similarly, the first to 39th output port information extraction units 4021~ 40239To the 39th selection buffer 4131~ 41339Each operation up to is performed.
[0050]
First to 39th selection buffers 4131~ 41339Perform the same operation, and therefore, the first selection buffer 4131Will be described. First selection buffer 4131Is the first valid information signal 414 output by the output port determination unit 4041To receive. First valid information signal 4141Is the first selection buffer 4131Indicates where the variable-length packet selected by is stored in the data area specified by one address of the input port side memory 409. One or a plurality of variable length packets stored in the data area designated by one address output from the input port side memory 409 onto the input port side data bus 408 are received, and the first valid information signal 414 is received.1The variable length packets are selected and stored based on the At this time, the first valid information signal 4141Based on the first selection buffer 4131The first selection buffer 413 has a function of permitting or prohibiting writing to the memory in bit units or byte units.1, The selection of a packet is realized. Therefore, the first selection buffer 4131No unnecessary data is stored between the valid information of the data strings. In the present embodiment, the data width specified by one address of the input port side memory 409 and the first selection buffer 4131And the bus width of the input port side data bus 408 are matched. As a result, the plurality of variable length packets stored in the data area specified by one address of the input port side memory 409 can be transferred to the first selection buffer 413 in one transfer cycle.1Transferred to
[0051]
Next, the first to 39th input buffers 4061~ 40639The transfer of the variable length packet from the to the input port side memory 409 will be described. In this embodiment, since the transfer of the variable-length packet is performed at a constant cycle, the first to 39th input buffers 4061~ 40639There is a case where there is a variable-length packet in the middle of writing. This variable length packet is divided and transferred, output from an output port, and then output from the first to 39th output interface units 107 shown in FIG.1~ 10739Will be restored. The remaining packets obtained by dividing the variable length packets are transferred in the next transfer cycle. When restoring these fragmented packets, information on which input port these packets were input from is needed. This information is added to the divided packet and output.1~ 10739In, the original variable-length packet can be restored based on the added information.
[0052]
Input port information is added to the divided packets, and the first to 39th output interface units 107 are added.1~ 10739The operation of restoring will be specifically described. First to 39th input buffers 4061~ 40639An area where input port information is to be written is secured in advance at the beginning and the end. For example, the first input port 1051First input buffer 4061, Information indicating that the input port is "1" is always written at the beginning and end of the input buffer. First input buffer 406 at a fixed cycle1Is written to the input port side memory 409. At this time, the input port information is also written into the input port side memory 409 at the same time. For the input port information written at the head of the memory area, a valid information signal is output as a transfer to the same output port as the packet written immediately after that. With respect to the input port information written in the last portion of the memory area, a valid information signal is output as a transfer to the same output port as the packet written immediately before.
[0053]
First to 39th output interface units 1071~ 10739In the case of the undivided packet, the packet is stored in a buffer (not shown) for each input port based on the input port information 305 stored in the in-device overhead 302 of the packet shown in FIG. In the case of a divided packet, the divided packet is restored by accumulating it in a buffer for each input port based on the input port information added to the beginning or end of the packet. At this time, the added input port information is deleted. The packets divided as described above are processed.
[0054]
Returning to FIG. 4 again, the first to 39 th selection buffers 4131~ 41339To the 39th output buffer 4221~ 42239Each operation up to will be described. These selection buffers 4131~ 41339Subsequent circuits are the same circuit and operate independently, so the first output port 1061Will be described as a representative of the circuit corresponding to. First selection buffer 4131The variable-length packets accumulated by the first data bus 4151Via the first effective information compression switch 4161Is received. Hereinafter, the case where three variable length packets of packet 1 to packet 3 (P1 to P3) are received will be specifically described.
[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 data area 601 designated by one address. In the present embodiment, 8K bits from LSB 602 (Least Significant Bit: least significant bit) to MSB 603 (Most Significant Bit: most significant bit) are used. In FIG. 1B and thereafter, the operation will be described with reference to the data area 601 in order to explain the flow of data, and will be appropriately described.
[0056]
First effective information compression switch 4161Is the first valid information signal 414 from the output port determination unit 4041To receive. FIG. 6B shows the first valid information signal 414 output by the output port determination unit 404.1Represents. Regarding the three variable length packets, packet 1 indicates the data position of the first position 604, packet 2 indicates the data position of the second position 605, and packet 3 indicates the data position of the third position 606.
[0057]
First selection buffer 4131Is the first valid information signal 414 shown in FIG.1The data at the position indicated by is selected and the variable length packet is stored. FIG. 6C shows the first selection buffer 413.1, The data is stored in the area 607, and no data is stored in the area 608.
[0058]
First effective information compression switch 4161Then, the first valid information signal 414 output by the output port determination unit 40416C, only the area 607 shown in FIG. 6C is taken out, and the first effective information length signal 429 representing the effective information length 609 shown in FIG.1To the first output port side memory control unit 4171Output to
[0059]
First output port side memory control unit 4171Is the first effective information compression switch 4161Output first valid information length signal 4291Effective information length and the first output port side memory 4201In the last address where the variable length packet is written, the length of the area where the variable length packet is not written is compared. In the present embodiment, the first output port side memory 420 shown in FIG.1Are compared with each other in the storage state of variable-length packets. First output port side memory 4201Is divided into an area 611 where writing has been performed up to the previous writing cycle, an area 612 where writing has been newly performed, and an area 613 where writing has not been performed. In this embodiment, if the effective information length is shorter as a result of the comparison, the first output port side memory 4201The variable-length packet is written in an empty area at the last address where the variable-length packet is written. At this time, the first output port side memory 4201Of the area where the variable-length packet is not written in the last address where the variable-length packet is written is set to the first head position signal 418.1As the first effective information compression switch 4161Output to As a result of the comparison, when the effective information length is longer, the first output port side memory 4201The variable length packet is written from the head position of the address next to the last address where the variable length packet is written. At this time, the first valid information compression switch 4161Output the first head position signal 418 of the variable length packet1And outputs the position of the LSB.
[0060]
First effective information compression switch 4161Is the first output port side memory control unit 4171Output the first head position signal 418 of the variable length packet1, The head position of the variable-length packet to be output is determined, and the variable-length packets are arranged as position information 610 shown in FIG. First effective information compression switch 4161Is output as a variable-length packet as shown in FIG. 6D by this arrangement operation. Here, the first valid information compression switch 4161A specific circuit will be described.
[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 first data bus 4151Is 8192 bits, but here, for simplicity, a valid information compression switch 701 for inputting / outputting 4-bit data is shown. The simplified effective information compression switch 701 includes first to fourth input ports 702, respectively.1~ 7024And first to fourth output ports 7031~ 7034It has. The effective information compression switch 701 includes first to fourth selectors 704 having two inputs and two outputs arranged in an array.1~ 7044As the first stage, and similarly as the second and third stages, the fifth to eighth selectors 704 respectively.5~ 7048And ninth to twelfth selectors 7049~ 70412It consists of.
[0062]
This valid information compression switch 701 has a first input port 702 as a valid bit.1, Third input port 7023And a fourth input port 7024Is input to the second input port 702 as an invalid bit.2It is assumed that no data is input to. Also, the first to third output ports 7031~ 7033Output data from First input port 7021Is input to the first selector 7041, The fifth selector 7045, And the ninth selector 7049Through the first output port 7031Is output to Similarly, the third input port 7023Is input to the third selector 7043, The fifth selector 7045, And the tenth selector 70410Through the second output port 7032To the fourth input port 7024Is input to the fourth selector 7044, The eighth selector 7048, And the eleventh selector 70411Through the third output port 7033Is output to Although a two-input two-output selector is shown here, the effective information compression switch of this embodiment can be realized by increasing the number of selectors and the number of stages arranged in an array. In this embodiment, since the number of data bits is "8192", the number of selectors is "8192" and the number of stages is "14".
[0063]
This first valid information compression switch 4161The variable length packets of the position information 610 shown in FIG.1Is stored in As shown in FIG. 6F, following the variable length packet written up to the previous write cycle, only the variable length packet can be stored in an area where writing has not yet been performed. In this embodiment, the first valid information compression switch 4161Output side capacity, first output port side memory 4201, Data width designated by one address, and first output port side data bus 4191Have the same data width. Thereby, the first output port side memory 4201Can be written in one write cycle.
[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 cycles 801 to 806, and the time intervals are equal to 42 nsec. FIG. 12B shows the first output port side memory 420.1First effective information compression switch 416 for1Represents the writing from. First output port side memory 4201Write 807 to the first output port side memory control unit 4171First output control signal 4211The first valid information compression switch 4161Are written with a cycle of 84 nsec (42 nsec × 2).
[0065]
First output port side memory 4201Is stored in the first output port side data bus 419.1Via the first output buffer 4221Has been transferred to In this embodiment, the first output port side memory 4201Data width specified by one address of the first output buffer 4221And the first output port side data bus 4191Have the same data width. Thereby, the first output port side memory 4201To the first output buffer 4221The transfer of the variable-length packet is performed in one read cycle. As shown in FIG. 8C, the first output port side memory 4201Readout 808 from the first output port side memory control unit 4171First output control signal 4211The first output port side memory 420 has a cycle of 84 nsec.1Are performed in the order of the addresses written in. First output port side memory control unit 4171Is the first address information signal 4301And read / write control signal 4311The first output port side memory 4201Is written and read.
[0066]
First output buffer 4221Is stored in the first output port 1061Output line 424 connected to1Is output serially. Also, the first output buffer 4221Is a double buffer having two buffers, so that the first output port side memory 4201Can store the variable-length packets read by. Further, the first output buffer 4221The first output port side memory control unit 417 stores all the variable-length packets stored therein before the buffer becomes empty.1Packet transfer request signal 432 for requesting the transfer of a variable-length packet to1Is output.
[0067]
First output port side memory control unit 4171Is the first output port side memory 4201Of the variable length packet written in the 8K bit area specified by one address in the first output buffer 422 in one read cycle.1Can be forwarded to First output port side memory 4201When an 8K-bit variable-length packet is stored in an 8K-bit area designated by one address, the packet is output at 2.48832 Gbps. Therefore, it takes time until all the stored variable-length packets are output. It will take 3.292 μs.
[0068]
In the present embodiment, the first to 39th output port side memories 4201~ 42039Focusing on the maximum write speed, all the first to 39th input ports 105 in the variable length packet switch circuit 1041~ 10539Is the sum of the speeds at which packets are input. The read speed matches the speed at which packets are output for each output port. Therefore, when traffic congestion occurs in which a packet of a destination of a specific output port is input from a plurality of input ports, there is a possibility that many packets may rapidly stay in an output port side memory of a specific output port. There is.
[0069]
For example, the first output port side memory 4201It is assumed that the accumulated amount of variable-length packets stored in the storage device exceeds a set threshold value. In the present embodiment, the first to 39th input interface units 103 shown in FIG.1~ 10339, A large-capacity buffer for congestion absorption (not shown) is prepared. First output port side memory control unit 4171Are the first to 39th input interface units 1031~ 10339To the first output port 1061Output stop request signal 433 requesting output stop of the variable length packet of the destination1Is output. First to 39th input interface units 1031~ 10339Is a first output stop request signal 4331Is received, the first output port 1061Only the variable-length packet of the destination of (1) is temporarily stored in the buffer for congestion absorption. First output stop request signal 4331Is released, the first output port 1061Resume the output of the variable-length packet to the destination. Thus, the first output port side memory 420 can be used without preparing a large-capacity buffer for each output port in the variable length packet switch circuit 104 of the present embodiment.1Can be prevented from overflowing beyond the threshold value.
[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 selection buffer 413 for each output port1~ 41339Is the valid information signal 414 for each output port1~ 41439, Only necessary variable length packets can be selected from a plurality of variable length packets output on the input side data bus 408 and stored. By setting the parallel development number B to several K bits and greatly reducing the transfer speed S of the switch core, it is possible to construct an ultra-large capacity switch circuit. For example, when the packet switch circuit 104 of the present embodiment is realized by one chip by applying existing memory access performance (DRAM), a switch capacity of about 100 Gbps (97.52 Gbps = 8 Kbits / 84 nsec) per chip is achieved. Become.
[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 39th input ports 105 shown in FIG.1~ 10539Of the configuration corresponding to the first to the 42nd input port 9011~ 90142The other configuration is the same as that of FIG. 4 and its illustration and description are omitted. In this figure, the same parts as those in FIG. In this modified example, first to fourth four input ports 9011~ 9014Is set to 622.08 Mbps (megabits / second), and the fifth to forty-second input ports 9015~ 90142Is set to 2.48832 Gbps. First to 42nd input buffers 9021~ 90242Have the same capacity (8K bits). Also, first to fourth input buffers 9021~ 9024Transfer cycle of the variable-length packets stored in the input port side memory 409 depends on the fifth to forty-second input buffers 902.5~ 90242Is four times the transfer cycle of That is, the first to fourth input buffers 9021~ 9024Is transferred to the input port side memory 409 every 13.12 μsec (3.28 μsec × 4).
[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 side data bus 408 shown in FIG. First to fourth input buffers 9021~ 9024513, the fifth input buffer 9025514 and the writing 515 of a sixth input buffer (not shown) are repeated in numerical order. First to fourth input buffers 9021~ 9024Is written in any one of the first to fourth input buffers 9021~ 9024Are repeated in the order of numbers. Thereby, the first to fourth input buffers 9021~ 9024Of the fifth to forty-second input buffers 9025~ 90242Can be set to four times. The readings 516 to 518 from the input port side memory 409 are performed in the order of the addresses written in the input port side memory 409 at a cycle of 84 nsec as in FIG.
[0077]
In this modification, the first to 42nd input ports 9011~ 90142Is 97.04 Gbps (622.08 Mbps × 4 + 2.48832 Gbps × 38). This is equal to the sum of the transmission rates 97.04 Gbps (2.48832 Gbps × 39) when the maximum transmission rates input from all the input ports shown in FIG. 4 are the same. Therefore, it is possible to realize a packet switch circuit in which the maximum transmission rates with different inputs are mixed without reducing the switch capacity.
[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 information compression switch 416 is configured using a two-input, two-output selector, but may be configured using a crossbar switch.
[0080]
Further, in the present embodiment, the variable length packet is selected and stored based on the valid information signal 414, but may be described next. All packets output onto the input port side data bus 408 are temporarily stored in the selection buffer 413. After all the output packets are stored once, they are sent to the effective information compression switch 416 via the data bus 415 together with the effective information signal 414. It is also possible to provide a function for discarding unnecessary packets before the valid information compression switch 416 and discard the packets. At this time, the selection buffer 413 operates only with the function of a simple buffer. Unnecessary data exists between the valid information of the data strings on the data bus 415, so a function of discarding the data is required. Also, in order to prevent unnecessary data from being transmitted to the data train on the data bus 415, a function of discarding unnecessary packets is provided at the subsequent stage of the selection buffer 413, and it is possible to store all packets once and then discard them. .
[0081]
Further, in the embodiment, when writing data to the output port side memory 420, if the free space of the last address is insufficient, the data is not written to that address but to the next address. In order to solve such a problem that the free area in the area specified by one address is insufficient, for example, two output port side memories 420 may be provided. The two output port side memories 420 are referred to as A memory and B memory, respectively. Further, a description will be given using the effective information compression switch 701 shown in FIG. 7 assuming that the bit width specified by one address of the output port side data bus 419, the A memory and the B memory is 4 bits.
[0082]
First, the write control will be described. It is assumed that the data output from the effective information compression switch 701 is 4 bits. First, data is written to an area of the area designated by one address of the A memory where data has not yet been written, and it is assumed that the first to third bits of the A memory have already been previously written. In this case, new data is written to the fourth bit of the memory A, and the remaining three bits of data are written to the memory B. In the effective information compression switch 701, the first input port 7021To the fourth output port 7034Is output as the fourth bit data. Also, the second to fourth input ports 7022~ 7024Are input to the first to third output ports 703, respectively.1~ 7033Output to each. These operations can be performed via the corresponding selector as described with reference to FIG. Therefore, the fourth output port 7034Is output from the first to third output ports 703 as data to be written to the A memory.1~ 7033Will be arranged as data to be written to the B memory. Writing to the A memory and the B memory are performed simultaneously in the same write cycle. The write data of the next write cycle is written to an unwritten area of the area specified by one address of the B memory. If the data cannot be written to the area of the memory B which has not been written yet, the writing to the memory B and the writing of the remaining data to the memory A are simultaneously performed by the above-described procedure. When the write data is transferred to the A memory and the B memory as they are under the write control, it is necessary to discard unnecessary data in the respective memories or update the data. Regarding read control, reading is performed alternately for each address of the A memory and the B memory. Therefore, data having a bit width designated by one address of the memory can be written in order, so that the efficiency of data transfer can be further improved.
[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 claim 4, all data of one address can be transmitted in parallel and to all packet selecting means in parallel. For this reason, all data of one address can be transmitted in one cycle, and switching of a large capacity packet becomes possible by increasing the data allocated to one address.
[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.
前記入力側蓄積手段はそれぞれの入力路からシリアルデータとしてパケットを順次入力して蓄積する手段であり、前記データ読出手段と出力ポートごとに設けられたパケット選択手段の間には、1つのアドレスの全データをパラレルにかつすべてのパケット選択手段に並行して伝送する伝送路が配置されていることを特徴とする請求項3記載のパケットスイッチ回路。The input side storing means is means for sequentially inputting and storing packets as serial data from respective input paths, and one address of one address is provided between the data reading means and the packet selecting means provided for each output port. 4. The packet switch circuit according to claim 3, wherein a transmission path for transmitting all data in parallel and to all packet selecting means is arranged. 前記データ格納手段は、それぞれの入力路のデータ伝送速度に反比例した周期で対応する入力側蓄積手段からアドレス単位のデータを取り出して格納する手段であり、前記データ読出手段はデータ格納手段に単位時間当たり格納されるアドレス単位のデータの量に反比例した周期で、このデータ格納手段からアドレス単位にデータを読み出す手段であることを特徴とする請求項3記載のパケットスイッチ回路。The data storage means is means for fetching and storing 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, and the data read means stores the unit time in the data storage means. 4. The packet switch circuit according to claim 3, wherein said packet switch circuit is means for reading data from said data storage means in address units at a period inversely proportional to the amount of data stored per hit. 前記出力路別パケット出力手段は、前記1回で取り出した全データと同一量のデータを複数組格納可能で、予め定めた順序でこれらのメモリ領域を指定することでメモリ領域単位でデータの読み出しが行われるようになったパケット格納手段と、前記パケット選択手段で自己の取り込むべき宛先のパケットが選択されるたびにその全部のデータ量を算出するデータ量算出手段と、このデータ量算出手段で算出されたデータ量のパケットを転送するに先立って、前記パケット格納手段の読み出しが行われていない最も古い組のメモリ領域の空き容量とデータ量算出手段で算出したデータ量を比較する比較手段と、この比較手段によって比較された前記データ量の方が前記最も古い組のメモリ領域の空き容量以下であるときそのメモリ領域に前記パケット選択手段で選択されたパケットをすべて転送し、これ以外の場合にはこれらのパケットを前記最も古い組のメモリ領域の次に読み出されるべきメモリ領域にすべて転送するパケット転送手段を具備することを特徴とする請求項3記載のパケットスイッチ回路。The output path-specific packet output means can store a plurality of sets of data having the same amount as all the data extracted at one time, and read out data in memory area units by designating these memory areas in a predetermined order. Packet storing means, which is to be executed, a data amount calculating means for calculating the total data amount each time a destination packet to be taken in by the packet selecting means is selected, and a data amount calculating means for calculating the data amount. Prior to transferring the packet of the data amount, the comparing unit that compares the free space of the oldest set of memory areas where the reading of the packet storage unit is not performed and the data amount calculated by the data amount calculating unit, When the data amount compared by the comparing means is less than the free space of the oldest set of memory areas, Packet transfer means for transferring all packets selected by the packet selection means, and otherwise transferring all of these packets to a memory area to be read next to the oldest set of memory areas. The packet switch circuit according to claim 3, wherein: 前記パケット転送手段は前記パケット選択手段の選択したパケットを隙間なく再配置する再配置手段を備え、前記パケット転送手段はこの再配置手段によって再配置された各パケットを一括してパラレル転送することを特徴とする請求項6記載のパケットスイッチ回路。The packet transfer unit includes a rearrangement unit that rearranges the packets selected by the packet selection unit without gaps, and the packet transfer unit performs parallel transfer of each packet rearranged by the rearrangement unit. 7. The packet switch circuit according to claim 6, wherein:
JP2001061044A 2001-03-06 2001-03-06 Packet switch circuit Expired - Fee Related JP3573095B2 (en)

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)

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