JP3616563B2 - 共有バッファ方式のパケットスイッチ - Google Patents
共有バッファ方式のパケットスイッチ Download PDFInfo
- Publication number
- JP3616563B2 JP3616563B2 JP2000283567A JP2000283567A JP3616563B2 JP 3616563 B2 JP3616563 B2 JP 3616563B2 JP 2000283567 A JP2000283567 A JP 2000283567A JP 2000283567 A JP2000283567 A JP 2000283567A JP 3616563 B2 JP3616563 B2 JP 3616563B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- buffer
- transmission
- address
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は共有バッファ方式のパケットスイッチ、特にLAN(ローカルエリアネットワーク)等で使用するパケットスイッチ装置やルータ装置のバッファアドレスのキュー管理に関する。
【0002】
【従来の技術】
IEEE802.3に代表されるCSMA/CD(Carrier Sense Multiple Access / Collision Detection)方式であり、一般にイーサネットと称されるLANにおいて、スター型接続形態(トポロジー)を構成するスイッチエレメント、特にパケットスイッチ装置やルータ装置には、パケットデータをバッファリングしてスイッチングを実現する際、バッファのアドレスをキュー管理する技術が使用されている。
【0003】
従来の技術の例として,特開平11−163870号公報の「共有バッファ型ATMスイッチ」や特開平10−32581号公報の「ATMセルスイッチ」に記載されている、共有バッファ方式のATMセルスイッチを実現するための、バッファアドレスのキュー管理の技術がある。
【0004】
上記公報には、ATMセルスイッチにおいて共有バッファ方式を実現するための一般的な技術として,共有バッファの空きアドレスを管理する空きアドレス管理キューと、複数の送信チャンネルに対する送信順序を制御する送信アドレス管理キューの基本的な構成と動作が開示されている。
【0005】
先ず、本発明による理解を容易にするために、従来の共有バッファ方式のスイッチエレメントについて図12および図13を参照して簡単に説明する。
【0006】
図12を参照して、共有バッファ方式のスイッチエレメント全体の構成及び動作を説明する。共有バッファ方式のパケットスイッチは、ポート6051〜6054に接続された送受信制御部6011〜6014、これに送受信データバス6021〜6024を介して接続されたパケットスイッチエレメント6001、これに夫々バス6031および6041を介して接続された共有バッファメモリ6003およびキューメモリ6002を含んでいる。各ポート6051〜6054は、それぞれLAN回線を収容する。各ポート6051〜6054から受信されたパケットデータは、送受信制御部、例えば6011で、パラレル信号に変換され、パラレル信号の送受信データバス6021を介して、パケットスイッチエレメント6001に渡される。パケットスイッチエレメント6001は回線から受信したパケットデータを全て、共有バッファメモリ6003に一旦格納する。送信する場合は、パケットスイッチエレメント6001が自ら記憶してあるメモリの番地を使って、共有バッファメモリ6003から格納してあったパケットデータを読出し、パラレル信号の送受信データバス、例えば6022を介して、送受信制御部6012に送り、対応するポート6052からLAN回線に送信される。
【0007】
次に、図13を参照して、スイッチエレメントの構成及び動作を説明する。このスイッチエレメントは、受信ポート7011〜7014および送信ポート7015〜7018に接続されたスイッチエレメント7001およびキューメモリ7002、共有メモリ7003より構成される。キューメモリ7002は、空きバッファアドレス管理回路部7004および送信バッファ管理回路部7005を含んでいる。先に説明した、送受信制御部(図12の6011〜6014)とのインタフェースであるパラレル信号の送受信データバス7020および7021は、複数の受信ポート7011〜7014単位で、1つの受信データバス7020としてスイッチエレメント7001に入力される。また、複数の送信ポート7015〜7018単位で1つの送信データバス7021として、スイッチエレメント7001から出力される。
【0008】
図13では受信データバス7020および送信データバス7021が、それぞれ各1の場合であるが、複数である場合もある。また、受信データバス7020および送信データバス7021が同一バスであってもよい。共有メモリ7003との接続は、メモリの番地を示すアドレスバス7030とデータバス7031により行われる。
【0009】
スイッチエレメント7001は、共有メモリ7003上の空きバッファの番地を管理している、空きバッファアドレス管理回路部7004と、送信すべきパケットの順序を、送信ポート単位に、共有メモリ7003に格納されているバッファの番地として管理する、送信バッファ管理回路部7005をそれぞれ有している。
【0010】
スイッチエレメント7001は、受信データバス7020からパケットデータを受信した場合、空きバッファアドレス管理回路部7004から、格納できるバッファのアドレスを得て、共有メモリ7003にパケットデータを格納する。これと同時に、そのバッファアドレスの情報を送信バッファ管理回路部7005に送り、送信すべきポートの送信バッファの待ち行列に登録される。また、送信側では、この待ち行列に従い、共有メモリ7003からパケットを読み出し、送信データバス7021に出力する。この時、読出しに使用したパケットのバッファアドレスは、空きバッファアドレス管理回路部7004に返還され、別の受信データを格納する際に再度使用される。
【0011】
以上から、共有メモリ方式の場合は、送信バッファ管理回路部7005において、共有メモリ上の何処に格納されたパケットデータでも読出せる必要がある。これは、空きバッファアドレス管理回路部7004と送信バッファ管理回路部7005が管理できるメモリエリアが、共に同じである必要がある。また、アドレス情報を相互にやり取りする必要がある。
【0012】
また、マルチキャストパケットにおけるバッファ解放処理の従来技術の例として、特開平10−294740号公報に記載されている、共有バッファ方式のATMセルスイッチを実現するための、マルチキャストバッファアドレス管理の技術がある。
【0013】
【発明が解決しようとする課題】
上記従来の技術は,共有バッファの空きアドレス管理キューと、出力制御のアドレス管理キューの基本的な構成について開示している。スイッチエレメントのスイッチ容量を大きくする目的で、パケットスイッチエレメント(図12の6001)を、同一デバイスが複数積み重なったビルディングブロック(積み木)構成にした場合、共有バッファのアドレス制御回路部も、複数存在することになり、アドレス管理キューは分散して実装され、並列処理を行うことになる。これらの実現手段に対しては、共に開示されていないため、従来の技術のままでは、スイッチ容量の拡大ができないという問題がある。
【0014】
また別の実現手段として、同様にスイッチングエレメント部を、同一デバイスが複数積み重なったビルディングブロック構成にし、共有バッファのアドレス制御回路部は、これとは別のデバイス1つで実現しようとする場合、スイッチエレメントを実現するデバイスの種類が増えるという問題がある。
【0015】
これらに加え、従来例のATMスイッチにおいては、セルと呼ばれる固定バイト長データをスイッチする技術であり、イーサネットの可変長パケットをスイッチする技術に関しては特に開示がなく、ATMスイッチで扱うセルと同様に固定バイト長のデータとして扱うとすれば、常にイーサネットの最長バイト長のパケットデータを想定したバッファを準備する必要があり、短いバイト長または最小バイト長のパケットデータのスイッチング動作が頻発する場合は、バッファを効率的に使用できないという問題がある。
【0016】
また、公知例として示したマルチキャストパケットにおけるバッファ解放処理では、ビルディングブロック(積み木)構成によりアドレス管理キューが分散されて実装された場合の実現手段に対しては、記載されていないため、従来の技術のままでは、マルチキャストパケットのスイッチングが出来ない問題がある。
【0017】
【発明の目的】
そこで本発明の目的は、共有バッファのアドレス制御回路部を、同一デバイスが複数積み重ねるビルディングブロック(積み木)構成により実施可能にする共有バッファ方式のパケットスイッチを提供することである。
【0018】
【課題を解決するための手段】
前述の課題を解決するため、本発明による共有バッファ方式のパケットスイッチは、次のような特徴的な構成を採用している。
【0019】
(1)バッファのアドレスをキュー管理する制御回路が複数のデバイスに分散する構成である共有バッファ方式のパケットスイッチにおいて、
共有バッファの空きバッファアドレスを管理する空きアドレス管理キューは、複数のデバイスのそれぞれに存在し、そのうちの特定の1つのみを動作させて、空きバッファのアドレス情報を一元管理する共有バッファ方式のパケットスイッチ。
【0020】
(2)パケットを構成する単位バッファのチェインを管理する使用済みアドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが一つのパケットで使用した単位バッファの順序情報を同時に同じ情報として冗長的に管理する上記(1)の共有バッファ方式のパケットスイッチ。
【0021】
(3)各送信チャンネル毎のパケット送信順序を管理する送信アドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが送信するパケットの順序情報を独立して管理する上記(1)又は(2)の共有バッファ方式のパケットスイッチ。
【0022】
(4)任意の送信アドレス管理キュー間で、送信パケットの移動を行う場合、送信アドレス管理キューによりパケットの容量が単位バッファよりも大きく、複数の単位バッファで格納されている場合であっても、一つのパケットを構成する単位バッファの接続情報を管理し、この管理情報は各デバイスで同時に同じ情報をもつため管理情報の移動を行わない上記(2)の共有バッファ方式のパケットスイッチ。
【0023】
(5)空きアドレス管理キューと送信アドレス管理キュー又は使用済みアドレス管理キュー間でアドレスのハンドシェイクを行い、エンキューおよびデキューするアドレス情報のパスを、共有メモリのデータバスを時分割に使用する際のメモリアドレスバスを使用して行う上記(2)又は(3)の共有バッファ方式のパケットスイッチ。
【0024】
(6)マルチキャストパケットを一時的に保持するマルチキャスト管理キューは、各デバイス単位が送信する同報パケットの順序を個別に管理する上記(2)または(3)の共有バッファ方式のパケットスイッチ。
【0025】
(7)マルチキャストパケットのバッファ解放処理において、分散した各デバイス単位に、自デバイスが管理している宛先への送信が全て完了したことを認識する手段は、各デバイス単位に存在させ、各デバイスからの送信完了通知を受けて、全デバイスの送信が全て完了したことを認識する手段は、各デバイスに存在させ、空きアドレス管理キューが動作するのと同じデバイスにおいて同時に動作させ、該バッファの解放処理を行う上記(6)の共有バッファ方式のパケットスイッチ。
【0026】
【発明の実施の形態】
次に,本発明による共有バッファ方式のパケットスイッチの実施形態例について図面を参照して詳細に説明する。
【0027】
図2は、本発明による共有バッファ方式のパケットスイッチによるパケットスイッチ装置2000およびそれに接続される複数のLANセグメント2011〜2014を有するシステム構成図である。このネットワークにつき簡単に説明する。
【0028】
パケットスイッチ装置2000は、複数のLANセグメント2011〜2014を集線接続し、スター型のLANトポロジーを構成する。ここで想定するLANとは、IEEE802.3に代表される、CSMA/CD(Carrier Sense Multiple Access/Collision Detection)方式の、通常イーサネットと称されるLANで、10Mbpsや100Mbpsや1Gbpsの全二重又は半二重の通信速度を持つ。
【0029】
次に、これらLANセグメント2011〜2014について説明する。
【0030】
これらLANセグメント2011〜2014は、伝送路と10Mbpsや100Mbpsや1Gbpsの通信帯域を共有する単位とする。LANセグメント2011、2013および2014は、スイッチング機能を持たない、単純なリピータ機能を有する集線装置(単にリピータ・ハブという)2021、2023および2024で、各端末がやはりスター型に接続された構成である。また、LANセグメント2014で示すように、リピータ・ハブ2021、2023、2024の機能によっては、一部ブランチ型に端末を接続することも可能な場合がある。いずれにせよ、これらリピータ・ハブ2021、2023、2024により構成された1つのセグメント内においては、CSMA/CDの方式に従って、各セグメント2011〜2014内の全端末およびパケットスイッチ装置2000のポートで、伝送路および通信帯域を共有する半二重通信である。
【0031】
他方、LANセグメント2012は、サーバ装置2022への接続によく見られる形態で、リピータ・ハブを用いず、パケットスイッチ装置2000のポートに対し、1対1の接続で、全二重の通信が可能とされている。
【0032】
LAN上で通信されるパケットのフレームフォーマットは、従来構成であり、図10に示す如く、DA(Destination−Address),即ち宛先アドレス情報とSA(Source Address)即ち発信元アドレス情報を含んである。DATAは情報データの部分で可変長である。通常のイーサネットでは、パケット全体で64バイトから1518バイトのフレーム長となっている。
【0033】
パケットスイッチ装置2000は、このフレームフォーマットを持つパケットデータを、1つのLANセグメント、例えば2011から受信し、DA情報に基づき、別のLANセグメント、例えば2012に対して、そのパケットデータを転送する、スイッチング動作を実現する装置である。
【0034】
次に、図3を参照して図2のパケットスイッチ装置2000の構成について詳細に説明する。
【0035】
LANセグメント2011〜2014に接続される部分をポートと呼び、通常は8〜32個程度又は場合によってはそれ以上のポート数を有する。図3のパケットスイッチ装置2000の場合はポート#0〜ポート#fの合計16ポートである。
【0036】
4個のポートの送受信制御部3011〜3014は、1つ又は複数のポート単位に存在し、通常1つのデバイスとネットワークのアドレス情報を格納する制御メモリで構成される。図3の例では、4本のポート単位で、送受信制御回路は存在する。接続されたLANの回線に対し、パケットデータの送受信動作を実現する。主な処理は、シリアルデータで通信されるLAN回線と、パラレル処理する装置内部のデータバスとの間の、データのシリアル/パラレル変換処理と、受信したパケットに含まれる宛先情報を解析し、送信先ポートを決定する処理である。
【0037】
共有メモリ3020は、SRAM(スタティックRAM)又はDRAM(ダイナミックRAM)のメモリデバイスで構成され、パケットデータを一時的に保持する。パケットデータは、予め仕切られたパケットバッファと呼ぶスペースに格納される。パケットバッファの番地(アドレス)はスイッチエレメントが持つキュー方式のバッファ管理回路によって管理される。
【0038】
4個のスイッチングエレメント3001〜3004は、1つのデバイスとバッファ管理を行う制御メモリ(キューメモリ)で構成される。送受信制御部3011〜3014とは、パラレル展開された送受信データバス3051〜3054で接続される。その接続の形態は、送受信データバスのビット幅をtxkビットとし、スイッチングエレメント3001〜3004のデバイスの数を4とした場合、tビット単位でビットスライスされた、tビット幅を持つ送受信データバス3041〜3044が、4個あるスイッチングエレメント3001〜3004に接続される。
【0039】
共有メモリ3020との接続は、スイッチングエレメント3001〜3004が、各々独自に共有メモリ3061〜3064に共有メモリデータバス3031〜3034で行なわれる。つまり、共有メモリデータバス3031〜3034も4等分にビットスライスされている。
【0040】
図4を参照して、本発明による共有バッファ方式のパケットスイッチにおけるキュー管理の実施形態について詳細に説明する。
【0041】
本発明による共有バッファ方式のパケットスイッチは、受信データバスがn本(図3の例では4本)と、送信データバスがn本(図3の例では4本)で、1本の受信データバス又は送信データバスで、m本のLAN回線に接続されたポートを収容し、スイッチングエレメント全体で、mxn本のポート本数を収容する構成である。
【0042】
受信データバスと送信データバスの接続は、1つのデータバス幅をスイッチエレメントの個数分の1にビットスライスして接続する(図3の例)。つまり、同一のスイッチエレメントが複数で、ビルディングブロック(積み木)型の構成をとることで、処理するデータ量をスイッチエレメントの個数倍に増やす構成のパケットスイッチ装置である。
【0043】
1個目のスイッチエレメント4051はデータの送受信部4002とキュー管理制御部4001から構成される。LANのポート側の接続は、n本分の受信データバス4011と、n本分の送信データバス4012で接続されている。共有メモリ4300とはメモリのアドレスバス4330と、データバス4310で接続された構成である。
【0044】
2個目のスイッチエレメント4151からn個目のスイッチエレメント4251も同様の構成をとる。
【0045】
各スイッチエレメント4051(および4151,4251)の受信部4003(および4103,4203)は、各々の受信データバス4011(および4111,4211)から受信パケットを認識すると、同一デバイス内のキュー管理制御部4001(および4101,4201)に対して、受信パケット通知4021(および4121,4221)を行う。各々の受信部4003(および4103,4203)は、mxn本のポートに対する全ての受信パケットに対してその通知を行う。
【0046】
受信パケットは、データバス4013(および4113,4213)を介して共有メモリ4300に転送する。
【0047】
キュー管理制御部4001は、デバイスの位置情報等により、1つめのスイッチエレメント4051に存在するキュー管理制御部であることを認識し、受信パケットを格納するバッファの空きアドレス4032を出力する。他のスイッチエレメントに存在するキュー管理制御部4101および4201は出力しない。
【0048】
送信部4004(および4104,4204)は、キュー管理制御部4001(および4101,4201)から、m本のポートに対する送信キュー情報4022(および4122,4222)の通知を受け、送信ポートを決定する。
【0049】
キュー管理制御部4001(および4101,4201)は、送信部4004(および4104,4204)が決定したポート番号4023(および4123,4223)の通知を受け、送信パケットの読み出しアドレス4032(および4132,4232)を出力する。送信パケットデータ4014(および4114,4214)は、送信部4004(および4104,4204)に転送され、送信データバス4012(および4112,4212)から転送される。
【0050】
次に、図1を参照して、キュー管理制御部4001〜4201の具体例について詳細に説明する。
【0051】
空きアドレス管理キュー1010は1つめのスイッチエレメントであるデバイス0でのみ動作する。他のスイッチエレメントにおいても同一デバイスである以上は空きアドレス管理キュー1110及び1210の回路は存在するが動作しない。
【0052】
使用済みアドレス管理キュー部1020(および1120,1220)は、使用済みアドレス管理キュー0(1021)、使用済みアドレス管理キュー1および使用済みアドレス管理キューk(1022)から成る。1つのパケットを構成する単位バッファのチェインを管理するキューで、存在するパケットの数だけキューは存在する。また、各スイッチエレメントにおいて、使用済みアドレス管理キュー部の内容は同一である。
【0053】
デバイス0のスイッチエレメントの送信アドレス管理キュー部1030は、送信アドレス管理キュー00(1031)、送信アドレス管理キュー01、及び送信アドレス管理キュー0m(1032)から成る。つまり、送信データバス0配下に存在する送信ポート単位に存在し、パケットを格納したバッファの先頭アドレスのみキューイングし、その送信順序を管理する。デバイス1以降の送信アドレス管理キュー部1130および1230も同様に、それぞれ送信データバス1および送信データバスn配下の送信ポートに対応した送信アドレス管理キューを行う。
【0054】
次に,本発明による共有バッファ方式のパケットスイッチの実施形態例の動作について,図面を参照して詳細に説明する。
【0055】
先ず、図3を参照して、本発明による共有バッファ方式のパケットスイッチによるパケットスイッチ装置2000の動作について詳細に説明する。
【0056】
ポートでシリアルデータとして受信したパケットデータは、送受信制御部、例えば3011で、シリアル/パラレル変換処理され、受信データバスに出力される。その際、送受信制御部3011は、受信したパケットに含まれる宛先情報を解析し、送信先のポートを決定する処理を行い、受信データバスに出力するパケットデータに送信先ポート情報を付加する。
【0057】
送信先ポート情報はビットスライスされ、分割されたバス単位に同一の内容が付加される。複数存在するスイッチングエレメント3001〜3004の各々は、その送信先ポート情報を見て、自デバイスで管理すべき送信パケットか否かの判断を行う。また、パケットデータに対しては、受信の場合、自デバイスが接続されたビットスライス位置の受信データバスを介して送られてきたデータを、自デバイスが接続する共有メモリ3020に格納する。
【0058】
送信の際も同様で、自デバイスが接続する共有メモリ3020から読出したデータを、送信データバスの自デバイスが接続されたビットスライス位置の送信データバスに出力する。
【0059】
次に、図1を参照しながら、本発明によるスイッチエレメントのキュー管理の動作について詳細に説明する。先ず、受信側動作について説明する。
【0060】
スイッチエレメント(図4の4051〜4251)は、n本の受信データバス4011〜4211から1つ又は複数のパケットを受信すると、キュー管理制御部4001〜4201に対して、パケット受信の通知4021〜4221として、受信ポートの情報とそのパケットの宛先情報の通知を行う。
【0061】
先ず、空きアドレス管理キュー1010は、このパケット受信の情報からパケットを格納するための空きバッファのアドレスを、受信部(図4の4003、4103および4203)がビットスライスされて転送された受信データを共有メモリに転送するタイミングに同期して、共有メモリへの書込みアドレスとして出力する。同期させるタイミングは、予め定めたタイムスロットにより、双方共にこれを知る。尚、この空きアドレス出力はデバイス0の空きアドレス管理キュー1010のみ行う。
【0062】
同時に、各デバイスの使用済みアドレス管理キュー、例えば1120は、空きアドレス管理キュー1010が出力したアドレスをエンキューパス、例えば1140から受け取り、パケットを構成する単位バッファのチェインを管理する。
【0063】
可変長のパケットデータをパケットメモリに格納する動作について、図5を参照して説明する。パケットメモリは容量bバイトの単位バッファの単位で使用する。パケットは、データ長をPバイトとすると、下式で表されるp個の単位バッファを使用してバッファに格納する。
((p−1)*b) < P ≦ (p*b),(p=1、2、3…)
【0064】
この単位バッファのチェインを管理するのが使用済みアドレス管理キュー5201である。パケットの先頭bバイト5001を格納する単位バッファ5101のアドレスをba01、続くbバイトを格納する単位バッファ5102のアドレスをba02、同様にチェインする単位バッファ5103のアドレスをba03とすれば、使用済みアドレス管理キュー5201が示す先頭のバッファアドレスはba01となり、最後尾を示すアドレスはba0pとなる。
【0065】
受信パケットが転送される形態としては、複数のポートから受信した各々のパケットは、単位バッファの単位でマルチブレクスされて受信データ上を転送される。これに対し使用済みアドレス管理キュー、例えば1020は、同時に転送される受信ポートの情報から、各受信ポート単位に1つのパケットとして組立直すことができる。
【0066】
また、同時に、送信アドレス管理キュー、例えば1130は、受信部が出したパケットの宛先情報の通知と、デバイスの位置情報から、自デバイスが管理すべき送信ポート宛であるかの判断をする。
【0067】
もし、管理対象の送信ポート宛パケットデータであった場合には、エンキューパス、例えば1140から受信パケットの先頭の格納アドレスのみを受取り、該当する送信バッファキューの最後にエンキューする。もし、管理対象の送信ポート宛パケットデータで無かった場合、無視し、エンキュー動作も行わない。
【0068】
次に、送信側の動作を説明する。送信アドレス管理キュー部、例えば1130は、各送信アドレス管理キューに送信すべきパケットのアドレスがキューイングされているか否かの情報(図4の4122)を、スイッチエレメントの送信部(図4の4104)に常に転送する。送信部はこの情報に基づき、送信すべきポートの番号を決定し、その結果を予め決めておいたタイムスロットに従い、送信アドレス管理キュー部1130に送信要求として通知する(図4の4123)。
【0069】
パケットの先頭からの送信の場合、送信アドレス管理キュー部1130は、この通知に従い、該当する送信アドレス管理キュー、例えば1131からパケットの先頭のアドレスを1つ取出し、デキューパス1141を介して共有メモリのアドレスバス1330に、パケットの読出しアドレスとして出力する。
【0070】
パケットデータの読出しと同時に、共有メモリのアドレスバス1330に出力されたバッファのアドレスは、空きアドレス管理キュー1010のエンキューパス1050を介して空きアドレス管理キュー1010にエンキューされ、その単位バッファは解放される。
【0071】
p=2以上のパケットで、先頭の単位バッファ以外の送信の場合は、使用済みアドレス管理キュー部1120が、送信部(図4の4123)の通知に従い、バッファのアドレスを1つ取出し、デキューパス1141を介して共有メモリのアドレスバス1330に、パケットの読出しアドレスとして出力する。パケットデータの読出しと同時に、共有メモリのアドレスバス1330に出力されたバッファのアドレスは、空きアドレス管理キュー1010のエンキューパス1050を介して空きアドレス管理キュー1010にエンキューされ、その単位バッファは解放される。
【0072】
次に、本発明による共有バッファ方式のパケットスイッチの動作を図6〜図8を参照して詳細に説明する。先ず、図6を参照して、受信データバス上で転送されるパケットデータの形式を説明する。横の4本の列8000〜8003は、8ビット単位にビットスライスされた受信データバスで、各々8ビット幅を持つ。縦の行8010、8011、8012、8013・・・は、受信データバス1ワードを表し、上の行8010のワードから順に転送される。
【0073】
行番号8010のワードは、送受信制御回路部により付加された、送信先のポートを示す送信先ポート情報(RH)である。送信先ポート情報(RH)は、ビットスライスされた受信データバス全てに付加することで、全てのスイッチングエレメントが受信できる。送信先ポート情報(RH)には、受信ポートの情報と、送信先ポートの情報と、パケットの先頭からのデータであるかの情報と、パケットの終りを含んだデータであるかの情報等が含まれる。行番号8011以降は、ポートから受信した、D00、D01、D02、D03、D04・・・のバイト順序を持つパケットデータで、バイト単位にビットスライスされ、各スイッチングエレメントに転送される。
【0074】
次に、キュー方式のバッファ管理の動作について、図7および図8を参照して詳細に説明する。図8は共有メモリ上で、パケットデータが格納されるイメージを示す。この例では、8バイト単位にビットスライスされた共有メモリが4つで1ワードを構成し、64バイトを1つのバッファの単位とし、そのバッファの番地は、それぞれ番地a、番地b、番地cのワードアドレスの構成である例である。
【0075】
図7の例は、これらのバッファが夫々番地a、番地b、番地c、・・・番地eの順に、キューに格納されている状態を表す(9003)。スイッチエレメントのデバイス内の空きアドレス管理キュー又はポート単位に存在する送信アドレス管理キュー9001では、キューメモリ9002に存在するバッファキューの先頭のポインタ9011と最後尾のポインタ9012のみ保持する。
【0076】
本発明によるスイッチエレメントでは、このキューのポインタをバッファアドレスに直接対応させる。これにより、キューメモリ9002をアクセスする際のポインタ(キューメモリのアドレス)がバッファアドレスにも対応する。つまり、先頭のポインタ9011は、キューに登録された先頭のバッファアドレス(番地a)で、先頭のポインタ(番地a)が示すキューメモリの番地に、2番目のバッファアドレス(番地b)が格納されている。
【0077】
キューに登録された先頭のバッファアドレス(番地a)を取出すデキュー動作を説明する。先ず、先頭のポインタ9011の内容を直接空きバッファアドレス又は送信バッファアドレスとして使用する。このため高速にバッファアドレスの生成が行える。続いて、共有メモリのアクセスを行っている間に、今使用した先頭のポインタ9011をキューメモリのアドレスとして使用し、次のバッファアドレスを読出し、この値で、先頭のポインタ9011を更新する。
【0078】
キューの最後に、新たにバッファアドレスを登録する、エンキュー動作を説明する。先ず、最後尾のポインタ9012をキューメモリのアドレスとして使用し、登録すべきバッファアドレスをそこに書込む。また、この値で、最後尾ポインタ9012を更新する。
【0079】
次に、共有メモリのアクセスを行う際のタイムスロットに関して、図9を参照して詳細に説明する。この例では、4つの受信データバスに対応した受信パケットデータの格納動作と、4つの送信データバス対応した送信パケットデータの読出し動作の、合計8つの、共有メモリに対するスイッチエレメントのマスタ動作が存在する。よって、3ビットの常時動作(フリーラン)カウンタにより8値を発生し、8つのマスタ動作のタイムスロットに割当てる。図9の例では、カウンタの値=000bの場合、受信データバス#0に対応するの共有メモリへの書込みデータ転送動作で、カウンタの値=100bの場合、送信データバス#0に対応する共有メモリからのリードデータ転送動作となる。
【0080】
次に、本発明による共有バッファ方式のパケットスイッチを使用するパケットスイッチ装置の他の実施形態について、図1を参照して説明する。
【0081】
異なるデバイス間の送信アドレス管理キューで、キューのつなぎ換え動作に関して説明する。送信アドレス管理キュー00(1031)はLAN回線のポート宛のキューではなく、本装置内のCPU宛の送信キューとする。換言すると、通常LAN回線のポートが存在する場所に、CPUの処理ポートが位置する構成である。パケットスイッチ装置(図2の2000)において、受信したパケットの送信先が解決できなかった場合は、一旦CPU宛の送信アドレス管理キュー00(1031)にキューイングし、ソフトウエア処理にて、そのパケットの転送先を決定する動作が発生する。
【0082】
この場合、CPUは送信アドレス管理キュー00(1031)を直接読出し、宛先不明のパケットが格納されているバッファのアドレスを知り、宛先の解決に必要な情報のみ共有バッファ上のパケットから取出す。CPUは宛先を解決すると、受信部(図4の4003)を経由して、パケット受信の通知(図4の4021)のパスを利用して、キューのつなぎ換え要求を通知する。
【0083】
空きアドレス管理キュー1010は、パケット受信の通知(図4の4021)が、キューのつなぎ換え要求であった場合は、通常の空きアドレスのデキュー動作を行わず、メモリへの書込み動作も行わない。その代わり、送信アドレス管理キュー00(1031)は先頭のアドレスをデキューし、デキューパス1041を介して、アドレスバスに出力する。
【0084】
使用済みアドレス管理キュー部、例えば1120は、通常のパケット受信では無いと判断し、このパケット受信の通知(図4の4021)は無視する。他の送信アドレス管理キュー、例えば1130は、このパケット受信の通知(図4の4021)を通常のパケット受信に同様と判断し、該当送信ポートに対応する送信アドレス管理キューにエンキューする。このとき、もし、パケット長がp=2以上で単位バッファのチェイン情報が必要なパケットで、且つ異なるデバイス間の送信アドレス管理キューに移動したとしても、使用済みアドレス管理キューは全デバイスで同じ内容を保持しているため、問題とならず、容易にキューのつなぎ換えが可能となる。
【0085】
次に、本発明のスイッチエレメントを使用するパケットスイッチ装置の第3の実施の形態について、図11を参照して説明する。図11は、マルチキャストパケットのスイッチング処理におけるキュー管理制御部の構成図である。
【0086】
マルチキャストアドレス管理キュー13020〜13220は、各デバイス単位に存在し、マルチキャストパケットの一時的なキュー管理を行う。エンキューパスセレクタ13040〜13240は、送信アドレス管理キュー13030〜13230へのエンキューパス13072〜13272を選択する。ユニキャストパケット受信時は、エンキューパス13070〜13270を選択し、受信の無い空き時間は、エンキューパス13071〜13271を選択する。送信ポートカウンタ13050〜13250は、各デバイス単位に存在し、パケット毎の宛先ポート数の記憶、単位バッファ毎の送信済みポート数の記憶、および宛先ポート数と送信済みポート数の比較を行う。
【0087】
デバイスカウンタ13060は、空きアドレス管理キュー13010が動作するデバイスのみに存在させ、単位バッファ毎の送信済みデバイス数の記憶、およびデバイスの構成情報から得られるデバイス数と送信済みデバイス数の比較を行う。
【0088】
まず、マルチキャストパケットのスイッチング動作に関して説明する。
受信部(図4の4003)から受け取ったパケット受信の通知(図4の4021)がユニキャストパケットであった場合、第1の実施の形態で述べた通り、パケットの宛先情報とデバイスの位置情報から、管理対象のデバイスのみ、送信アドレス管理キュー13030〜13230にエンキューしていた。これは、エンキューパスセレクタ13040〜13240がエンキューパス13070〜13270に選択された場合である。
【0089】
これに対し、パケット受信の通知(図4の4021)がマルチキャストパケットであった場合、全てのデバイスのマルチキャストアドレス管理キュー13020〜13220に一時的にエンキューする。その後、各デバイスは、それぞれ独立して、ユニキャストパケットの受信の有無を監視し、空き時間にエンキューパスセレクタ13040〜13240をデキューパス13071〜13271側に切り替えて、マルチキャストアドレス管理キュー13020〜13220からデキューし、宛先となる複数の送信アドレス管理キュー13030〜13230へエンキューする、キューの積み替えを行う。
【0090】
このとき、もし、パケット長がp=2以上で単位バッファのチェイン情報が必要なパケットであったとしても、使用済みアドレス管理キュー13090〜13290は、全デバイスで同じ内容を保持しているため、問題とならない。また、パケットの実体は、共有メモリ上に1つしか存在せずに、キューエントリのコピーだけを各デバイスで分散処理するため、高速なスイッチング動作が可能となる。
次に、共有バッファの解放動作に関して説明する。
【0091】
マルチキャストパケットは、共有メモリ上に1つしか存在しないため、全宛先への送信が完了してからでないと、そのバッファを解放することができない。
【0092】
まず、マルチキャストアドレス管理キュー13020〜13220からデキューし、送信アドレス管理キュー13030〜13230へエンキューする際、各デバイス単位にエンキューした宛先ポート数を送信ポートカウンタ13050〜13250に記憶する。同時に、送信済みポート数として、初期値の“0”を書き込んでおく。
【0093】
次に、送信の際、送信アドレス管理キュー13030〜13230からデキューされたパケットが、マルチキャストパケットであった場合、送信ポートカウンタ13050〜13250から該パケットに対応する宛先ポート数と、該バッファに対応する送信済みポート数を取り出し、送信済みポート数を+1し、宛先ポート数と不一致ならば、+1した送信済みポート数を送信ポートカウンタ13050〜13250に書き戻し、一致したら、送信完了通知13074〜13274を起動する。デバイスカウンタ13060では、各デバイスからの送信完了通知13500を受けると、該バッファに対応する送信済みデバイス数を取り出し、これに+1し、デバイスの構成情報から得られるデバイス数と不一致ならば、+1した送信済みデバイス数をデバイスカウンタ13060に書き戻し、一致したら、全宛先への送信が完了したと判断し、エンキューパス13080により、該バッファのアドレスを空きアドレス管理キュー13010にエンキューし、該バッファを解放する。
【0094】
また、パケット長がp=2以上で単位バッファのチェイン情報が必要なパケットであった場合、2個目のバッファ以降は、バッファのアドレスを使用済みアドレス管理キュー13090〜13290から取り出し、同様にバッファを解放する。
【0095】
さらに、解放動作においても、使用済みアドレス管理キュー13090〜13290は、全デバイスで同じ内容を保持しているため、問題とならない。
【0096】
以上、本発明による共有バッファ方式のパケットスイッチの好適実施形態例の構成および動作を詳細に説明した。しかし、本発明は斯かる特定実施形態例のみに限定されるべきではなく、本発明の要旨を逸脱することなく種々の変形変更が可能であること、当業者には容易に理解できよう。
【0097】
【発明の効果】
上述の説明から明らかな如く、本発明による共有バッファ方式のパケットスイッチによると、共有バッファ方式の同一のスイッチエレメントを複数個使用して、大規模(大容量)構成のパケットスイッチ装置が容易に実現できるという実用上の顕著な効果を有する。その理由は、共有バッファ方式を実現する、バッファ管理部を、従来中央1箇所に存在するべきところ、スイッチエレメントのデータ処理部分をビットスライス等の技術により、ビルディング構成にする場合にも対応するキューの構造を実現させたからである。
【図面の簡単な説明】
【図1】本発明による共有バッファ方式のパケットスイッチの実施形態例を示す機能構成図である。
【図2】本発明による共有バッファ方式のパケットスイッチを用いるネットワークの構成図である。
【図3】本発明による共有バッファ方式のパケットスイッチにおけるパケットスイッチ装置の構成図である。
【図4】本発明による共有バッファ方式のパケットスイッチにおける複数のスイッチングエレメントの接続を示す構成図である。
【図5】本発明による共有バッファ方式のパケットスイッチにおけるパケットを構成するバッファの形態示す構成図である。
【図6】本発明による共有バッファ方式のパケットスイッチにおけるスイッチングエレメントへの入出力データの構成図である。
【図7】本発明におけるバッファポインタのキュー管理を示す機能構成図である。
【図8】本発明におけるタイムスロットの例を示すタイミングチャートである。
【図9】本発明におけるバッファメモリ上に格納されるデータの構成図である。
【図10】本発明で通信されるパケットデータのフォ−マットである。
【図11】本発明の他の実施形態を示す機能構成図である。
【図12】従来の共有バッファ方式のパケットスイッチ装置の機能構成図である。
【図13】従来の共有バッファ方式のパケットスイッチ装置を構成するスイッチングエレメントの機能構成図である。
【符号の説明】
2000 パケットスイッチ装置
1010、1110、1210、13010 空きアドレス管理キュー
1020〜1022、1120〜1122、1220〜1222、13090、13190、13290 使用済みアドレス管理キュー
1030〜1032、1130〜1132、1230〜1232、13030、13130、13230 送信アドレス管理キュー
1040、1050、13070、13072、13080、13170、13172、13270、13272 エンキューパス
1041、1051、13071、13073、13171、13173、13271、13273、13300、13400 デキューパス
3020、3061〜3064、4300 共有メモリ
13020、13120、13220 マルチキャストアドレス管理キュー
13040、13140、13240 エンキューパスセレクタ
13050、13150、13250 送信ポートカウンタ
13060 デバイスカウンタ
13074、13174、13274、13500 送信完了通知
Claims (7)
- バッファのアドレスをキュー管理する制御回路が複数のデバイスに分散する構成である共有バッファ方式のパケットスイッチにおいて、
共有バッファの空きバッファアドレスを管理する空きアドレス管理キューは、複数のデバイスのそれぞれに存在し、そのうちの特定の1つのみを動作させて、空きバッファのアドレス情報を一元管理することを特徴とする共有バッファ方式のパケットスイッチ。 - パケットを構成する単位バッファのチェインを管理する使用済みアドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが一つのパケットで使用した単位バッファの順序情報を同時に同じ情報として冗長的に管理することを特徴とする請求項1記載の共有バッファ方式のパケットスイッチ。
- 各送信チャンネル毎のパケット送信順序を管理する送信アドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが送信するパケットの順序情報を独立して管理することを特徴とする請求項1又は2に記載の共有バッファ方式のパケットスイッチ。
- 任意の送信アドレス管理キュー間で、送信パケットの移動を行う場合、送信アドレス管理キューによりパケットの容量が単位バッファよりも大きく、複数の単位バッファで格納されている場合であっても、一つのパケットを構成する単位バッファの接続情報を管理し、この管理情報は各デバイスで同時に同じ情報をもつため管理情報の移動を行わないことを特徴とする請求項2に記載の共有バッファ方式のパケットスイッチ。
- 空きアドレス管理キューと送信アドレス管理キュー又は使用済みアドレス管理キュー間でアドレスのハンドシェイクを行い、エンキューおよびデキューするアドレス情報のパスを、共有メモリのデータバスを時分割に使用する際のメモリアドレスバスを使用して行うことを特徴とする請求項2又は3に記載の共有バッファ方式のパケットスイッチ。
- マルチキャストパケットを一時的に保持するマルチキャスト管理キューは、各デバイス単位が送信する同報パケットの順序を個別に管理することを特徴とする請求項2または請求項3記載の共有バッファ方式のパケットスイッチ。
- マルチキャストパケットのバッファ解放処理において、分散した各デバイス単位に、自デバイスが管理している宛先への送信が全て完了したことを認識する手段は、各デバイス単位に存在させ、各デバイスからの送信完了通知を受けて、全デバイスの送信が全て完了したことを認識する手段は、各デバイスに存在させ、空きアドレス管理キューが動作するのと同じデバイスにおいて同時に動作させ、該バッファの解放処理を行うことを特徴とする請求項6記載の共有バッファ方式のパケットスイッチ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000283567A JP3616563B2 (ja) | 1999-09-21 | 2000-09-19 | 共有バッファ方式のパケットスイッチ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-266899 | 1999-09-21 | ||
JP26689999 | 1999-09-21 | ||
JP2000283567A JP3616563B2 (ja) | 1999-09-21 | 2000-09-19 | 共有バッファ方式のパケットスイッチ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001160827A JP2001160827A (ja) | 2001-06-12 |
JP3616563B2 true JP3616563B2 (ja) | 2005-02-02 |
Family
ID=26547641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000283567A Expired - Fee Related JP3616563B2 (ja) | 1999-09-21 | 2000-09-19 | 共有バッファ方式のパケットスイッチ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3616563B2 (ja) |
-
2000
- 2000-09-19 JP JP2000283567A patent/JP3616563B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001160827A (ja) | 2001-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4991172A (en) | Design of a high speed packet switching node | |
US5923654A (en) | Network switch that includes a plurality of shared packet buffers | |
US6128310A (en) | Multiport data network switch having a random number generator shared by multiple media access controllers | |
US6035360A (en) | Multi-port SRAM access control using time division multiplexed arbitration | |
EP1045558B1 (en) | Very wide memory TDM switching system | |
TWI482460B (zh) | 網路處理器單元及其相關方法 | |
US6754222B1 (en) | Packet switching apparatus and method in data network | |
US7324537B2 (en) | Switching device with asymmetric port speeds | |
WO2001069849A2 (en) | Method and apparatus for shared buffer packet switching | |
US7991926B1 (en) | Scalable memory architecture for high speed crossbars using variable cell or packet length | |
US6601116B1 (en) | Network switch having descriptor cache and method thereof | |
US5051985A (en) | Contention resolution in a communications ring | |
US6771654B1 (en) | Apparatus and method for sharing memory using a single ring data bus connection configuration | |
US6904046B2 (en) | Self-route multi-memory packet switch adapted to have an expandable number of input/output ports | |
US6470021B1 (en) | Computer network switch with parallel access shared memory architecture | |
USRE39026E1 (en) | Bus protocol | |
US6819675B2 (en) | Self-route multi-memory expandable packet switch with overflow processing means | |
JP3616563B2 (ja) | 共有バッファ方式のパケットスイッチ | |
US7142515B2 (en) | Expandable self-route multi-memory packet switch with a configurable multicast mechanism | |
US7143185B1 (en) | Method and apparatus for accessing external memories | |
US7130302B2 (en) | Self-route expandable multi-memory packet switch | |
US6891843B1 (en) | Apparatus and method for sharing memory using extra data path having multiple rings | |
JP3455841B2 (ja) | スイッチング装置 | |
JP2001024702A (ja) | パケット多重装置及び多重方法 | |
WO1996005558A1 (en) | A network switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040709 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040720 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040921 |
|
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: 20041021 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041105 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071112 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |