JPH09149051A - Packet transfer device - Google Patents

Packet transfer device

Info

Publication number
JPH09149051A
JPH09149051A JP21356996A JP21356996A JPH09149051A JP H09149051 A JPH09149051 A JP H09149051A JP 21356996 A JP21356996 A JP 21356996A JP 21356996 A JP21356996 A JP 21356996A JP H09149051 A JPH09149051 A JP H09149051A
Authority
JP
Japan
Prior art keywords
cell
buffer
output
packet
class
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.)
Granted
Application number
JP21356996A
Other languages
Japanese (ja)
Other versions
JP3673025B2 (en
Inventor
Yoshimitsu Shimojo
義満 下條
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP21356996A priority Critical patent/JP3673025B2/en
Publication of JPH09149051A publication Critical patent/JPH09149051A/en
Priority to US10/190,577 priority patent/US6934296B2/en
Application granted granted Critical
Publication of JP3673025B2 publication Critical patent/JP3673025B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a cell multiplex device conducting priority control between classes easily realized even when the number of input ports is large. SOLUTION: The device is provided with plural input buffers 10, a class management section 12 controlling the input buffers 10, and at least one output port 11 used to transfer packets outputted from the input buffers 10. The input buffers 10 have storage means 13a-13c for each class storing the received packet tentatively for each class and an output means 14 outputting the packet of the class commanded by the class management section 12 to the output port 11 from the storage means 13a-13c, and the class management section 12 grasps the storage state of the entire plural input buffers for each class and decides a class from which a packet is to be outputted based on the storage state and sends a command including designation of the decided class to the plural input buffers 10.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、例えば、ATM通
信網におけるセル多重化装置およびセルバッファ装置に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cell multiplexing device and a cell buffer device in an ATM communication network, for example.

【0002】また、セルスイッチはセル多重化装置が複
数個重ね合わされていることから、本発明のセル多重化
装置の構成をセルスイッチのひとつの出力ポートに対応
する構成としてセルスイッチに適用することが可能であ
る。
Since a plurality of cell multiplexers are superposed on each other in the cell switch, the structure of the cell multiplexer of the present invention should be applied to the cell switch as a structure corresponding to one output port of the cell switch. Is possible.

【0003】本発明のセルバッファ装置は、セルに限ら
ず一般的なバッファ装置にも適用可能である。
The cell buffer device of the present invention is applicable not only to cells but also to general buffer devices.

【0004】さらに、本発明はATM通信網のみなら
ず、パケット交換網にも適用可能である。
Further, the present invention can be applied not only to the ATM communication network but also to the packet switching network.

【0005】[0005]

【従来の技術】現在、ATM(Asynchronou
s Transfer Mode)通信方式に関する研
究が、世界中の通信技術の研究者らによって精力的に行
なわれている。ATM通信方式は情報をセルという固定
長のパケットにより伝送交換する。ATM通信方式では
スイッチノード内のハードウェアによるセルスイッチに
より、高速なセルの交換が可能で単位時間当たりの情報
転送能力は既存の通信網を越えるものを実現可能であ
る。
2. Description of the Related Art Currently, ATM (Asyncronou)
Researchers in communication technology around the world are energetically carrying out research on s Transfer Mode communication systems. In the ATM communication system, information is transferred and exchanged in fixed length packets called cells. In the ATM communication system, a high-speed cell exchange can be performed by a cell switch by hardware in a switch node, and an information transfer capacity per unit time which exceeds that of an existing communication network can be realized.

【0006】ATM通信方式は、セルのヘッダのVPI
(Virtual PathIdentifier)と
VCI(Virtual ChannelIdenti
fier)と呼ばれる識別情報により、ひとつの物理伝
送路に論理的に複数のコネクション(Virtual
Connection:VC)を設定することができ
る。網内の各スイッチノードにおいては、各VCに対し
て予めルートが定められており、スイッチノードはセル
のコネクション識別子VPIとVCIからセルを出力す
べき出方路を求める。VPIとVCIは、スイッチノー
ド間の物理伝送路で一意に割り当てられるため、スイッ
チノードは、通過するセルのVPIとVCIの値を書き
換える能力を持つ。
The ATM communication system uses the VPI of the cell header.
(Virtual Path Identifier) and VCI (Virtual Channel Identifier)
By using identification information called “filer”, a plurality of connections (Virtual) are logically connected to one physical transmission line.
Connection: VC) can be set. In each switch node in the network, a route is set in advance for each VC, and the switch node obtains the output route to output the cell from the cell connection identifiers VPI and VCI. Since the VPI and VCI are uniquely assigned on the physical transmission path between the switch nodes, the switch node has the ability to rewrite the VPI and VCI values of the passing cell.

【0007】これまで、ATM網において品質を保証さ
れたVCは、CBR(Con−stant Bit R
ate:固定ビットレート)コネクションかVBR(V
ariable Bit Rate:可変ビットレー
ト)コネクションが中心であった。CBRコネクション
は、セルの伝送速度(セルレートまたは帯域ともいう。
単位時間当たりの伝送セル数)が一定で予めわかってい
るトラヒックを伝送するVCであり、VBRコネクショ
ンはセルの伝送速度が一定ではないが、その最大値(ピ
ークレート)と平均値(平均レート)などのトラヒック
の性質が予めわかっているVCである。
Up to now, VCs whose quality has been guaranteed in the ATM network are CBR (Constant Bit R).
ate: fixed bit rate) connection or VBR (V
A variable bit rate (variable bit rate) connection was the center. The CBR connection has a cell transmission rate (also referred to as cell rate or band).
It is a VC that transmits a known traffic with a constant number of cells transmitted per unit time. The VBR connection does not have a constant cell transmission rate, but its maximum value (peak rate) and average value (average rate). It is a VC whose traffic properties such as are known in advance.

【0008】基本的には、1本の物理伝送路に複数のV
Cを十分な品質を保ちつつ多重化する場合には、全ての
VCのピークレートの和が物理伝送路の帯域以下になっ
ていればよい。この手法をピークレート割り当てと呼
ぶ。CBRコネクションのみをピークレート割り当てし
た場合には、物理伝送路の十分に高い利用効率が達成可
能である。VBRコネクションの場合には、ピークレー
ト割り当てでは、物理伝送路の利用効率を高くできな
い。そこで予め分かっているトラヒックの性質より、統
計的多重化効果を用いて品質を保ちつつ利用効率を上げ
る技術がさかんに検討されている。
Basically, a plurality of Vs are provided on one physical transmission line.
When C is multiplexed while maintaining sufficient quality, the sum of the peak rates of all VCs should be below the band of the physical transmission line. This method is called peak rate allocation. When only the CBR connection is assigned the peak rate, a sufficiently high utilization efficiency of the physical transmission line can be achieved. In the case of the VBR connection, peak rate allocation cannot increase the utilization efficiency of the physical transmission path. Therefore, a technique for improving the utilization efficiency while maintaining the quality by using the statistical multiplexing effect has been intensively studied from the nature of the traffic known in advance.

【0009】ところが、計算機間のATM通信を考える
と、平均レートを始めとしたトラヒックの性質が予め予
測できないという性質や、瞬間的に大量のセルを送信す
るが、送信しないときには全くセルを送信しないという
バースト性と呼ばれる性質がある。そのため、CBRや
VBRの様に品質を保証しつつ網の利用効率を上げるこ
とは難しい。つまり計算機間で転送されるデータは、ピ
ークレート割り当てなどで品質を保証しようとすると網
の利用効率が著しく低下し、VBRの様に統計的多重化
効果を用いるとトラヒックのバースト性のためにセルス
イッチのある出力ポートに同時に大量のセルが到着し、
セルスイッチのバッファ量が十分でないと、バッファ溢
れによるセル廃棄が発生してしまう。また、セル廃棄が
発生すると複数のセルで構成されているパケット単位で
再送が発生し、これにより、実効的なスループットが低
下する。
However, considering ATM communication between computers, the nature of the traffic such as the average rate cannot be predicted in advance, and a large number of cells are momentarily transmitted, but when they are not transmitted, no cells are transmitted at all. There is a property called burst property. Therefore, it is difficult to improve the utilization efficiency of the network while guaranteeing the quality like CBR and VBR. In other words, the data transferred between computers has a significant decrease in network utilization efficiency when trying to guarantee the quality by peak rate allocation, etc. When statistical multiplexing effect like VBR is used, the traffic burstiness causes a cell loss. A large number of cells arrive at an output port with a switch at the same time,
If the buffer amount of the cell switch is not sufficient, cell discard will occur due to buffer overflow. Further, when cell discard occurs, retransmission is performed in packet units composed of a plurality of cells, which reduces the effective throughput.

【0010】そこで近年、端末とスイッチノード間でフ
ロー制御をかけて、セルの転送品質(特にセル廃棄に関
する品質)を保証し、かつ、網の利用効率を上げるAB
R(Available Bit Rate)というサ
ービスクラスが提案され、検討が進んでいる。ABRコ
ネクションは、経由するスイッチノードがセル輻輳にお
ちいりそうになった場合には、スイッチノードがセル輻
輳の発生前に、送信端末にセルの送出を迎えるように要
求する。端末へのトラヒック制御情報は、主にRMセル
(リソース管理セル)と呼ばれるセルを用いて行なう。
ABRにおけるスイッチノードから送信端末へのトラヒ
ック制御には無視できない遅延時間が存在する。そのた
め、トラヒック制御が有効に作用するまでセルを廃棄し
ないようにセルスイッチは大容量のバッファを実装する
必要がある。
Therefore, in recent years, the flow control between the terminal and the switch node is performed to guarantee the transfer quality of the cell (particularly the quality regarding cell discard) and to improve the utilization efficiency of the network.
A service class called R (Available Bit Rate) has been proposed and studied. The ABR connection requests the transmitting terminal to send the cell to the transmitting terminal before the occurrence of the cell congestion when the passing switch node is about to become congested with the cell congestion. The traffic control information to the terminal is mainly performed using cells called RM cells (resource management cells).
There is a delay time that cannot be ignored in the traffic control from the switch node to the transmitting terminal in ABR. Therefore, the cell switch must be equipped with a large capacity buffer so that the cell is not discarded until the traffic control works effectively.

【0011】CBR、VBR、ABRの他のサービスク
ラスとして、UBR(Unspecified Bit
Rate)というサービスクラスが存在する。このク
ラスは、端末が出力するトラヒック特性を詳細に網に申
告することを必要としない。そのかわり、網はその転送
品質について一切の保証をしない、いわゆるベストエフ
ォート(Best Effort)サービスのクラスで
ある。
As another service class of CBR, VBR and ABR, UBR (Unspecified Bit) is used.
There is a service class called Rate). This class does not require detailed reporting of traffic characteristics output by the terminal to the network. Instead, the network is a class of so-called Best Effort services, which does not guarantee any transfer quality.

【0012】前述したように、計算機間のデータはバー
スト性を持っているため、UBRコネクションのセル廃
棄率を満足できるものとするためにはセルスイッチに大
容量のセルバッファを実装する必要があると考えられて
いる。
As described above, since data between computers has a burst property, it is necessary to mount a large capacity cell buffer in the cell switch in order to satisfy the cell loss rate of the UBR connection. It is believed that.

【0013】幸いなことに計算機間のトラヒックは転送
の遅延時間、遅延揺らぎに関しての要求がCBRやVB
Rと比較して厳しくはない場合が多い。容量の大きなバ
ッファをセルスイッチに実装することによりセルの伝送
遅延時間、遅延揺らぎが増大するが、それを許容できる
アプリケーションは決して少なくないと考えられる。
Fortunately, traffic between computers is required to have a delay time for transfer and a demand for delay fluctuation in CBR and VB.
It is often less severe than R. The transmission delay time and delay fluctuation of a cell increase by mounting a buffer with a large capacity in the cell switch, but there are many applications that can tolerate it.

【0014】特にABR、UBRサービスの場合、網の
輻輳を回避する手段が必要となると考えられる。輻輳回
避手段のひとつとして、EFCI(ExplicitF
orward Congestion Indicat
ion)と呼ばれる方法がある。セルのヘッダ内に、そ
のセルの輻輳経験を書き込むEFCIビットがあり、網
内のセルスイッチは、その輻輳状況に応じてEFCIを
マークする。端末はその情報を利用することにより輻輳
を回避することが可能となる。
Particularly in the case of ABR and UBR services, it is considered necessary to have means for avoiding network congestion. As one of the congestion avoidance means, EFCI (ExplicitFit)
orward Congestion Indicat
Ion). There is an EFCI bit in the header of the cell that writes the congestion experience for that cell, and the cell switches in the network mark the EFCI according to the congestion situation. The terminal can avoid the congestion by using the information.

【0015】次に、VC間公平キューイングについて説
明する。
Next, inter-VC fair queuing will be described.

【0016】まず、ABRサービスにおける耐故障性か
ら要求されるVC間公平キューイングについて述べる。
First, the inter-VC fair queuing required for fault tolerance in the ABR service will be described.

【0017】ABRサービスは、網からのトラヒック制
御情報に従って送信端末がセルの送出を制御することに
よって成立する。もし、ある端末が故障し(もしくは故
意に)、網からのトラヒック制御情報を無視すれば、網
の輻輳からの脱出が困難になるおそれがある。
The ABR service is established by the transmitting terminal controlling the transmission of cells according to the traffic control information from the network. If a terminal fails (or intentionally) and ignores the traffic control information from the network, it may be difficult to escape from the congestion of the network.

【0018】このような問題は、セル多重化装置または
セルスイッチにおいてVC間で公平なキューイングを行
ない、VC間の公平なセル多重化スケジューリングとV
C間の公平なバッファ割り当てを実現することにより解
決できる。VC間公平キューイングを行なえばVC間の
相互作用は最小限に抑えられ、もしトラヒック制御情報
を無視するVCがあっても、そのVCのみが輻輳におち
いり、その他のVCにおよぼす影響を低減できるからで
ある。
Such a problem is caused by fair queuing among VCs in the cell multiplexer or cell switch, and fair cell multiplexing scheduling between Vs and Vs.
This can be solved by realizing fair buffer allocation among Cs. If the fair queuing between VCs is performed, the interaction between VCs can be minimized, and even if there is a VC that ignores traffic control information, only that VC can be affected by congestion and the influence on other VCs can be reduced. Because.

【0019】また、UBRサービスにおける公平性から
もVC間公平キューイングが要求される。
Fairness in the UBR service requires fair queuing between VCs.

【0020】図48に、UBRサービスにおける不公平
な帯域割り当ての例を示す。この例では網に端末A、
B、C、Dの4つの端末と、ひとつのファイルサーバが
存在し、それぞれがセルスイッチ(またはセル多重化装
置)X、Y、Zとリンク1、2、3、4、5、6、7に
より接続されている。
FIG. 48 shows an example of unfair bandwidth allocation in the UBR service. In this example, the terminal A,
There are four terminals B, C and D and one file server, each of which is a cell switch (or cell multiplexer) X, Y and Z and links 1, 2, 3, 4, 5, 6, 7 Connected by.

【0021】ここで、各セルスイッチが入力リンクに設
定されているVC数に関わらずセルを多重化したとする
と、各セルスイッチは入力ポートを平等に扱う。例え
ば、セルスイッチXは、リンク2とリンク3からのセル
をリンク1へ多重化する場合に、両方のリンクを平等に
扱うため、リンク1の帯域を1.0とすると、リンク2
とリンク3にそれぞれ0.5の帯域を与える。
If cells are multiplexed regardless of the number of VCs set in the input link, the cell switches treat the input ports equally. For example, when the cell switch X multiplexes cells from the link 2 and the link 3 to the link 1, since both links are treated equally, if the band of the link 1 is 1.0, the link 2
And link 3 are each given a bandwidth of 0.5.

【0022】同様に考えていくと最終的に各端末に与え
られる帯域は、端末Aが最も大きく0.5、端末C、D
は最も少なく0.125である。全ての端末が平等にフ
ァイルサーバにアクセスすることが理想だとすれば、こ
れは理想とはほど遠い。
Considering the same way, the bandwidth finally given to each terminal is the largest at terminal A, 0.5, and terminals C and D.
Is the smallest 0.125. Given that it is ideal that all terminals access the file server equally, this is far from ideal.

【0023】またさらに、網が輻輳に陥った場合、網は
端末に帯域を小さくするようにEFCI情報を送信す
る。このとき、網内にEFCI情報に忠実に従う端末
と、無視する端末が存在する場合、EFCIに忠実な端
末のみがセルの送出を抑制するため、EFCIを無視す
る端末は不当に多くの帯域資源を確保することになって
しまうという問題点もある。
Furthermore, when the network is congested, the network sends EFCI information to the terminal so as to reduce the bandwidth. At this time, if there are terminals that faithfully follow the EFCI information and terminals that ignore the EFCI information in the network, only the terminals that adhere to the EFCI suppress the transmission of cells. There is also the problem that it will be secured.

【0024】これらの問題は、セルスイッチが入力リン
クに多重されているVC数を無視して各入力リンクを平
等に扱っていることによる。セルスイッチがVC間公平
キューイングを行ない、VC数に応じた帯域の分配を行
なうことにより、各端末は公平にファイルサーバーにア
クセスすることが可能となる。
These problems are due to the fact that the cell switch treats each input link equally, ignoring the number of VCs multiplexed on the input link. Since the cell switch performs fair queuing between VCs and distributes the band according to the number of VCs, each terminal can access the file server fairly.

【0025】次に、クラス間の優先制御を行なうセル多
重化装置について説明する。
Next, a cell multiplexer for performing priority control between classes will be described.

【0026】図49に従来のクラス間の優先制御を行な
うセル多重化装置の構成を示す。
FIG. 49 shows the configuration of a conventional cell multiplexing apparatus for performing priority control between classes.

【0027】図49は、N本の入力ポートから入力した
セルを1本の出力ポートに多重化するセル多重化装置で
ある。
FIG. 49 shows a cell multiplexer for multiplexing cells input from N input ports into one output port.

【0028】出力バッファは、内部のクラス毎のセル蓄
積部にクラス毎にセルを蓄積し、出力ポートへはクラス
の優先度に応じてセルをセル選択部が選択し出力する。
The output buffer stores cells for each class in the internal cell storage unit for each class, and the cell selection unit selects and outputs the cells to the output port according to the priority of the class.

【0029】出力バッファの各蓄積部に蓄積しているセ
ル数としきい値とを比較してバックプレッシャ信号を生
成する。入力バッファもまたクラス毎のセル蓄積部が設
けられており、バックプレッシャ信号により出力が許可
されているクラスの中からクラスの優先度に応じてセル
を出力バッファへ転送する。
A back pressure signal is generated by comparing the number of cells stored in each storage section of the output buffer with a threshold value. The input buffer is also provided with a cell storage section for each class, and transfers cells to the output buffer according to the priority of the class among the classes whose output is permitted by the back pressure signal.

【0030】この構成では出力バッファに複数のクラス
毎セル蓄積部を設ける必要があるため、クラス数が多く
なると出力バッファの実現が困難になるという欠点があ
った。特に、出力バッファの入力速度は入力ポートの速
度のN倍(Nは入力ポート数)である必要があり、クラ
ス数、入力ポート数が大きな場合は、この様な複雑な機
能を実現することは困難であった。
In this configuration, since it is necessary to provide a plurality of cell storage units for each class in the output buffer, there is a drawback that it becomes difficult to realize the output buffer when the number of classes increases. In particular, the input speed of the output buffer must be N times the speed of the input port (N is the number of input ports). When the number of classes and the number of input ports are large, it is impossible to realize such a complicated function. It was difficult.

【0031】図49を、セルスイッチの各出力ポートに
関する部分と考えると、入力ポートにバッファを持つセ
ルスイッチについても同じ問題点が存在する。
Considering FIG. 49 as a portion related to each output port of the cell switch, the same problem exists in the cell switch having the buffer at the input port.

【0032】次に、セル多重化装置について説明する。Next, the cell multiplexer will be described.

【0033】図50に示すような入力バッファを持つセ
ル多重化装置の問題点を説明する。
Problems of the cell multiplexer having the input buffer as shown in FIG. 50 will be described.

【0034】図50は、N本の入力ポートから入力され
たセルを1本の出力ポートに多重化するセル多重化装置
である。
FIG. 50 shows a cell multiplexer which multiplexes cells input from N input ports into one output port.

【0035】出力バッファは、入力ポートからのセルを
一時的に蓄積し、出力ポートの速度に応じてセルを出力
する。
The output buffer temporarily stores cells from the input port and outputs the cells according to the speed of the output port.

【0036】出力バッファに蓄積しているセル数としき
い値とを比較してバックプレッシャ信号を生成する。入
力バッファは出力ポートに対応してひとつのキューを持
ち、バックプレッシャ信号により出力が許可されている
ときのみセルを出力バッファへ転送する。
A back pressure signal is generated by comparing the number of cells stored in the output buffer with a threshold value. The input buffer has one queue corresponding to the output port, and transfers cells to the output buffer only when output is permitted by the back pressure signal.

【0037】この様なセル多重化装置は設定されている
VC数に関わらず各入力バッファを公平に扱ってしまう
ため、ABRサービスにおける耐故障性や、UBRサー
ビスにおける公平性に問題があった。
Since such a cell multiplexer treats each input buffer fairly regardless of the number of set VCs, there is a problem in the fault tolerance in the ABR service and the fairness in the UBR service.

【0038】図50を、セルスイッチの各出力ポートに
関する部分と考えると、入力ポートにバッファを持つセ
ルスイッチについても同じ問題点が存在する。
Considering FIG. 50 as a portion related to each output port of the cell switch, the same problem exists in the cell switch having the buffer at the input port.

【0039】次に、VC間公平キューイングについて説
明する。
Next, inter-VC fair queuing will be described.

【0040】図51にVC間公平キューイングの実現方
法であるVC毎のFIFOの構成を示す。
FIG. 51 shows the structure of the FIFO for each VC, which is a method for realizing fair queuing between VCs.

【0041】図51は、入力リンクより入力したセルの
コネクション識別情報をバッファポインタ管理部に通知
し、バッファポインタ管理部よりセルの書き込み位置を
示す書き込みポインタを得てセルを一時的にセルバッフ
ァに蓄積し、バッファポインタ管理部からの、読みだし
セルを示す読みだしポインタに基づいてセルをセルバッ
ファから読みだし出力リンクへ出力するセルバッファ装
置である。バッファポインタ管理部は、蓄積しているセ
ルのセルバッファ上の位置を示すバッファポインタを管
理する。
In FIG. 51, the connection identification information of the cell input from the input link is notified to the buffer pointer management unit, the write pointer indicating the write position of the cell is obtained from the buffer pointer management unit, and the cell is temporarily stored in the cell buffer. A cell buffer device for accumulating and reading a cell from a cell buffer based on a read pointer indicating a read cell from a buffer pointer management unit and outputting the cell to an output link. The buffer pointer management unit manages a buffer pointer indicating the position of the accumulated cell on the cell buffer.

【0042】バッファポインタ管理部はVCテーブルに
よりバッファポインタをVC毎に管理する。図51は広
く知られているポインタチェーンによる管理方法を示し
ている。
The buffer pointer management unit manages the buffer pointer for each VC based on the VC table. FIG. 51 shows a widely known management method using a pointer chain.

【0043】セルが入力すると空きチェーンの先頭から
バッファポインタを書き込みポインタとして一つ取りだ
し、入力セルに対応するVCのチェーンの末尾につけ
る。セルを出力する時は、セルを蓄積しているVCを公
平に選択し、その先頭のバッファポインタを読みだしポ
インタとして取りだす。セル出力時にVCを公平に選択
する方法として、ラウンドロビンが知られている。
When the cell is input, one buffer pointer is taken out from the head of the empty chain as a write pointer and attached to the end of the VC chain corresponding to the input cell. When outputting a cell, the VC accumulating the cell is fairly selected, and the buffer pointer at the head of the VC is read out and taken out as a pointer. Round robin is known as a method for selecting VCs fairly when outputting cells.

【0044】VCをラウンドロビンで選択するために
は、VCテーブル上で、前回出力したVCの次から、バ
ッファに蓄積しているセルがあるかどうかを順に検索し
なければならない。検索は、多い場合にはほぼ全てのV
Cを1セル周期で行なう必要があるが、設定すべきVC
数は数千以上に及ぶ場合があり、実現は困難であった。
次に、キュー長監視について説明する。
In order to select a VC by round robin, it is necessary to sequentially search the VC table for the cells accumulated in the buffer after the previously output VC. When there are many searches, almost all V
It is necessary to perform C in one cell cycle, but VC to be set
The number could be in the thousands or more, which was difficult to achieve.
Next, the queue length monitoring will be described.

【0045】図52に、例えば図50の様な、入力バッ
ファを持つセル多重化装置における、入力バッファのキ
ュー長の変化の一例を示す。
FIG. 52 shows an example of changes in the queue length of the input buffer in the cell multiplexer having the input buffer as shown in FIG.

【0046】横軸は時間、縦軸は上が入力バッファのキ
ュー長、下がバックプレッシャ信号である。バックプレ
ッシャ信号が出力禁止を指示しているとき(Tup)、入
力バッファからの出力スループットはゼロであるためキ
ュー長はバッファの入力レート(Ri )で増加する。バ
ックプレッシャ信号が出力可能を指示しているとき、入
力バッファからの出力スループットは最大であり、通常
キュー長は減少する。
The horizontal axis represents time, the vertical axis represents the queue length of the input buffer, and the lower axis represents the back pressure signal. When the back pressure signal indicates the prohibition of output (Tup), the output throughput from the input buffer is zero, so the queue length increases at the buffer input rate (Ri). When the backpressure signal indicates that output is possible, the output throughput from the input buffer is maximum and the queue length is usually reduced.

【0047】この様にキュー長はバックプレッシャ信号
に同期して振動する。従来、バッファにセルが到着した
とき、キュー長がしきい値を越えていれば入力したセル
を受け付けず廃棄し、越えていなければ受け付けること
が広く行なわれている。この方法は通常のバッファでは
問題ないが、この様にバッファの出力がバックプレッシ
ャ信号に制御されている場合に問題となる。キュー長の
最大値は入力レート(Ri )とバックプレッシャ信号が
出力禁止を指示している時間(Tup)によって決定さ
れ、特にバックプレッシャ信号の出力禁止時間(Tup)
は、他の入力バッファへの入力トラヒックなどに大きく
影響されるからである。
Thus, the queue length oscillates in synchronization with the back pressure signal. Conventionally, when a cell arrives at a buffer, if the queue length exceeds a threshold value, the input cell is not accepted and discarded, and if it does not exceed the threshold value, it is widely accepted. This method is not a problem in a normal buffer, but it becomes a problem when the output of the buffer is controlled by the back pressure signal in this way. The maximum value of the queue length is determined by the input rate (Ri) and the time (Tup) during which the back pressure signal instructs the output inhibition, and particularly the output inhibition time (Tup) of the back pressure signal.
Is greatly affected by input traffic to other input buffers.

【0048】バックプレッシャ信号により制御されるバ
ッファ装置の場合は、単純にキュー長としきい値と比較
してセルの廃棄を決定する方法では外部条件によりセル
の廃棄が過敏に影響され安定したセルの廃棄が困難であ
った。キュー長から輻輳を判断する場合にも同じ問題点
があった。
In the case of the buffer device controlled by the back pressure signal, the method of simply comparing the queue length with the threshold value to determine the cell discard determines that the cell discard is sensitively affected by the external condition and the stable cell is discarded. It was difficult to discard. There was the same problem when judging congestion from the queue length.

【0049】次に、優先制御を行うセルバッファ装置に
ついて説明する。
Next, a cell buffer device for performing priority control will be described.

【0050】図53に、優先制御を行なうセルバッファ
装置の構成を示す。
FIG. 53 shows the configuration of a cell buffer device for performing priority control.

【0051】遅延に関して低優先のセルを一時的に蓄積
する、クラス1セル蓄積部と、高優先のセルを一時的に
蓄積するクラス2セル蓄積部とあって、それぞれの出力
はクラス多重化FIFOにより多重化される。クラス管
理部は、クラス2セル蓄積部セル数Na およびクラス多
重化FIFOセル数Nb を入力し、どちらかのクラスへ
転送指示を与える。転送指示を受けたクラスのセル蓄積
部は1セルだけクラス多重化FIFOへ転送する。
With respect to delay, there are a class 1 cell accumulating section for temporarily accumulating low priority cells and a class 2 cell accumulating section for temporarily accumulating high priority cells, each output of which is a class multiplexing FIFO. Are multiplexed by. The class management unit inputs the number Na of class 2 cell storage units and the number Nb of class multiplexing FIFO cells, and gives a transfer instruction to either class. The cell storage unit of the class that has received the transfer instruction transfers only one cell to the class multiplexing FIFO.

【0052】このセルバッファ装置の優先制御の性能を
高めるためにはクラス多重化FIFOの蓄積セル数を少
なくすることが必要であるが、スループットを低下させ
ないためには、クラス多重化FIFOを努めて空にしな
い(=アンダフローしない)ように転送を指示する必要
がある。さらに、どちらか一方のセル蓄積部が空になっ
ている時に、空のセル蓄積部に対して転送を指示してし
まった場合(空指示と呼ぶ)にはアンダフローしてしま
う可能性があるため、転送指示は蓄積セルが存在するセ
ル蓄積部に対して行なう必要がある。
In order to improve the performance of the priority control of this cell buffer device, it is necessary to reduce the number of cells stored in the class multiplexing FIFO. However, in order to prevent the throughput from decreasing, the class multiplexing FIFO should be used. It is necessary to instruct the transfer not to empty (= not underflow). Furthermore, if one of the cell storage units is empty and a transfer instruction is issued to the empty cell storage unit (called an empty instruction), underflow may occur. Therefore, it is necessary to give a transfer instruction to the cell storage unit in which the storage cell exists.

【0053】以上の方針から、クラス管理部がクラス2
セル蓄積部へ転送指示を行なう条件は、 (Nb ≦1)and(Na 1) で与えられる。クラス1セル蓄積部への転送指示は、 (Nb ≦1)and(Na ==0) である。
According to the above policy, the class management section is classified into class 2
The condition for instructing the transfer to the cell storage unit is given by (Nb ≤ 1) and (Na > 1). The transfer instruction to the class 1 cell storage unit is (Nb ≤1) and (Na == 0).

【0054】ここで、クラス毎のセル蓄積部やクラス多
重化FIFOからクラス管理部へのセル数情報の伝送
や、クラス管理部からクラス毎セル蓄積部への転送指示
情報の伝送、さらにはクラス毎セル蓄積部からセル多重
化FIFOへのセル転送に遅延時間が存在する場合を考
える。このとき従来は次のような問題点が存在してい
た。
Here, transmission of cell number information from the cell storage unit for each class or class multiplexing FIFO to the class management unit, transmission of transfer instruction information from the class management unit to the class-specific cell storage unit, and Consider a case where there is a delay time in the cell transfer from the cell storage unit to the cell multiplexing FIFO. At this time, conventionally, the following problems existed.

【0055】これらの遅延時間により、クラス多重化F
IFOがアンダフローするかどうかがクラス管理部で正
確に判定できなかった。そこでクラス多重化FIFO内
セル数をこの遅延時間に応じた大きめのしきい値と比較
してアンダフローしないための条件としていた。この結
果、クラス多重化FIFOの平均キュー長が大きくなり
優先制御の性能が低下した。
Due to these delay times, the class multiplexing F
The class manager could not accurately determine whether the IFO would underflow. Therefore, the number of cells in the class multiplexing FIFO is compared with a large threshold value corresponding to the delay time to set a condition for preventing underflow. As a result, the average queue length of the class multiplexing FIFO becomes large and the performance of the priority control deteriorates.

【0056】また、高優先であるクラス2セル蓄積部情
報の伝送が遅れることにより、クラス2セル蓄積部が空
になったことを正確に判断できない。したがって空にな
っているのに空でないと誤り、空指示をしてしまうか、
空でないのに空であると誤り、高優先であるクラス2の
セルよりも低優先のクラス1のセルが優先して出力して
しまうような指示を行なってしまっていた。結果として
セルバッファ装置のスループットが低下したり優先制御
機能の性能が低下する問題点があった。
Further, it is not possible to accurately determine that the class 2 cell storage unit has become empty due to the delay in transmission of the high priority class 2 cell storage unit information. Therefore, if it is empty but it is not empty, you will give an empty instruction or
If it is not empty, it is erroneous if it is empty, and an instruction has been given to preferentially output cells of low priority class 1 over cells of high priority class 2. As a result, there are problems that the throughput of the cell buffer device is reduced and the performance of the priority control function is reduced.

【0057】以上、図53の優先制御を行なうセルバッ
ファ装置に関して問題点を述べた。この問題はこの様な
優先制御を行なうセルバッファ装置のみならず、さまざ
まなセルバッファ装置において発生し得る。
The problems with the cell buffer device for performing the priority control shown in FIG. 53 have been described above. This problem can occur not only in the cell buffer device that performs such priority control, but also in various cell buffer devices.

【0058】つまり、複数のバッファ間のセルの転送を
管理部が指示するセルバッファ装置において、管理部へ
のバッファ情報の伝送、管理部からバッファへの転送指
示情報の伝送、バッファ間のセルの伝送に遅延時間が存
在する場合、セルバッファ装置の性能やスループットが
低下してしまうという問題点があった。
That is, in the cell buffer device in which the management unit instructs the transfer of cells between a plurality of buffers, the buffer information is transmitted to the management unit, the transfer instruction information is transmitted from the management unit to the buffer, and the cells between the buffers are transferred. If there is a delay time in the transmission, there is a problem that the performance and throughput of the cell buffer device deteriorate.

【0059】[0059]

【発明が解決しようとする課題】以上述べたように、従
来のセル多重化装置には次のような第1、第2の2つの
問題点があった。
As described above, the conventional cell multiplexer has the following two problems, first and second.

【0060】まず、出力バッファに複数のクラス毎セル
蓄積部を設ける必要があるため、クラス数が多くなると
出力バッファの実現が困難になるという欠点があった。
特に、出力バッファの入力速度は入力ポートの速度のN
倍(Nは入力ポート数)である必要があり、クラス数、
入力ポート数が大きな場合は、この様な複雑な機能を実
現することは困難であった。
First, since it is necessary to provide a plurality of cell storage units for each class in the output buffer, there is a drawback that it becomes difficult to realize the output buffer when the number of classes increases.
In particular, the input speed of the output buffer is N times the speed of the input port.
Must be double (N is the number of input ports), the number of classes,
When the number of input ports is large, it is difficult to realize such a complicated function.

【0061】次に、設定されているVC数に関わらず各
入力バッファを公平に扱ってしまうため、ABRサービ
スにおける耐故障性や、UBRサービスにおける公平性
に問題があった。
Next, since each input buffer is treated fairly regardless of the number of set VCs, there is a problem in the fault tolerance in the ABR service and the fairness in the UBR service.

【0062】また、従来のセルバッファ装置には次のよ
うな第3、第4の2つの問題点があった。
Further, the conventional cell buffer device has the following two problems, third and fourth.

【0063】まず、VCをラウンドロビンで選択するた
めには、VCテーブル上で、前回出力したVCの次か
ら、バッファに蓄積しているセルがあるかどうかを順に
検索しなければならない。検索は、多い場合にはほぼ全
てのVCを1セル周期で行なう必要があるが、設定すべ
きVC数は数千以上に及ぶ場合があり、実現は困難であ
った。
First, in order to select a VC by round robin, it is necessary to sequentially search the VC table, starting from the VC output last time, to see if there are any cells accumulated in the buffer. In the case of a large number of searches, it is necessary to perform almost all VCs in one cell cycle, but the number of VCs to be set may reach several thousands or more, which is difficult to realize.

【0064】これに対し近年、”Efficient
Fair Queueing Deficit Rou
nd Robin”(pp.231−242、ACM
SIGCOMM ’95、1995年8月)に記載され
ているようなアルゴリズムが提案されている。この文献
で提案されているDRRというアルゴリズムはアクティ
ブリストという概念を用いてセルを蓄積しているVCを
管理するため、セル出力時のVCテーブルの検索が不要
である。従って、設定すべきVC数が増えても高速にV
C間公平キューイングの為の出力すべきセルの選択が実
現できる。しかしながら、このDRRアルゴリズムで
は、パケットを各VC毎に分類して蓄積するため各VC
に設定された重みの値に応じた量のパケットが一度に出
力されてしまい、その出力トラヒックのバースト性が非
常に高くなってしまうという欠点があった。
On the other hand, in recent years, "Efficient"
Fair Queue Defending Rou
nd Robin ”(pp.231-242, ACM
An algorithm as described in SIGCOMM '95, August 1995) has been proposed. Since the algorithm called DRR proposed in this document manages the VC storing the cells by using the concept of the active list, it is not necessary to search the VC table when outputting the cells. Therefore, even if the number of VCs to be set increases, V
Selection of cells to be output can be realized for fair queuing between Cs. However, in this DRR algorithm, packets are classified for each VC and stored, so that each VC is stored.
The number of packets corresponding to the value of the weight set to is output at one time, and the burstiness of the output traffic becomes very high.

【0065】次に、バックプレッシャ信号により制御さ
れるバッファ装置の場合は、単純にキュー長としきい値
と比較してセルの廃棄を決定する方法では外部条件によ
りセルの廃棄が過敏に影響され安定したセルの廃棄が困
難であった。キュー長から輻輳を判断する場合にも同じ
問題点があった。
Next, in the case of the buffer device controlled by the back pressure signal, the method of simply comparing the queue length with the threshold value to determine the cell discard is sensitive to the cell discard due to external conditions and is stable. It was difficult to dispose of the cells. There was the same problem when judging congestion from the queue length.

【0066】さらに、複数のバッファ間のセルの転送を
管理部が指示するセルバッファ装置においては、次によ
うな第5の問題点があった。すなわち、管理部へのバッ
ファ情報の伝送、管理部からバッファへの転送指示情報
の伝送、バッファ間のセルの伝送に遅延時間が存在する
場合、セルバッファ装置の性能やスループットが低下し
てしまうという問題点があった。
Further, in the cell buffer device in which the management unit instructs the transfer of cells between a plurality of buffers, there is the following fifth problem. That is, if there is a delay time in the transmission of the buffer information to the management unit, the transmission of the transfer instruction information from the management unit to the buffer, and the transmission of the cells between the buffers, the performance and throughput of the cell buffer device will be reduced. There was a problem.

【0067】本発明は、上述の点に鑑みてなされたもの
で、その目的とするところは、入力ポート数が大きな場
合においても実現が容易なクラス間の優先制御を行なう
セル多重化装置を提供することにある。
The present invention has been made in view of the above points, and an object of the present invention is to provide a cell multiplexing device that performs priority control between classes that is easy to implement even when the number of input ports is large. To do.

【0068】本発明の他の目的は、ABRサービスにお
ける耐故障性や、UBRサービスにおける公平性を実現
するVC毎公平キューイングを行なうことができるセル
多重化装置を提供することにある。
Another object of the present invention is to provide a cell multiplexer capable of performing per-VC fair queuing which realizes fault tolerance in an ABR service and fairness in a UBR service.

【0069】本発明の別の目的は、設定可能なVC数の
上限に依存することなく容易に実現することのできるV
C間公平キューイングを行なうセル多重化装置を提供す
ることにある。
Another object of the present invention is V which can be easily realized without depending on the upper limit of the number of VCs that can be set.
It is to provide a cell multiplexing device that performs fair queuing between Cs.

【0070】本発明のさらに別の目的は、キュー長の監
視結果が外部条件の影響を受け難く、安定したキュー長
の監視が容易であるセル多重化装置を提供することにあ
る。
Still another object of the present invention is to provide a cell multiplexer in which the result of queue length monitoring is not easily affected by external conditions, and stable queue length monitoring is easy.

【0071】本発明のもう一つの目的は、複数のバッフ
ァ間のセルの転送を管理部が指示する際に、管理部への
バッファ情報の伝送、管理部からバッファへの転送指示
情報の伝送、バッファ間のセルの伝送に遅延時間が存在
する場合においても、従来のように性能やスループット
が低下しないセル多重化装置を提供することにある。
Another object of the present invention is to transmit buffer information to the management unit and transmission of transfer instruction information from the management unit to the buffer when the management unit instructs the transfer of cells between a plurality of buffers. It is an object of the present invention to provide a cell multiplexing device in which performance and throughput do not deteriorate as in the conventional case even when there is a delay time in cell transmission between buffers.

【0072】[0072]

【課題を解決するための手段】本発明のパケット転送装
置(請求項1〜4)は、入力されたパケットを一時的に
蓄積する複数の入力バッファと、これら入力バッファを
制御する制御手段と、前記各入力バッファから出力され
るパケットを転送する少なくとも1つの出力ポートを具
備したパケット転送装置であって、前記各入力バッファ
は、入力したパケットを一時的にクラス毎に蓄積するク
ラス毎の蓄積手段と、前記制御手段から指示されたクラ
スのパケットを前記蓄積手段から前記出力ポートへ向け
て出力する出力手段とを具備し、前記制御手段は、前記
蓄積手段の複数の入力バッファ全体における蓄積状況を
クラス毎に把握し、この蓄積状況に基づいてパケットを
出力すべきクラスを決定し、この決定したクラスの指定
を含む指示を前記複数の入力バッファに送信することに
より、制御部が複数の入力バッファ全体の状況を把握し
て(少なくとも全体の状況を把握していればよいが、個
々の入力バッファ毎に把握していても構わない)指示を
出すため、各入力バッファのクラス毎の蓄積状況の違い
によりクラス間の優先関係が崩れてしまうことが生じ
ず、また、入力ポートの数すなわち入力バッファの数が
増えても容易にクラス間の優先制御を実現できる。
A packet transfer apparatus (claims 1 to 4) of the present invention comprises a plurality of input buffers for temporarily storing input packets, and a control means for controlling these input buffers. A packet transfer device comprising at least one output port for transferring a packet output from each input buffer, wherein each input buffer temporarily stores the input packet for each class. And output means for outputting a packet of a class instructed by the control means from the storage means to the output port, the control means indicating the storage status in the entire input buffers of the storage means. Grasp for each class, decide the class to output the packet based on this accumulation status, and give the instruction including the designation of the decided class. By transmitting to a plurality of input buffers, the control unit grasps the statuses of the plurality of input buffers (at least the statuses of the entire input buffers are sufficient, but it is also possible to know the statuses of individual input buffers). Since no instruction is issued, the priority relationship between classes does not collapse due to the difference in the accumulation status of each input buffer class, and even if the number of input ports, that is, the number of input buffers, increases easily. Priority control between classes can be realized.

【0073】また、本発明のパケット転送装置(請求項
5、6)は、複数の入力バッファと、これら入力バッフ
ァを制御する制御手段と、前記各入力バッファから出力
されるパケットを転送する少なくとも1つの出力ポート
を具備したパケット転送装置であって、前記各入力バッ
ファは、入力したパケットを一時的に蓄積する蓄積手段
と、前記制御手段からの指示を受けて、次のフェーズで
前記蓄積手段から前記出力ポートへ向けて出力すべきパ
ケットを選択する選択手段と、この選択手段で選択され
たパケットを前記出力ポートに向けて出力する出力手段
とを具備し、前記制御手段は、前記複数の入力バッファ
全体における前記選択手段で選択されたパケットの出力
状況を把握し、この出力状況に基づいて新たなパケット
を選択するよう前記複数の入力バッファに指示すること
により、あるフェーズ(その時間的長さは不定)内で出
力されるべきパケット集合(カゴ)という概念を導入
し、このパケット集合に入れるパケットの選択と、この
パケット集合に入っているパケットのみを出力する(そ
の他のパケットは出力が許可されない)という処理を各
入力バッファが分担し、パケット集合に新たなパケット
を入れるタイミングを指示する処理を制御部(カゴ管理
部)が分担することにより、例えば、入力バッファ方式
のセルスイッチにおいて、VC間公平キューイングを容
易に実現できる。
Further, the packet transfer apparatus of the present invention (claims 5 and 6) comprises a plurality of input buffers, a control means for controlling these input buffers, and at least one for transferring the packets output from each of the input buffers. A packet transfer device having two output ports, wherein each of the input buffers receives an instruction from the storage means for temporarily storing an input packet, and the control means, and then receives from the storage means in the next phase. The control unit includes a selecting unit that selects a packet to be output to the output port, and an output unit that outputs the packet selected by the selecting unit to the output port. Before grasping the output status of the packet selected by the selecting means in the entire buffer and selecting a new packet based on this output status Introducing the concept of a packet set (car) that should be output in a certain phase (its time length is indefinite) by instructing multiple input buffers, selecting packets to be included in this packet set, and Each input buffer shares the processing of outputting only the packets contained in the set (output of other packets is not allowed), and the control unit (cargo management unit) processes the process of instructing the timing of inserting a new packet into the packet set. ), It is possible to easily realize fair queuing between VCs in an input buffer type cell switch, for example.

【0074】また、本発明のパケット転送装置(請求項
7、8)は、入力したパケットを一時的に蓄積するバッ
ファと、このバッファを制御する制御手段と、前記バッ
ファから出力されたパケットを転送するパケット転送装
置であって、前記制御手段は、前記バッファ内に蓄積さ
れたパケットを複数の集合に分けて管理する管理手段
と、前記バッファに入力したパケットを各パケットの属
するフロー間で公平になるように前記複数の集合のいず
れか1つに振り分ける振り分け手段と、前記管理手段で
管理されている前記複数の集合のうちの1つの集合に属
するパケットを出力するよう前記バッファに対し指示す
る指示手段と、を具備することにより、制御手段(バッ
ファポインタ管理部)でパケットが入力されたときに複
数の集合への振り分けが行われており、パケットを出力
するときには1つの集合に属するポインタを出すだけで
済むので、設定すべきVC数が増えても高速にVC間公
平キューイングのための出力すべきパケットの選択が実
現できる。また、本発明の前記指示手段により、請求項
5の選択手段の動作を実現することができる。さらに、
本発明は、出力バッファ方式のセルスイッチでVC間公
平キューイングをする際の出力バッファとして用いるこ
とができる。
Further, the packet transfer device of the present invention (claims 7 and 8) transfers a packet which temporarily stores an input packet, a control means which controls this buffer, and a packet which is output from the buffer. In the packet transfer apparatus, the control unit divides the packets accumulated in the buffer into a plurality of sets and manages the packets, and the packets input to the buffer are evenly distributed among the flows to which the packets belong. And a command for instructing the buffer to output a packet belonging to one of the plurality of sets managed by the management unit Means for distributing packets to a plurality of sets when a packet is input by the control means (buffer pointer management unit). Since only the pointers belonging to one set need to be output when outputting packets, even if the number of VCs to be set increases, the packets to be output can be selected at high speed for inter-VC fair queuing. realizable. Further, the operation of the selecting means of claim 5 can be realized by the instructing means of the present invention. further,
The present invention can be used as an output buffer when performing fair queuing between VCs in an output buffer type cell switch.

【0075】また、本発明のパケット転送装置(請求項
9〜11)は、入力したパケットを一時的に蓄積する複
数のバッファが直列に接続されて構成され、前段に接続
されたバッファは後段に接続されたバッファに向けて、
該後段のバッファ内部のパケットの蓄積状況に応じて定
められるパケット出力可能/禁止状態に従って、パケッ
トを出力するパケット転送装置であって、前記前段のバ
ッファが前記後段のバッファにパケットを出力可能な状
態から出力禁止状態に変化した後最初に前段のバッファ
へパケットが入力されたときの前段に接続されたバッフ
ァの蓄積状況を監視することにより、各バッファ内の蓄
積状況(パケット量)の監視結果が外部条件の影響を受
け難く、安定したキュー長の監視が容易で、例えば監視
した蓄積パケット量が所定のしきい値を越えている場合
に輻輳状態を判定することや、監視した蓄積パケット量
が所定のしきい値を越えている場合に、その越えた量に
応じて入力パケットを廃棄することが外部条件の影響を
受けることなく安定して行える。
Further, the packet transfer apparatus of the present invention (claims 9 to 11) is constituted by connecting a plurality of buffers for temporarily accumulating the input packet in series, and the buffer connected to the front stage is to the rear stage. Towards the connected buffer,
A packet transfer device that outputs a packet according to a packet output enable / disable state determined according to a packet accumulation state inside the latter-stage buffer, wherein the former-stage buffer is capable of outputting the packet to the latter-stage buffer. From the output prohibition state to the output-disabled state, the accumulation status (packet amount) in each buffer can be monitored by monitoring the accumulation status of the buffer connected to the preceding stage when the packet is first input to the preceding buffer. It is not easily affected by external conditions, and it is easy to monitor the stable queue length.For example, when the monitored accumulated packet amount exceeds a predetermined threshold value, the congestion status is determined, and the monitored accumulated packet amount is When the threshold is exceeded, it is safe to discard the input packet according to the exceeded threshold without being affected by external conditions. And it can be performed by.

【0076】また、本発明のパケット転送装置(請求項
12〜14)は、入力されたパケットを一時的に蓄積す
る少なくとも1つのバッファと、このバッファのパケッ
トの転送(バッファへの入力または該バッファからの出
力のどちらでもよい)を制御する制御手段とを具備した
パケット転送装置であって、前記制御手段は、前記バッ
ファに対するパケットの転送指示の履歴と前記バッファ
のパケットの蓄積状況を基に前記バッファに対しパケッ
トの転送指示を行うことにより、転送指示を決定する際
に転送指示の履歴を用いて、バッファから通知されてき
たパケットの蓄積数を、転送指示がバッファに作用する
時刻の蓄積数に修正するため、遅延時間を原因とした性
能の劣化が少なくなる。
Further, the packet transfer device (claims 12 to 14) of the present invention comprises at least one buffer for temporarily accumulating the input packet, and transfer of the packet of this buffer (input to the buffer or the buffer). (Which may be any of the output from the above), and the control means for controlling the packet transfer instruction based on the history of packet transfer instructions to the buffer and the packet accumulation status of the buffer. By issuing a packet transfer instruction to the buffer, the transfer instruction history is used when determining the transfer instruction, and the accumulated number of packets notified from the buffer is calculated at the time when the transfer instruction acts on the buffer. As a result, the deterioration in performance due to the delay time is reduced.

【0077】[0077]

【発明の実施の形態】以下、本発明の実施形態について
図面を参照して説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0078】0. 用語の定義 以下、本発明の実施の形態を説明する上で用いられる用
語の定義を行う。
0. Definition of Terms The terms used in describing the embodiments of the present invention will be defined below.

【0079】(1) パケットとは、固定長のセルを含
む概念で、セルの上位概念と解することができる。ま
た、以下の説明でパケットというときは、可変長、固定
長を問わない。また、セルに限定して説明している場合
でも、それは単に説明を簡単にするためのもので、特
に、これに限るものではない。
(1) A packet is a concept including a fixed-length cell and can be understood as a superordinate concept of the cell. Further, in the following description, when referring to a packet, a variable length or a fixed length does not matter. Further, even when the description is limited to cells, it is merely for the sake of simplification of description, and is not particularly limited to this.

【0080】(2) パケット(セル)多重化装置とパ
ケット(セル)バッファ装置の違い: パケットバッファ装置:一つの以上の入力ポートと一つ
以上の出力ポート及び一つ以上のバッファを具備し、入
力ポートから入力されたパケットを必要に応じて一時的
にバッファに蓄積し、出力ポートへ出力する装置。特に
パケットを宛先に応じた出力ポートへ出力するパケット
バッファ装置は、パケットスイッチと呼ばれる。
(2) Difference between packet (cell) multiplexer and packet (cell) buffer device: Packet buffer device: One or more input ports, one or more output ports and one or more buffers, A device that temporarily stores the packet input from the input port in the buffer as needed and outputs it to the output port. Particularly, a packet buffer device that outputs a packet to an output port according to a destination is called a packet switch.

【0081】パケット多重化装置:パケットバッファ装
置の中でも特にパケットの出力ポートが一つのものをパ
ケット多重化装置と呼ぶ(パケットバッファ装置を出力
ポート毎に分けて考えると、入力ポートが共通な複数の
パケット多重化装置の重ね合わせてとして見ることがで
きる)。以下の説明において、パケット多重化装置につ
いて述べていることは、パケットバッファ装置にも容易
に適用できる。
Packet multiplexer: Among packet buffer devices, one having a single packet output port is called a packet multiplexer (considering the packet buffer devices for each output port, a plurality of common input ports will be used). It can be seen as a superposition of packet multiplexers). What is described about the packet multiplexer in the following description can be easily applied to the packet buffer device.

【0082】(3)パケット転送装置:パケットバッフ
ァ装置と、その一種であるパケット多重化装置の双方を
含む。また、以下の説明において、多重化装置あるいは
バッファ装置を例にとり説明している場合も、特にこれ
に限るものではなく、広くパケット転送装置として適用
できる。
(3) Packet transfer device: Includes both a packet buffer device and a type of packet multiplexer. Further, in the following description, even when the multiplexer or the buffer device is described as an example, the invention is not particularly limited to this, and can be widely applied as a packet transfer device.

【0083】1. クラス間優先制御(第1の実施形
態、第2の実施形態) まず、本発明に係るクラス間の優先制御を行なうセル多
重化装置の実施形態について説明する。
1. Inter-class Priority Control (First and Second Embodiments) First, an embodiment of a cell multiplexing apparatus that performs inter-class priority control according to the present invention will be described.

【0084】1.1 第1の実施形態 図1に、第1の実施形態に係るクラス間の優先制御を行
なうセル多重化装置の構成例を示す。
1.1 First Embodiment FIG. 1 shows an example of the configuration of a cell multiplexing device that performs priority control between classes according to the first embodiment.

【0085】図1のセル多重化装置は、入力ポート#1
〜#Nのそれぞれに対応して設けられ、各入力ポート#
1〜#Nから入力したセルを一時的に蓄積する複数の入
力バッファ10と、入力バッファ10の出力したセルを
多重化し出力ポートへ出力する出力バッファ11と、全
ての入力バッファを管理するクラス管理部12とを備え
る。
The cell multiplexer of FIG. 1 has an input port # 1.
~ #N provided for each input port #
A plurality of input buffers 10 for temporarily accumulating cells input from 1 to #N, an output buffer 11 for multiplexing the cells output from the input buffer 10 and outputting them to an output port, and class management for managing all the input buffers And a section 12.

【0086】入力バッファ10は、入力したセルをクラ
ス(クラス1〜クラス3)毎に蓄積するクラスのセル蓄
積部13(クラス1セル蓄積部13a、クラス2セル蓄
積部13b、クラス3セル蓄積部13c)と、セル蓄積
部13から出力したセルを多重化し出力バッファ11へ
出力するクラス多重化FIFO14を備えている。
The input buffer 10 stores a cell storage unit 13 (class 1 cell storage unit 13a, class 2 cell storage unit 13b, class 3 cell storage unit) for storing the input cells for each class (class 1 to class 3). 13c) and a class multiplexing FIFO 14 that multiplexes the cells output from the cell storage unit 13 and outputs the multiplexed cells to the output buffer 11.

【0087】クラス管理部12は、セル蓄積部13のク
ラス毎セル蓄積部セル数と、クラス多重化FIFO14
のクラス多重化FIFOセル数を得て、予め定められた
アルゴリズムより転送クラス指示を決定して全ての入力
バッファ10へ同報する。
The class management unit 12 includes the number of cells in each cell of the cell storage unit 13 and the class multiplexing FIFO 14
The number of class-multiplexed FIFO cells is obtained, the transfer class instruction is determined by a predetermined algorithm, and broadcast to all the input buffers 10.

【0088】入力バッファ10に同報された転送クラス
指示で指示されたクラスのセル蓄積部13は、セルをク
ラス多重化FIFO14へ転送し、クラス多重化FIF
O14は、出力バッファ11内の輻輳状態に応じたバッ
クプレッシャ信号の制御に従って出力バッファ11へセ
ルを出力する。
The cell storage unit 13 of the class designated by the transfer class instruction broadcast to the input buffer 10 transfers the cell to the class multiplexing FIFO 14 and the class multiplexing FIFO.
O14 outputs a cell to the output buffer 11 according to the control of the back pressure signal according to the congestion state in the output buffer 11.

【0089】クラス毎セル蓄積部13は通常はFIFO
(First In First Out)メモリで構成される。
The cell storage unit for each class 13 is normally a FIFO.
(First In First Out) Composed of memory.

【0090】図1は3クラス(クラス1〜クラス3)の
場合を示したが、第1の実施形態はクラス数に関わらず
有効に作用する。
Although FIG. 1 shows the case of three classes (class 1 to class 3), the first embodiment works effectively regardless of the number of classes.

【0091】また、図1を、セルスイッチの、各出力ポ
ートに関する部分と考えるとセルスイッチについても第
1の実施形態を適用できる。
Further, considering FIG. 1 as a portion of the cell switch relating to each output port, the first embodiment can be applied to the cell switch.

【0092】図1の出力バッファ11は、単段のFIF
O15から構成されているが、どんな状況においてもク
ラス多重化FIFO14のセルをある有限の時間内で出
力ポートに出力できることを保証できれば、どんな形態
でもよい。
The output buffer 11 of FIG. 1 is a single-stage FIF.
Although it is composed of O15, any form may be used as long as it can guarantee that the cells of the class multiplexing FIFO 14 can be output to the output port within a limited time in any situation.

【0093】例えば、バッファを全く持たずにクラス多
重化FIFO14のセルを調停して出力ポートに出力す
る構成でもよい。また例えば、後述の図3または図4に
示す構成でもかまわない。
For example, the configuration may be such that the cells of the class multiplexing FIFO 14 are arbitrated and output to the output port without having any buffer. Further, for example, the configuration shown in FIG. 3 or 4 described later may be used.

【0094】図3に示した出力バッファ16は、FIF
Oが複数段(図3では2段)に構成されており、それぞ
れ前段のFIFOにバックプレッシャ信号が接続され
る。
The output buffer 16 shown in FIG.
The O is configured in a plurality of stages (two stages in FIG. 3), and the back pressure signal is connected to the FIFO in the preceding stage.

【0095】すなわち、図3の出力バッファ16は、入
力側(前段)の複数のFIFO18に、入力バッファ1
0の各出力に対応して設けられる入力リンク#1〜#N
が接続され、それらFIFO18の各出力が出力側(後
段)のFIFO19に接続されて構成され、後段のFI
FO19から、その輻輳状態に応じて出力されるバック
プレッシャ信号は、前段の複数のFIFO18のそれぞ
れに接続され、前段の複数のFIFO18のそれぞれか
ら、その輻輳状態に応じて出力されるバックプレッシャ
信号は、複数のクラス多重化FIFO14のそれぞれに
接続される。
That is, the output buffer 16 of FIG. 3 has a plurality of FIFOs 18 on the input side (preceding stage), and the input buffer 1
Input links # 1 to #N provided for each output of 0
Are connected, and the outputs of the FIFOs 18 are connected to the output-side (post-stage) FIFO 19 to configure the post-stage FI.
The back pressure signal output from the FO 19 according to the congestion state is connected to each of the plurality of FIFOs 18 in the preceding stage, and the back pressure signal output from each of the FIFOs 18 in the preceding stage according to the congestion state is , Is connected to each of the plurality of class multiplexing FIFOs 14.

【0096】図4に示した出力バッファ17は、図3と
同様にFIFOが複数段(図4では2段)に構成されて
いる。図3と異なるのは、入力側の複数のFIFO18
のキュー長情報(または全てのFIFOのキュー長情報
でもよい)をバックプレッシャ生成部20へ転送し、バ
ックプレッシャ生成部20はキュー長情報からバックプ
レッシャ信号を生成し、全ての入力リンクへ同報するこ
とである。
The output buffer 17 shown in FIG. 4 has a plurality of FIFOs (two stages in FIG. 4) as in FIG. The difference from FIG. 3 is that a plurality of FIFOs 18 on the input side are provided.
Of the queue length information (or may be the queue length information of all FIFOs) to the back pressure generation unit 20, and the back pressure generation unit 20 generates a back pressure signal from the queue length information and broadcasts it to all input links. It is to be.

【0097】例えば、キュー長を全て合計してしきい値
と比較し、しきい値を越えていればバックプレッシャ信
号により出力バッファへの入力を禁止する。バックプレ
ッシャ生成部20はクラス管理部12に存在しても良
い。
For example, the queue lengths are all summed and compared with a threshold value, and if the queue length is exceeded, the input to the output buffer is prohibited by the back pressure signal. The back pressure generation unit 20 may exist in the class management unit 12.

【0098】第1の実施形態のクラス間の優先制御を行
うセル多重化装置によれば、高いスループットが必要な
出力バッファにてクラスを識別する必要がないため、容
易に実現することが可能となる。入力バッファはクラス
毎にセルを管理する必要があるが、入力バッファに必要
なスループットは低いため実現が容易となる。
According to the cell multiplexing apparatus for performing priority control between classes according to the first embodiment, it is not necessary to identify the class in the output buffer that requires high throughput, so that it can be realized easily. Become. The input buffer needs to manage cells for each class, but the throughput required for the input buffer is low, which facilitates implementation.

【0099】図1のセル多重化装置の構成をさらに詳細
に説明する。
The configuration of the cell multiplexer of FIG. 1 will be described in more detail.

【0100】クラス管理部12に入力されるクラス毎セ
ル蓄積部セル数は、クラス毎に、全ての入力バッファ1
0のクラス毎セル蓄積部セル数の合計でよい。また、ク
ラス多重化FIFOセル数も、全ての入力バッファ10
の合計でよい。
The number of cells in each class cell storage unit input to the class management unit 12 is equal to that of all input buffers 1 for each class.
The total number of cell storage cells per class of 0 may be used. In addition, the number of class multiplexing FIFO cells is also the same for all input buffers 10.
The sum of

【0101】合計の演算はクラス管理部12の内部で行
なっても良いし、クラス管理部12の外部で行なっても
良い。
The total calculation may be performed inside the class management unit 12 or may be performed outside the class management unit 12.

【0102】セル数情報はクラス管理部12において比
較的小さなしきい値と大小を判定する。しきい値が固定
値であるか動的に変化する値であるかはクラス管理部1
2のアルゴリズムに依存するが、もししきい値がある固
定値の場合はセル数の代わりにその比較結果をクラス管
理部に入力してもよい。または、ある値以上はどのよう
な値でもクラス管理部12の処理に影響を与えないのな
ら、それを利用してその値以上は一つの符号に符号化し
て入力しても良い。例えば4ビットで、セル数を(00
00)=0、(0001)=1、(0010)=2、
(0011)=3、…、(1101)=13、(111
0)=14、(1111)=15以上、という16段階
に符号化するなどとしてもよい。これによりクラス管理
部12への入力情報を圧縮することができ、実装が容易
になるという利点がある。
The cell number information is judged by the class management unit 12 to be a relatively small threshold value and the size. Whether the threshold value is a fixed value or a dynamically changing value is determined by the class management unit 1
Depending on the algorithm of No. 2, if the threshold value is a fixed value, the comparison result may be input to the class management unit instead of the number of cells. Alternatively, if any value greater than or equal to a certain value does not affect the processing of the class management unit 12, it may be used to encode and input the value greater than or equal to one code. For example, with 4 bits, the number of cells is (00
00) = 0, (0001) = 1, (0010) = 2,
(0011) = 3, ..., (1101) = 13, (111
The encoding may be performed in 16 steps of 0) = 14 and (1111) = 15 or more. This has the advantage that the input information to the class management unit 12 can be compressed and the mounting becomes easy.

【0103】セル数の合計を扱うことにより、クラス管
理部12の実装を簡単化することができる。転送クラス
指示も全ての入力バッファに同じ情報を同報することか
ら、クラス管理部は入力バッファを個々に認識する必要
がない。よって入力ポート数が多くなっても本質的な実
装の困難度は変化しないという利点がある。
By handling the total number of cells, the implementation of the class management unit 12 can be simplified. Since the transfer class instruction also broadcasts the same information to all input buffers, the class management unit does not need to recognize each input buffer individually. Therefore, even if the number of input ports increases, there is an advantage that the essential difficulty of implementation does not change.

【0104】クラス管理部12が転送指示を決定するア
ルゴリズムは例えば次のようなものである。
The algorithm for the class management unit 12 to determine the transfer instruction is as follows, for example.

【0105】1.クラス多重化FIFOセル数より、ク
ラス多重化FIFOがアンダフローしないかどうかを判
断し、アンダフローする可能性があると判断した場合の
みアンダフローしないように転送指示を行なう。アンダ
フローとは、クラス多重化FIFOセル数がゼロにな
り、本来出力できるはずのクラス毎セル蓄積部のセルが
有効に出力できない状態をいう。
1. Based on the number of class-multiplexed FIFO cells, it is determined whether or not the class-multiplexed FIFO does not underflow, and a transfer instruction is issued so as not to underflow only when it is determined that there is a possibility of underflow. Underflow refers to a state in which the number of class-multiplexed FIFO cells becomes zero, and the cells in the cell storage unit for each class, which should have been output, cannot be output effectively.

【0106】2.クラス毎セル蓄積部セル数より、入力
バッファ10にセルが蓄積されているクラスを転送指示
の候補とする。
2. Based on the number of cells in each cell storage unit, the class in which cells are stored in the input buffer 10 is set as a transfer instruction candidate.

【0107】3.転送指示を行なうことができる場合
に、転送指示の候補となっているクラスの中で最も優先
度の高いクラスを求め、そのクラスの転送を指示する。
3. When the transfer instruction can be given, the class having the highest priority among the classes which are candidates for the transfer instruction is obtained, and the transfer of the class is instructed.

【0108】クラス管理部12は出力バッファの状態と
バックプレッシャ信号を直接考慮せずに転送クラス指示
を行なう。そのため、転送クラス指示によるセルの転送
スループットが、入力バッファ10からのセル出力スル
ープットを、上回ることがあり、その差を一時的に吸収
するためにクラス多重化FIFO14が用意されてい
る。クラス管理部12はクラス多重化FIFOセル数を
知ることで、転送クラス指示によるセル転送のスループ
ットが、入力バッファ10からのセル出力スループット
を、長時間連続して越えないように制御する。
The class management unit 12 gives a transfer class instruction without directly considering the state of the output buffer and the back pressure signal. Therefore, the cell transfer throughput according to the transfer class instruction may exceed the cell output throughput from the input buffer 10, and the class multiplexing FIFO 14 is provided to temporarily absorb the difference. By knowing the number of class multiplexing FIFO cells, the class management unit 12 controls so that the cell transfer throughput according to the transfer class instruction does not exceed the cell output throughput from the input buffer 10 for a long time.

【0109】クラス毎セル蓄積部13からクラス多重化
FIFO14へ実際に転送したセルを全ての入力バッフ
ァ10で合計したセル数(クラス毎転送セル数)をクラ
ス管理部12が知ることにより、より詳細なクラス間の
優先制御を行なうことができる。
More detailed information can be obtained by the class management unit 12 knowing the total number of cells (the number of transferred cells for each class) of the cells actually transferred from the cell storage unit for each class 13 to the class multiplexing FIFO 14 in all input buffers 10. Priority control between various classes can be performed.

【0110】この場合、クラス管理部12が転送指示を
決定するアルゴリズムは例えば次のようなものである。
In this case, the algorithm for the class management unit 12 to determine the transfer instruction is as follows, for example.

【0111】1.クラス多重化FIFO内セル数より、
クラス多重化FIFOがアンダフローしないかどうかを
判断し、アンダフローする可能性があると判断した場合
のみアンダフローしないように転送指示を行なう。アン
ダフローとは、クラス多重化FIFOセル数がゼロにな
り、本来出力できるはずのクラス毎セル蓄積部13のセ
ルが有効に出力できない状態をいう。
[0111] 1. From the number of cells in the class multiplexing FIFO,
It is determined whether or not the class multiplexing FIFO does not underflow, and a transfer instruction is issued so as not to underflow only when it is determined that there is a possibility of underflow. Underflow refers to a state in which the number of class-multiplexed FIFO cells becomes zero, and the cells in the class-by-class cell storage unit 13 that could originally be output cannot be output effectively.

【0112】2.クラス毎セル蓄積部セル数より、入力
バッファにセルが蓄積されているクラスを転送指示の候
補とする。
[0112] 2. Cell storage unit for each class Based on the number of cells, the class in which cells are stored in the input buffer is a transfer instruction candidate.

【0113】3.クラス毎転送セル数より、クラス毎に
予め定められたスループット以上のスループットを得て
いるクラスは、その程度に応じて転送指示する優先度を
下げる。または転送指示の候補としない。
3. For a class that obtains a throughput equal to or higher than the throughput predetermined for each class from the number of transfer cells for each class, the priority of the transfer instruction is lowered according to the degree. Or it is not a candidate for transfer instruction.

【0114】4.クラス毎転送セル数より、クラス毎に
予め定められたスループット以下のスループットしか得
ていないクラスは、その程度に応じて転送指示する優先
度を上げる。
4. For a class that obtains a throughput equal to or lower than a predetermined throughput for each class based on the number of transfer cells for each class, the priority of the transfer instruction is increased according to the degree.

【0115】5.転送指示を行なうことができる場合
に、転送指示の候補となっているクラスの中で最も優先
度の高いクラスを求め、そのクラスの転送を指示する。
[0115] 5. When the transfer instruction can be given, the class having the highest priority among the classes which are candidates for the transfer instruction is obtained, and the transfer of the class is instructed.

【0116】1.2 第2の実施形態 次に、第2の実施形態について説明する。1.2 Second Embodiment Next, a second embodiment will be described.

【0117】図2に、第2の実施形態に係るクラス間の
優先制御を行なうセル多重化装置の他の構成例を示す。
FIG. 2 shows another example of the configuration of the cell multiplexing apparatus for performing priority control between classes according to the second embodiment.

【0118】図2のセル多重化装置は、入力ポート#1
〜#Nのそれぞれに対応して設けられ、各入力ポート#
1〜#Nから入力したセルを一時的に蓄積する複数の入
力バッファ100と、入力バッファ100の出力したセ
ルを多重化し出力ポートへ出力する出力バッファ111
と、全ての入力バッファ100を管理するクラス管理部
112とを備える。
The cell multiplexer of FIG. 2 has an input port # 1.
~ #N provided for each input port #
A plurality of input buffers 100 for temporarily accumulating cells input from 1 to #N, and an output buffer 111 for multiplexing the cells output from the input buffer 100 and outputting them to an output port.
And a class management unit 112 that manages all the input buffers 100.

【0119】入力バッファ100は、入力したセルをク
ラス(クラス1〜クラス3)毎に蓄積するクラス毎のセ
ル蓄積部113(クラス1セル蓄積部113a、クラス
2セル蓄積部113b、クラス3セル蓄積部113c)
と、セル蓄積部113から出力したセルを多重化し出力
バッファ111へ出力するクラス多重化FIFO114
を備えている。
The input buffer 100 stores the input cells for each class (class 1 to class 3). The cell storage section 113 for each class (class 1 cell storage section 113a, class 2 cell storage section 113b, class 3 cell storage). Part 113c)
And a class multiplexing FIFO 114 that multiplexes the cells output from the cell storage unit 113 and outputs the multiplexed cells to the output buffer 111.
It has.

【0120】クラス管理部112は、セル蓄積部113
のクラス毎セル蓄積部セル数と、出力バッファ内セル数
を得て、予め定められたアルゴリズムより転送クラス指
示を決定して全ての入力バッファ100へ同報する。
The class management unit 112 has a cell storage unit 113.
The number of cells in each class cell storage section and the number of cells in the output buffer are obtained, a transfer class instruction is determined from a predetermined algorithm, and broadcast to all input buffers 100.

【0121】入力バッファ100に同報された転送クラ
ス指示で指示されたクラスのセル蓄積部113は、セル
をクラス多重化FIFO114へ転送し、クラス多重化
FIFO114は、出力バッファ111内の輻輳状態に
応じたバックプレッシャ信号の制御に従って出力バッフ
ァ111へセルを出力する。
The cell storage unit 113 of the class designated by the transfer class instruction broadcast to the input buffer 100 transfers the cell to the class multiplexing FIFO 114, and the class multiplexing FIFO 114 sets the congestion state in the output buffer 111. The cell is output to the output buffer 111 according to the control of the corresponding back pressure signal.

【0122】クラス毎セル蓄積部113は通常はFIF
Oで構成される。
The cell storage unit 113 for each class is normally FIF.
Composed of O.

【0123】図2は3クラス(クラス1〜クラス3)の
場合を示したが、第2の実施形態はクラス数に関わらず
有効に作用する。
FIG. 2 shows the case of three classes (class 1 to class 3), but the second embodiment works effectively regardless of the number of classes.

【0124】図2を、セルスイッチの、各出力ポートに
関する部分と考えるとセルスイッチについても第2の実
施形態を適用できる。
Considering FIG. 2 as a portion of the cell switch relating to each output port, the second embodiment can be applied to the cell switch.

【0125】図2の出力バッファ111は、どんな状況
においてもクラス多重化FIFOのセルをある有限の時
間内で出力ポートに出力できることを保証できれば、ど
んな形態でもよい。
The output buffer 111 of FIG. 2 may take any form as long as it can guarantee that the cells of the class multiplexing FIFO can be output to the output port within a limited time under any circumstances.

【0126】例えば、図4に示す構成でもかまわない。For example, the configuration shown in FIG. 4 may be used.

【0127】なお、この場合、バックプレッシャ生成部
20はクラス管理部112に存在してもよい。出力バッ
ファ内セル数Nmは、バックプレッシャ生成部20にて
加算し、図2のクラス管理部112へ出力する。
In this case, the back pressure generator 20 may be present in the class manager 112. The number of cells Nm in the output buffer is added by the back pressure generation unit 20 and output to the class management unit 112 in FIG.

【0128】第2の実施形態のクラス間の優先制御を行
うセル多重化装置によれば、高いスループットが必要な
出力バッファにてクラスを識別する必要がないため、容
易に実現することが可能である。入力バッファ100は
クラス毎にセルを管理する必要があるが、入力バッファ
100に必要なスループットは低いため実現が容易であ
る。
According to the cell multiplexer of the second embodiment for performing priority control between classes, it is not necessary to identify the class in the output buffer that requires high throughput, so that it can be easily realized. is there. The input buffer 100 needs to manage cells for each class, but the throughput required for the input buffer 100 is low, which facilitates implementation.

【0129】図2のセル多重化装置の構成をさらに詳細
に説明する。
The configuration of the cell multiplexer of FIG. 2 will be described in more detail.

【0130】クラス管理部112に入力されるクラス毎
セル蓄積部セル数は、クラス毎に、全ての入力バッファ
100のクラス毎セル蓄積セル数の合計でよい。
The number of cell storage cells for each class input to the class management unit 112 may be the total number of cell storage cells for each class of all input buffers 100 for each class.

【0131】合計の演算はクラス管理部112の内部で
行なっても良いし、クラス管理部112の外部で行なっ
ても良い。
The total calculation may be performed inside the class management unit 112 or outside the class management unit 112.

【0132】セル数情報はクラス管理部112において
比較的小さなしきい値と大小を判定する。しきい値が固
定値であるか動的に変化する値であるかはクラス管理部
112のアルゴリズムに依存するが、もししきい値があ
る固定値の場合はセル数の代わりにその比較結果をクラ
ス管理部112に入力してもよい。または、ある値以上
はどのような値でもクラス管理部112の処理に影響を
与えないのなら、それを利用してその値以上は一つの符
号に符号化して入力しても良い。例えば4ビットで、セ
ル数を(0000)=0、(0001)=1、(001
0)=2、(0011)=3、…、(1101)=1
3、(1110)=14、(1111)=15以上、と
いう16段階に符号化するなどとしてもよい。これによ
りクラス管理部への入力情報を圧縮することができ、実
装が容易になるという利点がある。
The class management unit 112 determines the relatively small threshold value and the size of the cell number information. Whether the threshold value is a fixed value or a dynamically changing value depends on the algorithm of the class management unit 112. If the threshold value is a fixed value, the comparison result is used instead of the number of cells. You may input into the class management part 112. Alternatively, if any value greater than a certain value does not affect the processing of the class management unit 112, it may be used to encode and input the value greater than that value into one code. For example, with 4 bits, the number of cells is (0000) = 0, (0001) = 1, (001
0) = 2, (0011) = 3, ..., (1101) = 1
The encoding may be performed in 16 stages of 3, (1110) = 14, (1111) = 15 or more. This has the advantage that the input information to the class management unit can be compressed and the implementation becomes easier.

【0133】セル数の合計を扱うことにより、クラス管
理部112の実装を簡単化することができる。転送クラ
ス指示も全ての入力バッファ100に同じ情報を同報す
ることから、クラス管理部112は入力バッファ100
を個々に認識する必要がない。よって入力ポート数が多
くなっても本質的な実装の困難度は変化しないという利
点がある。
By handling the total number of cells, the implementation of the class management section 112 can be simplified. Since the transfer class instruction also broadcasts the same information to all the input buffers 100, the class management unit 112 determines that the input buffers 100
Need not be individually recognized. Therefore, even if the number of input ports increases, there is an advantage that the essential difficulty of implementation does not change.

【0134】クラス管理部112が転送指示を決定する
アルゴリズムは例えば次のようなものである。
The algorithm for the class management unit 112 to determine the transfer instruction is as follows, for example.

【0135】1.出力バッファ111内セル数より、出
力バッファ111がアンダフローしないかどうかを判断
し、アンダフローする可能性があると判断した場合のみ
アンダフローしないように転送指示を行なう。アンダフ
ローとは、出力バッファセル数がゼロになり、本来出力
できるはずのクラス毎セル蓄積部113のセルが有効に
出力できない状態をいう。
[0135] 1. Based on the number of cells in the output buffer 111, it is determined whether or not the output buffer 111 underflows, and only when it is determined that there is a possibility of underflow, a transfer instruction is given so as not to underflow. The underflow is a state in which the number of output buffer cells becomes zero and the cells of the class-by-class cell storage unit 113, which should be able to be output, cannot be output effectively.

【0136】2.クラス毎セル蓄積部セル数より、入力
バッファ100にセルが蓄積されているクラスを転送指
示の候補とする。
[0136] 2. Based on the number of cells in each cell storage unit, the class in which cells are stored in the input buffer 100 is set as a transfer instruction candidate.

【0137】3.転送指示を行なうことができる場合
に、転送指示の候補となっているクラスの中で最も優先
度の高いクラスを求め、そのクラスの転送を指示する。
3. When the transfer instruction can be given, the class having the highest priority among the classes which are candidates for the transfer instruction is obtained, and the transfer of the class is instructed.

【0138】クラス管理部112は出力バッファ111
の状態を直接考慮して転送クラス指示を行なう。そのた
め出力バッファ111のバッファ量を十分用意すれば、
バックプレッシャ信号が入力バッファからのセル出力を
抑制することがなく、クラス多重化FIFO114は基
本的に不要である。クラス管理部112は出力バッファ
内セル数を知ることで、転送クラス指示によるセル転送
のスループットが、出力バッファ111からのセル出力
スループットを、長時間連続して越えないように制御す
る。
The class management unit 112 uses the output buffer 111.
The transfer class is instructed by directly considering the state of. Therefore, if a sufficient buffer amount of the output buffer 111 is prepared,
Since the back pressure signal does not suppress the cell output from the input buffer, the class multiplexing FIFO 114 is basically unnecessary. By knowing the number of cells in the output buffer, the class management unit 112 controls so that the cell transfer throughput according to the transfer class instruction does not exceed the cell output throughput from the output buffer 111 continuously for a long time.

【0139】このように入力バッファ100へのバック
プレッシャ信号およびクラス多重化FIFO114は基
本的に不要であるが、出力バッファ111のバッファ量
が十分でない場合には有効に作用する。これらを備えて
いれば無い場合に比べ出力バッファ111のバッファ量
を少なくできる。
As described above, the back pressure signal to the input buffer 100 and the class multiplexing FIFO 114 are basically unnecessary, but they work effectively when the buffer amount of the output buffer 111 is not sufficient. If these are not provided, the buffer amount of the output buffer 111 can be reduced as compared with the case without them.

【0140】クラス毎セル蓄積部113からクラス多重
化FIFO114へ実際に転送したセルを全ての入力バ
ッファで合計したセル数(クラス毎転送セル数)をクラ
ス管理部112が知ることにより、より詳細なクラス間
の優先制御を行なうことができる。
More detailed information can be obtained by the class management unit 112 by knowing the number of cells (the number of cells transferred for each class) obtained by summing the cells actually transferred from the cell storage unit for each class 113 to the class multiplexing FIFO 114 in all input buffers. Priority control between classes can be performed.

【0141】この場合、クラス管理部112が転送指示
を決定するアルゴリズムは例えば次のようなものであ
る。
In this case, the algorithm for the class management unit 112 to determine the transfer instruction is, for example, as follows.

【0142】1.出力バッファ111内セル数より、出
力バッファ111がアンダフローしないかどうかを判断
し、アンダフローする可能性があると判断した場合のみ
アンダフローしないように転送指示を行なう。アンダフ
ローとは、出力バッファセル数がゼロになり、本来出力
できるはずのクラス毎セル蓄積部113のセルが有効に
出力できない状態をいう。
1. Based on the number of cells in the output buffer 111, it is determined whether or not the output buffer 111 underflows, and only when it is determined that there is a possibility of underflow, a transfer instruction is given so as not to underflow. The underflow is a state in which the number of output buffer cells becomes zero and the cells of the class-by-class cell storage unit 113, which should be able to be output, cannot be output effectively.

【0143】2.クラス毎セル蓄積部セル数より、入力
バッファ100にセルが蓄積されているクラスを転送指
示の候補とする。
[0143] 2. Based on the number of cells in each cell storage unit, the class in which cells are stored in the input buffer 100 is set as a transfer instruction candidate.

【0144】3.クラス毎転送セル数より、クラス毎に
予め定められたスループット以上のスループットを得て
いるクラスは、その程度に応じて転送指示する優先度を
下げる。または転送指示の候補としない。
[0144] 3. For a class that obtains a throughput equal to or higher than the throughput predetermined for each class from the number of transfer cells for each class, the priority of the transfer instruction is lowered according to the degree. Or it is not a candidate for transfer instruction.

【0145】4.クラス毎転送セル数より、クラス毎に
予め定められたスループット以下のスループットしか得
ていないクラスは、その程度に応じて転送指示する優先
度を上げる。
4. For a class that obtains a throughput equal to or lower than a predetermined throughput for each class based on the number of transfer cells for each class, the priority of the transfer instruction is increased according to the degree.

【0146】5.転送指示を行なうことができる場合
に、転送指示の候補となっているクラスの中で最も優先
度の高いクラスを求め、そのクラスの転送を指示する。
5. When the transfer instruction can be given, the class having the highest priority among the classes which are candidates for the transfer instruction is obtained, and the transfer of the class is instructed.

【0147】1.3 第1、第2の実施形態に係るセル
多重化装置の利点 以上、説明したように、上記第1、第2の実施形態のク
ラス間の優先制御を行なうセル多重化装置によれば、高
いスループットが必要な出力バッファにてクラスを識別
する必要がないため、入力ポート数が大きな場合におい
ても実現が容易であるという利点がある。
1.3 Advantages of Cell Multiplexing Apparatus According to First and Second Embodiments As described above, the cell multiplexing apparatus that performs priority control between classes according to the first and second embodiments. According to this, since it is not necessary to identify the class in the output buffer that requires high throughput, there is an advantage that it is easy to realize even when the number of input ports is large.

【0148】2. 公平キューイング(第3〜第7の実
施形態) 次に、本発明に係るVC間公平キューイングを行なうセ
ル多重化装置の実施形態について説明する。
[0148] 2. Fair Queuing (Third to Seventh Embodiments) Next, an embodiment of a cell multiplexer for performing fair queuing between VCs according to the present invention will be described.

【0149】2.1 第3の実施形態(出力バッファ型
のセル多重化装置) 図5に、第3の実施形態に係るVC間公平キューイング
を行なうセル多重化装置の構成例を示す。
2.1 Third Embodiment (Output Buffer Type Cell Multiplexer) FIG. 5 shows an example of the configuration of a cell multiplexer which performs inter-VC fair queuing according to the third embodiment.

【0150】図5のセル多重化装置は、出力バッファ型
と呼ばれ、入力ポート#1〜#Nのそれぞれに対応して
設けられ、入力ポート#1〜#Nから入力したセルを、
入力ポート数N倍の速度に速度変換する複数の速度変換
回路200と、速度変換回路200の出力したセルを一
時的に蓄積し出力ポートへ出力する出力バッファ201
とを備える。
The cell multiplexer of FIG. 5 is called an output buffer type and is provided corresponding to each of the input ports # 1 to #N, and the cells input from the input ports # 1 to #N are
A plurality of speed conversion circuits 200 that convert the speed to a speed that is N times as many as the number of input ports, and an output buffer 201 that temporarily accumulates the cells output from the speed conversion circuit 200 and outputs them to the output ports.
And

【0151】出力バッファ201は、入力したセルをV
C毎に分離するVC分離部201aと、各VC毎に設け
られる複数のVC毎FIFO201bと、複数のVC毎
FIFO201bのそれぞれから出力されるセルを選択
して出力ポートへ出力するセル選択部201cを備えて
いる。
The output buffer 201 outputs the input cell to V
A VC separation unit 201a that separates each C, a plurality of VC FIFOs 201b that are provided for each VC, and a cell selection unit 201c that selects a cell output from each of the plurality of VC FIFOs 201b and outputs the selected cell to an output port. I have it.

【0152】VC毎FIFO201bは十分良好なセル
廃棄率を得るためには大容量でなければならない。また
ノンブロッキング条件より、VC毎FIFO201bの
入力速度は入力ポートのN倍でなければならない。入力
ポートの速度が大きい場合や、入力ポート数が多い場合
は、この様なスループットを満足する高速大容量のメモ
リは安価ではなく、かつ、この様なスループットを満足
しつつ複雑なVC毎のキュー管理を行なうことも困難で
ある。
The FIFO 201b for each VC must have a large capacity to obtain a sufficiently good cell loss rate. Due to the non-blocking condition, the input speed of the FIFO 201b for each VC must be N times the input port. When the input port speed is high or the number of input ports is large, a high-speed and large-capacity memory that satisfies such throughput is not inexpensive, and a complex queue for each VC while satisfying such throughput. It is also difficult to manage.

【0153】2.2 第4の実施形態(「カゴ」とい
う概念を用いたセル多重化装置) 次に、第4の実施形態について説明する。
2.2 Fourth Embodiment (Cell Multiplexer Using Concept of "Cage") Next, a fourth embodiment will be described.

【0154】図6に、第4の実施形態に係るカゴと呼ぶ
概念を用いたセル多重化装置の構成例を示す。
FIG. 6 shows an example of the configuration of a cell multiplexing device using the concept of a basket according to the fourth embodiment.

【0155】図6に示したセル多重化装置は、入力ポー
ト#1〜#Nのそれぞれに対応して設けられ、入力ポー
ト#1〜#Nから入力したセルを一時的に蓄積する複数
の入力バッファ210と、各入力バッファ210の出力
したセルを多重化し出力ポートへ出力する出力バッファ
211とを備え、出力バッファ211内の輻輳状態に応
じてバックプレッシャ信号により各入力バッファ210
のセル出力を制御する。
The cell multiplexer shown in FIG. 6 is provided corresponding to each of the input ports # 1 to #N, and has a plurality of inputs for temporarily accumulating cells input from the input ports # 1 to #N. A buffer 210 and an output buffer 211 that multiplexes the cells output from each input buffer 210 and outputs the multiplexed cells to an output port are provided, and each input buffer 210 receives a back pressure signal according to a congestion state in the output buffer 211.
Control the cell output of.

【0156】このセル多重化装置は、出力許可済セル集
合を管理するカゴ管理部212を備える。
This cell multiplexing device is provided with a basket management unit 212 for managing the output-permitted cell set.

【0157】入力バッファ210に蓄積されているセル
のうち、出力を許可されたセルの集合(出力許可済セル
集合)をカゴと呼ぶ。入力バッファ210から出力する
セルはカゴ213から選択する。
Of the cells stored in the input buffer 210, the set of cells permitted to output (output permitted cell set) is called a basket. The cell output from the input buffer 210 is selected from the basket 213.

【0158】カゴ管理部212は、カゴ213に含まれ
るセル数を入力し、予め定められたアルゴリズムよりカ
ゴ213へのセル転送指示を決定して全ての入力バッフ
ァ210へ同報する。
The car management unit 212 inputs the number of cells contained in the car 213, determines a cell transfer instruction to the car 213 by a predetermined algorithm, and broadcasts it to all the input buffers 210.

【0159】入力バッファ210は、セル転送指示によ
り、カゴ213として確定されたセル以外の入力バッフ
ァ210に蓄積されているセルで、同一の時刻までに出
力すべきセルの集合214をカゴ213に加える。
The input buffer 210 is a cell accumulated in the input buffer 210 other than the cell determined as the basket 213 by the cell transfer instruction, and adds to the basket 213 a set 214 of cells to be output by the same time. .

【0160】図6を、セルスイッチの、各出力ポートに
関する部分と考えるとセルスイッチについても第4の実
施形態を適用できる。
Considering FIG. 6 as a portion of the cell switch relating to each output port, the fourth embodiment can be applied to the cell switch.

【0161】図6の出力バッファ211は、どんな状況
においてもカゴのセルをある有限の時間内で出力ポート
に出力できることを保証できれば、どんな形態でもよ
い。
The output buffer 211 of FIG. 6 may take any form as long as it can guarantee that the cells of the basket can be output to the output port within a limited time in any situation.

【0162】例えば、バッファを全く持たずにカゴ21
3のセルを調停して出力ポートに出力する構成でもよ
い。また例えば図3または図4に示す構成でもかまわな
い。
For example, the basket 21 without any buffer
A configuration in which the cell No. 3 is arbitrated and output to the output port may be used. Further, for example, the configuration shown in FIG. 3 or 4 may be used.

【0163】なお、図4において、バックプレッシャ生
成部20はカゴ管理部212に存在しても良い。
Note that, in FIG. 4, the back pressure generating unit 20 may exist in the car management unit 212.

【0164】第4の実施形態のVC間公平キューイング
を行なうセル多重化装置によれば、高いスループットが
必要な出力バッファは簡単な構成になっているため、容
易に実現することが可能である。入力バッファはカゴに
よりセルを管理する必要があるが、入力バッファに必要
なスループットは低いため、実現の容易性は高い。
According to the cell multiplexer for performing fair queuing between VCs of the fourth embodiment, the output buffer which requires a high throughput has a simple structure and can be easily realized. . Although it is necessary for the input buffer to manage cells by a basket, the throughput required for the input buffer is low, so that it is easy to realize.

【0165】図6のセル多重化装置の構成をさらに詳細
に説明する。
The configuration of the cell multiplexer of FIG. 6 will be described in more detail.

【0166】カゴ管理部212に入力されるカゴ内セル
数は、全ての入力バッファ210のカゴ内セル数の合計
でよい。
The number of cells in the basket input to the basket management unit 212 may be the total number of cells in the basket of all the input buffers 210.

【0167】合計の演算はカゴ管理部212の内部で行
なっても良いし、カゴ管理部212の外部で行なっても
良い。
The calculation of the total may be performed inside the car management unit 212 or outside the car management unit 212.

【0168】セル数情報はカゴ管理部212において比
較的小さなしきい値と大小を判定する。しきい値が固定
値であるか動的に変化する値であるかはカゴ管理部21
2のアルゴリズムに依存するが、もししきい値がある固
定値の場合はセル数の代わりにその比較結果をカゴ管理
部212に入力してもよい。または、ある値以上はどの
ような値でもカゴ管理部212の処理に影響を与えない
のなら、それを利用してその値以上は一つの符号に符号
化して入力しても良い。例えば4ビットで、セル数を
(0000)=0、(0001)=1、(0010)=
2、(0011)=3、…、(1101)=13、(1
110)=14、(1111)=15以上、という16
段階に符号化するなどとしてもよい。これによりカゴ管
理部212への入力情報を圧縮することができ、実装が
容易になるという利点がある。
With respect to the cell number information, the car management unit 212 determines a relatively small threshold value and a size. Whether the threshold value is a fixed value or a dynamically changing value is determined by the car management unit 21.
Depending on the algorithm of No. 2, if the threshold value is a fixed value, the comparison result may be input to the car management unit 212 instead of the number of cells. Alternatively, if any value greater than or equal to a certain value does not affect the processing of the car management unit 212, it may be used to encode and input the value greater than or equal to one code. For example, with 4 bits, the number of cells is (0000) = 0, (0001) = 1, (0010) =
2, (0011) = 3, ..., (1101) = 13, (1
16) 110) = 14, (1111) = 15 or more
It may be encoded in stages. This has the advantage that the input information to the basket management unit 212 can be compressed and the mounting becomes easy.

【0169】セル数の合計を扱うことにより、カゴ管理
部212の実装を簡単化することができる。カゴへのセ
ル転送指示も全ての入力バッファ210に同じ情報を同
報することから、カゴ管理部212は入力バッファ21
0を個々に認識する必要がない。よって入力ポート数が
多くなっても本質的な実装の困難度は変化しないという
利点がある。
By handling the total number of cells, the implementation of the basket management unit 212 can be simplified. Since the same information is broadcast to all the input buffers 210 in the cell transfer instruction to the car, the car management unit 212 is
There is no need to recognize 0 individually. Therefore, even if the number of input ports increases, there is an advantage that the essential difficulty of implementation does not change.

【0170】カゴ管理部212がカゴ213へのセル転
送指示を決定するアルゴリズムは例えば次のようなもの
である。
The algorithm for the car management unit 212 to determine the cell transfer instruction to the car 213 is as follows, for example.

【0171】すなわち、カゴ内セル数Nkより、カゴ2
13内のセル数がアンダフローしないかどうかを判断
し、アンダフローする可能性があると判断した場合のみ
アンダフローしないように転送指示を行なう。アンダフ
ローとは、カゴ内セル数Nkがゼロになり、本来出力で
きるはずの入力バッファ210のセルが有効に出力でき
ない状態をいう。
That is, from the number of cells in the car Nk, the car 2
It is determined whether or not the number of cells in 13 does not underflow, and a transfer instruction is given so as not to underflow only when it is determined that there is a possibility of underflow. Underflow refers to a state in which the number of cells in the basket Nk becomes zero and the cells of the input buffer 210 that should be able to be output cannot be effectively output.

【0172】入力バッファ210は、カゴ213へのセ
ル転送指示に応じて、同一の時刻までに出力すべきセル
の集合214をカゴ213に加える。例えばVC毎に設
定する値Nx で重み付けされたVC間公平キューイング
を行なう場合において、同一の時刻までに出力すべきセ
ルとは、各入力バッファ210内のカゴ213に入って
いないセルでVC毎に最も古いNx 個のセルを集めたも
のである。
The input buffer 210 adds a set of cells 214 to be output by the same time to the basket 213 in response to a cell transfer instruction to the basket 213. For example, in the case of performing fair queuing between VCs weighted with a value Nx set for each VC, the cells to be output by the same time are cells not in the basket 213 in each input buffer 210 and each VC. Is a collection of the oldest Nx cells.

【0173】転送指示は全ての入力バッファ210に同
報されるため、カゴ213には複数の入力バッファ21
0を通してVC間で公平にセルが入る。カゴ213のセ
ルをカゴ213の外のセルよりも優先して出力バッファ
211に転送することにより、複数の入力バッファ21
0を通してVC間で公平にセルを出力バッファ211へ
転送することが可能である。
Since the transfer instruction is broadcast to all the input buffers 210, the basket 213 has a plurality of input buffers 21.
The cells enter evenly between VCs through 0. By transferring the cells of the basket 213 to the output buffer 211 with priority over the cells outside the basket 213, a plurality of input buffers 21
It is possible to evenly transfer cells to the output buffer 211 between VCs through 0.

【0174】出力バッファ211が、カゴ213から入
力したセルをどんな場合でもある時間内に出力できる構
成になっていれば、VC間で公平にカゴ213へ転送さ
れたセルはその時間の遅延揺らぎを持って、出力ポート
から出力される。
If the output buffer 211 is configured to be able to output the cell input from the car 213 within a certain time in any case, the cells evenly transferred between the VCs to the car 213 have delay fluctuations of that time. It is output from the output port.

【0175】図6は、例として、入力ポート#1、#
2、#Nの入力バッファ210にそれぞれ2本、1本、
3本のVCがキューイングされている状態を示してい
る。全てのVCの重みが同じ時、VC間公平キューイン
グを行なえば、各入力バッファ210からの出力は2対
1対3の割合になる必要がある。本実施形態のセル多重
化装置は、カゴ管理部212から全ての入力バッファ2
10へ同報されるカゴ213へのセル転送指示によっ
て、カゴ213内のセル数は各入力バッファで2対1対
3の割合になり、結果的に出力バッファからの出力も2
対1対3の割合になる。
FIG. 6 shows, by way of example, input ports # 1 and #.
2 and 1 in the #N input buffer 210,
It shows a state in which three VCs are queued. When the weights of all VCs are the same, if the fair queuing between VCs is performed, the output from each input buffer 210 needs to be in a ratio of 2: 1: 1. The cell multiplexer of the present embodiment is configured such that all the input buffers 2 from the basket management unit 212 are input.
By the cell transfer instruction to the basket 213 that is broadcast to 10, the number of cells in the basket 213 becomes a ratio of 2 to 1 to 3 in each input buffer, and as a result, the output from the output buffer also becomes 2
The ratio is 1 to 3.

【0176】カゴ213へのセルの入力方法には2通り
の方法がある。ここでは、転送を指示されたとき、各V
C毎に最も古いNx 個(VC毎に設定する値)のセルを
カゴに入れる場合を例にとって説明する。
There are two methods for inputting cells to the basket 213. Here, when transfer is instructed, each V
An example will be described in which the oldest Nx cells (values set for each VC) of each C are put in the basket.

【0177】ひとつの方法は、入力バッファ210に入
力したセルがカゴ213に入れる条件を満たしていても
最初はカゴ213の中へ入れない方法である。セルはカ
ゴ管理部212からセル転送が指示された場合にのみカ
ゴ213に転送される。これにより、カゴ内セル数はカ
ゴ管理部212がセル転送を指示した場合以外は減少す
る。
One method is such that even if the cell input to the input buffer 210 satisfies the condition to be put in the basket 213, it is not initially put in the basket 213. The cell is transferred to the car 213 only when the car management unit 212 instructs the cell transfer. As a result, the number of cells in the car is reduced except when the car management unit 212 instructs the cell transfer.

【0178】別の方法は、入力バッファ210に入力し
たセルがカゴ213に入れる条件を満たしている時には
最初からカゴ213の中へ入れてしまう方法である。つ
まり転送指示の時点でNx 個のセルをカゴ213に転送
したVCは次の転送指示があるまでセルをカゴ213に
入れることができないが、転送指示の時点でセルをカゴ
213に全く転送しなかったVC、または転送セル数が
Nx 個に満たないVCは、Nx 個になるまで入力セルを
転送指示がなくてもカゴに213入れることができる。
これにより、カゴ内セル数は転送指示と転送指示の間に
おいても増加することがあるが、ほぼ全てのアクティブ
なVCがNx 個のセルを転送した段階で減少する。な
お、本実施形態はどちらの方法においても有効に作用す
る。
Another method is to insert cells into the basket 213 from the beginning when the cells input to the input buffer 210 satisfy the conditions for being inserted into the basket 213. That is, the VC that has transferred Nx cells to the basket 213 at the time of the transfer instruction cannot insert the cell into the basket 213 until the next transfer instruction is issued, but does not transfer the cells to the basket 213 at the time of the transfer instruction. In addition, a VC whose number of transferred cells is less than Nx can put 213 input cells in the basket without a transfer instruction until Nx.
As a result, the number of cells in the basket may increase between transfer instructions, but it decreases when almost all active VCs transfer Nx cells. It should be noted that this embodiment works effectively by either method.

【0179】第4の実施形態のセル多重化装置の輻輳状
態の判断は、VC毎に、トラヒックにより変動する情報
を予め定められた方法により監視すれば良い。そして、
この輻輳判断を元にVC毎に端末にトラヒック制御情報
を通知すればよい。
The determination of the congestion state of the cell multiplexer of the fourth embodiment may be performed by monitoring the information that varies depending on the traffic for each VC by a predetermined method. And
Based on this congestion determination, the traffic control information may be notified to the terminal for each VC.

【0180】監視すべき変動する情報は、例えば蓄積セ
ル数、一定時間あたりの入力セル数とその目標値との関
係、一定個数のセルが入力する時間とその目標値との関
係である。蓄積セル数が多いVC、一定時間あたりの入
力セル数が目標値からかけ離れて多いVC、一定個数の
セルが入力する時間がその目標値からかけ離れて短いV
Cを輻輳しているVCと判断する。
The variable information to be monitored is, for example, the relationship between the number of accumulated cells, the number of input cells per fixed time and its target value, and the relationship between the time when a fixed number of cells are input and its target value. VC with a large number of accumulated cells, VC with a large number of input cells per fixed time far from the target value, and V with a fixed number of cells input far from the target value and short V
Judge C as a congested VC.

【0181】輻輳しているVCのセルのヘッダにあるE
FCIをマークすることや、通過するRMセルを書き換
えることにより、端末にトラヒック制御情報を通知する
ことができる。
E in header of cell of congested VC
It is possible to notify the terminal of the traffic control information by marking the FCI or rewriting the RM cell passing through.

【0182】2.3 第5の実施形態(「カゴ」という
概念を用いたセル多重化装置の他の実施形態) 次に、第5の実施形態について説明する。
2.3 Fifth Embodiment (Other Embodiment of Cell Multiplexing Device Using Concept of "Cage") Next, a fifth embodiment will be described.

【0183】図7に、第5の実施形態に係るカゴと呼ぶ
概念を用いたセル多重化装置の他の構成例を示す。
FIG. 7 shows another example of the configuration of the cell multiplexing apparatus using the concept called a basket according to the fifth embodiment.

【0184】図7に示したセル多重化装置は、入力ポー
ト#1〜#Nのそれぞれに対応して設けられ、各入力ポ
ート#1〜#Nから入力したセルを一時的に蓄積する複
数の入力バッファ220と、入力バッファ220の出力
したセルを多重化し出力ポートへ出力する出力バッファ
221とを備え、出力バッファ221内の輻輳状態に応
じてバックプレッシャ信号により入力バッファ220の
セル出力を制御する。
The cell multiplexer shown in FIG. 7 is provided corresponding to each of the input ports # 1 to #N, and has a plurality of cells for temporarily accumulating cells input from the input ports # 1 to #N. An input buffer 220 and an output buffer 221 that multiplexes cells output from the input buffer 220 and outputs the multiplexed cells to an output port are provided, and a cell output of the input buffer 220 is controlled by a back pressure signal according to a congestion state in the output buffer 221. .

【0185】このセル多重化装置は、出力許可済セル集
合を管理するカゴ管理部222を備える。
This cell multiplexing device comprises a basket management unit 222 for managing the output permitted cell set.

【0186】入力バッファ220に蓄積されているセル
のうち、出力を許可されたセルの集合(出力許可済セル
集合)をカゴと呼ぶ。入力バッファから出力するセルは
カゴ223から選択する。
Of the cells stored in the input buffer 220, the set of cells permitted to output (output permitted cell set) is called a basket. The cell output from the input buffer is selected from the basket 223.

【0187】カゴ管理部222は、出力バッファ内セル
数を入力し、予め定められたアルゴリズムよりカゴ22
3へのセル転送指示を決定して全ての入力バッファ22
0へ同報する。
The car management unit 222 inputs the number of cells in the output buffer, and uses the predetermined algorithm to carry out the car 22 operation.
3 to determine the cell transfer instruction to all input buffers 22
Broadcast to 0.

【0188】入力バッファ220は、セル転送指示によ
り、カゴ223以外の入力バッファ220に蓄積されて
いるセルで同一の時刻までに出力すべきセルの集合22
4をカゴ223に加える。
According to the cell transfer instruction, the input buffer 220 is a set 22 of cells to be output by the same time among the cells stored in the input buffer 220 other than the basket 223.
Add 4 to the basket 223.

【0189】図7を、セルスイッチの、各出力ポートに
関する部分と考えるとセルスイッチについても本実施形
態を適用できる。
Considering FIG. 7 as a portion of the cell switch relating to each output port, this embodiment can be applied to the cell switch.

【0190】図7の出力バッファ221は、どんな状況
においてもカゴ223のセルをある有限の時間内で出力
ポートに出力できることを保証できれば、どんな形態で
もよい。
The output buffer 221 of FIG. 7 may take any form as long as it can guarantee that the cells of the basket 223 can be output to the output port within a limited time in any situation.

【0191】例えば、図4に示す構成でもかまわない。
この場合、バックプレッシャ生成部20はカゴ管理部2
22に存在しても良い。出力バッファ内セル数はバック
プレッシャ生成部20にて加算し、カゴ管理部222へ
出力する。
For example, the configuration shown in FIG. 4 may be used.
In this case, the back pressure generation unit 20 is the car management unit 2
22 may exist. The number of cells in the output buffer is added by the back pressure generation unit 20 and output to the car management unit 222.

【0192】第5の実施形態に係るVC間公平キューイ
ングを行なうセル多重化装置によれば、高いスループッ
トが必要な出力バッファは簡単な構成になっているた
め、容易に実現することが可能である。入力バッファは
カゴによりセルを管理する必要があるが、入力バッファ
に必要なスループットは低いため、実現の容易性は高
い。
According to the cell multiplexer for performing fair queuing between VCs according to the fifth embodiment, the output buffer which requires high throughput has a simple structure, and therefore can be easily realized. is there. Although it is necessary for the input buffer to manage cells by a basket, the throughput required for the input buffer is low, so that it is easy to realize.

【0193】図7のセル多重化装置の構成をさらに詳細
に説明する。
The configuration of the cell multiplexer of FIG. 7 will be described in more detail.

【0194】セル数情報はカゴ管理部222において比
較的小さなしきい値と大小を判定する。しきい値が固定
値であるか動的に変化する値であるかはカゴ管理部22
2のアルゴリズムに依存するが、もししきい値がある固
定値の場合はセル数の代わりにその比較結果をカゴ管理
部222に入力してもよい。または、ある値以上はどの
ような値でもカゴ管理部222の処理に影響を与えない
のなら、それを利用してその値以上は一つの符号に符号
化して入力しても良い。例えば4ビットで、セル数を
(0000)=0、(0001)=1、(0010)=
2、(0011)=3、…、(1101)=13、(1
110)=14、(1111)=15以上、という16
段階に符号化するなどとしてもよい。これによりカゴ管
理部222への入力情報を圧縮することができ、実装が
容易になるという利点がある。
For the cell number information, the car management unit 222 determines a relatively small threshold value and size. Whether the threshold value is a fixed value or a dynamically changing value is determined by the car management unit 22.
Depending on the algorithm of No. 2, if the threshold value is a fixed value, the comparison result may be input to the car management unit 222 instead of the number of cells. Alternatively, if any value greater than a certain value does not affect the processing of the car management unit 222, it may be used to encode and input the value greater than that value into one code. For example, with 4 bits, the number of cells is (0000) = 0, (0001) = 1, (0010) =
2, (0011) = 3, ..., (1101) = 13, (1
16) 110) = 14, (1111) = 15 or more
It may be encoded in stages. This has the advantage that the input information to the car management unit 222 can be compressed and mounting becomes easy.

【0195】カゴ管理部222がカゴ223へのセル転
送指示を決定するアルゴリズムは例えば次のようなもの
である。
The algorithm by which the car management unit 222 determines the cell transfer instruction to the car 223 is as follows, for example.

【0196】すなわち、出力バッファ内セル数より、出
力バッファ221内のセル数がアンダフローしないかど
うかを判断し、アンダフローする可能性があると判断し
た場合のみアンダフローしないように転送指示を行な
う。アンダフローとは、出力バッファ内セル数がゼロに
なり、本来出力できるはずの入力バッファ220のセル
が有効に出力できない状態をいう。
That is, it is determined from the number of cells in the output buffer whether the number of cells in the output buffer 221 does not underflow, and a transfer instruction is issued so as not to underflow only when it is determined that there is a possibility of underflow. . Underflow refers to a state in which the number of cells in the output buffer becomes zero and the cells of the input buffer 220, which should have been able to output, cannot be output effectively.

【0197】入力バッファ220は、カゴ223へのセ
ル転送指示に応じて、同一の時刻までに出力すべきセル
の集合224をカゴ223に加える。例えばVC毎に設
定する値Nx で重み付けされたVC間公平キューイング
を行なう場合において、同一の時刻までに出力すべきセ
ルの集合とは、各入力バッファ内のカゴ223に入って
いないセルでVC毎に最も古いNx 個のセルを集めたも
のである。
The input buffer 220 adds to the basket 223 a set 224 of cells to be output by the same time in response to a cell transfer instruction to the basket 223. For example, when performing fair queuing between VCs weighted by a value Nx set for each VC, the set of cells to be output by the same time is a cell that is not in the basket 223 in each input buffer. It is the collection of the oldest Nx cells for each.

【0198】転送指示は全ての入力バッファに同報され
るため、カゴ223には複数の入力バッファを通してV
C間で公平にセルが入る。カゴ223のセルをカゴの外
のセルよりも優先して出力バッファ221に転送するこ
とにより、複数の入力バッファ220を通してVC間で
公平にセルを出力バッファ221へ転送することが可能
である。出力バッファ221が、カゴ223から入力し
たセルをどんな場合でもある時間内に出力できる構成に
なっていれば、VC間で公平にカゴ223へ転送された
セルはその時間の遅延揺らぎを持って、出力ポートから
出力される。
Since the transfer instruction is broadcast to all the input buffers, the basket 223 has V input through a plurality of input buffers.
Cells are evenly entered between Cs. By transferring the cells of the basket 223 to the output buffer 221 with priority over the cells outside the basket, it is possible to transfer the cells to the output buffer 221 fairly among the VCs through the plurality of input buffers 220. If the output buffer 221 is configured to be able to output the cell input from the basket 223 within a certain time in any case, the cells evenly transferred to the basket 223 between the VCs have a delay fluctuation of that time, It is output from the output port.

【0199】図7は、例として、入力ポート#1、#
2、#Nの入力バッファ220にそれぞれ2本、1本、
3本のVCがキューイングされている状態を示してい
る。全てのVCの重みが同じ時、VC間公平キューイン
グを行なえば、各入力バッファ220からの出力は2対
1対3の割合になる必要がある。
FIG. 7 shows, by way of example, input ports # 1 and #.
2, 2 in the #N input buffer 220, 1 in the #N input buffer 220,
It shows a state in which three VCs are queued. When the weights of all VCs are the same, if fair queuing between VCs is performed, the output from each input buffer 220 needs to be in a ratio of 2: 1: 1.

【0200】図7のセル多重化装置は、カゴ管理部22
2から全ての入力バッファ220へ同報されるカゴ22
3へのセル転送指示によって、カゴ内のセル数は各入力
バッファで2対1対3の割合になり、結果的に出力バッ
ファ221からの出力も2対1対3の割合になる。
The cell multiplexing device of FIG.
Basket 22 broadcast from 2 to all input buffers 220
By the cell transfer instruction to 3, the number of cells in the car becomes 2: 1: 1 in each input buffer, and as a result, the output from the output buffer 221 also becomes 2: 1: 1.

【0201】カゴ223へのセルの入力方法には2通り
の方法がある。ここでは、転送を指示されたとき、各V
C毎に最も古いNx 個(VC毎に設定する値)のセルを
カゴに入れる場合を例にとって説明する。
There are two methods for inputting cells to the basket 223. Here, when transfer is instructed, each V
An example will be described in which the oldest Nx cells (values set for each VC) of each C are put in the basket.

【0202】ひとつの方法は、入力バッファ220に入
力したセルがカゴ223に入れる条件を満たしていても
最初はカゴの中へ入れない方法である。セルはカゴ管理
部222からセル転送が指示された場合にのみカゴ22
3に転送される。これにより、カゴ内セル数はカゴ管理
部222がセル転送を指示した場合以外は減少する。
One method is such that even if the cell input to the input buffer 220 satisfies the condition of being put in the basket 223, it is not put in the basket at first. The cell 22 is used only when the cell management unit 222 instructs the cell transfer.
3 is transferred. As a result, the number of cells in the car is reduced except when the car management unit 222 instructs the cell transfer.

【0203】別の方法は、入力バッファ220に入力し
たセルがカゴ223に入れる条件を満たしている時には
最初からカゴ223の中へ入れてしまう方法がある。つ
まり転送指示の時点でNx 個のセルをカゴ223に転送
したVCは次の転送指示があるまでセルをカゴ223に
入れることができないが、転送指示の時点でセルをカゴ
223に全く転送しなかったVC、または転送セル数が
Nx 個に満たないVCは、Nx 個になるまで入力セルを
転送指示がなくてもカゴ223に入れることができる。
これにより、カゴ内セル数は転送指示と転送指示の間に
おいても増加することがあるが、ほぼ全てのアクティブ
なVCがNx 個のセルを転送した段階で減少する。な
お、本実施形態はどちらの方法においても有効に作用す
る。
As another method, when the cell input to the input buffer 220 satisfies the condition to be put in the basket 223, the cell is put in the basket 223 from the beginning. That is, the VC that has transferred Nx cells to the basket 223 at the time of the transfer instruction cannot insert the cell into the basket 223 until the next transfer instruction is issued, but does not transfer the cells to the basket 223 at the time of the transfer instruction. In addition, a VC whose number of transfer cells is less than Nx can put the input cells in the basket 223 until the number of input cells reaches Nx, even if there is no transfer instruction.
As a result, the number of cells in the basket may increase between transfer instructions, but it decreases when almost all active VCs transfer Nx cells. It should be noted that this embodiment works effectively by either method.

【0204】第5の実施形態のセル多重化装置の輻輳状
態の判断は、VC毎に、トラヒックにより変動する情報
を予め定められた方法により監視すれば良い。そして、
セル多重化装置は、この輻輳判断を元にVC毎に端末に
トラヒック制御情報を通知すればよい。
The determination of the congestion state of the cell multiplexer of the fifth embodiment may be carried out by monitoring the information, which varies depending on the traffic, for each VC by a predetermined method. And
The cell multiplexer may notify the terminal of the traffic control information for each VC based on the congestion judgment.

【0205】監視すべき変動する情報は、例えば蓄積セ
ル数、一定時間あたりの入力セル数とその目標値との関
係、一定個数のセルが入力する時間とその目標値との関
係である。蓄積セル数が多いVC、一定時間あたりの入
力セル数が目標値からかけ離れて多いVC、一定個数の
セルが入力する時間がその目標値からかけ離れて短いV
Cを輻輳しているVCと判断する。
The variable information to be monitored is, for example, the relationship between the number of accumulated cells, the number of input cells per fixed time and its target value, and the relationship between the time when a fixed number of cells are input and its target value. VC with a large number of accumulated cells, VC with a large number of input cells per fixed time far from the target value, and V with a fixed number of cells input far from the target value and short V
Judge C as a congested VC.

【0206】輻輳しているVCのセルのヘッダにあるE
FCIをマークすることや、通過するRMセルを書き換
えることにより、端末にトラヒック制御情報を通知する
ことができる。
E in the header of the cell of the congested VC
It is possible to notify the terminal of the traffic control information by marking the FCI or rewriting the RM cell passing through.

【0207】2.4 第4、第5の実施形態に係るセル
多重化装置の利点 以上説明したように、上記第4〜第5の実施形態に係る
出力許可済セル集合(カゴ)の概念を用いたセル多重化
装置によれば、出力許可済セル集合に入れるセルを制御
することにより各入力バッファの出力スループットを調
整するため、VC間公平キューイングを行なうことがで
き、ABRサービスにおける耐故障性や、UBRサービ
スにおける公平性を実現することが可能である。
2.4 Advantages of Cell Multiplexing Apparatus According to Fourth and Fifth Embodiments As described above, the concept of the output-permitted cell set (basket) according to the fourth to fifth embodiments is explained. According to the cell multiplexing device used, since the output throughput of each input buffer is adjusted by controlling the cells that are put into the output-permitted cell set, fair queuing between VCs can be performed, and fault tolerance in ABR service is achieved. It is also possible to achieve fairness in UBR services.

【0208】2.5 第6の実施形態(セルグループF
IFOを用いたセルバッファ装置) 次に、本発明に係るVC間公平キューイングを行なうセ
ルバッファ装置の実施形態について説明する。
2.5 Sixth Embodiment (Cell Group F
Cell Buffer Device Using IFO) Next, an embodiment of a cell buffer device for performing inter-VC fair queuing according to the present invention will be described.

【0209】図8に、第6の実施形態に係るセルグルー
プFIFOを用いたセルバッファ装置の構成例を示す。
FIG. 8 shows a configuration example of a cell buffer device using a cell group FIFO according to the sixth embodiment.

【0210】図8は、入力リンクより入力したセルのコ
ネクション識別情報をバッファポインタ管理部230に
通知し、バッファポインタ管理部230よりセルの書き
込み位置を示す書き込みポインタを得てセルを一時的に
セルバッファ231に蓄積し、バッファポインタ管理部
230からの、読みだしセルを示す読みだしポインタに
基づいてセルをセルバッファ231から読みだし出力リ
ンクへ出力するセルバッファ装置である。
In FIG. 8, the connection identification information of the cell input from the input link is notified to the buffer pointer management unit 230, the write pointer indicating the write position of the cell is obtained from the buffer pointer management unit 230, and the cell is temporarily changed to the cell. It is a cell buffer device that stores the cells in the buffer 231 and reads cells from the cell buffer 231 based on the read pointer indicating the read cells from the buffer pointer management unit 230 and outputs the cells to the output link.

【0211】バッファポインタ管理部230は、蓄積し
ているセルのセルバッファ231上の位置を示すバッフ
ァポインタを管理する。
The buffer pointer management unit 230 manages a buffer pointer indicating the position of the accumulated cell on the cell buffer 231.

【0212】バッファポインタ管理部230は、バッフ
ァポインタの集合である複数のセルグループをFIFO
管理するセルグループFIFO232aと、出力待ちセ
ルグループFIFO232bと、セルグループ選択部2
33と、空きバッファポインタ管理部234からなる。
The buffer pointer management unit 230 uses a FIFO to store a plurality of cell groups, which are a set of buffer pointers.
A cell group FIFO 232a to be managed, an output waiting cell group FIFO 232b, and a cell group selection unit 2
33 and an empty buffer pointer management unit 234.

【0213】バッファポインタ管理部230は、セル入
力時には、空きバッファポインタ管理部234より空き
のバッファポインタを得て前記書き込みポインタとする
とともに、セルグループ選択部233がコネクション識
別情報より書き込みポインタをセルグループFIFO2
32aの先頭のセルグループより順にVC毎に予め定め
られた重みに従って決定される数だけ入るようにセルグ
ループ指示を行ない、セルグループFIFO232aは
セルグループ指示に従って書き込みポインタを指示され
たセルグループに入力する。
At the time of cell input, the buffer pointer management unit 230 obtains an empty buffer pointer from the empty buffer pointer management unit 234 and sets it as the write pointer, and the cell group selection unit 233 sets the write pointer to the cell group based on the connection identification information. FIFO2
The cell group is instructed so that a number determined in accordance with a predetermined weight for each VC is sequentially entered from the head cell group of 32a, and the cell group FIFO 232a inputs the write pointer to the instructed cell group in accordance with the cell group instruction. .

【0214】セル出力時には、セルグループFIFO2
32aの先頭よりセルグループを出力し、さらにそのセ
ルグループよりバッファポインタを出力して前記読みだ
しポインタとするとともに、その読みだしポインタを空
きバッファポインタ管理部234に戻す。
When outputting cells, the cell group FIFO2
A cell group is output from the head of 32a, a buffer pointer is further output from the cell group to be the read pointer, and the read pointer is returned to the empty buffer pointer management unit 234.

【0215】図8では、セルグループFIFO232a
から出力され、出力を待っているセルグループが複数に
なる可能性がある場合の構成を示している。これらのセ
ルグループFIFO232aから出力されたセルグルー
プは出力待ちセルグループFIFO232bに入力され
る。
In FIG. 8, the cell group FIFO 232a is used.
It shows the configuration in the case where there is a possibility that there are multiple cell groups that are output from, and are waiting for output. The cell group output from these cell group FIFO 232a is input to the output wait cell group FIFO 232b.

【0216】出力待ちセルグループFIFO232bの
セルグループは、セルバッファ231の外部の何らかの
管理部により出力を許可されたセルグループである。例
えば、図6のカゴ231に相当する。
The cell group of the output waiting cell group FIFO 232b is a cell group whose output is permitted by some management unit outside the cell buffer 231. For example, it corresponds to the basket 231 in FIG.

【0217】読みだしポインタは、出力待ちセルグルー
プFIFO232bの先頭のセルグループから出力され
たバッファポインタである。
The read pointer is a buffer pointer output from the head cell group of the output wait cell group FIFO 232b.

【0218】例えば全てのVCの重みを同じとする。セ
ルグループFIFO232aの先頭のセルグループのセ
ルは、各VCのキューを考えるとキューの先頭(ただし
出力待ちセルグループFIFO232b内のセルは除
く)のセルである。セルグループFIFO232aの先
頭から2番目のセルグループのセルは、各VCのキュー
の2番目のセルである。3番目以降のセルグループのセ
ルも同様である。これらのセルを出力する場合はセルグ
ループFIFO232aの先頭のセルグループから順に
出力するためVC間で公平に出力することになる。
For example, all VCs have the same weight. The cell of the head cell group of the cell group FIFO 232a is the head cell of the queue (excluding the cells in the output waiting cell group FIFO 232b) considering the queue of each VC. The cell of the second cell group from the head of the cell group FIFO 232a is the second cell of the queue of each VC. The same applies to cells in the third and subsequent cell groups. When outputting these cells, the cells are output in order from the first cell group of the cell group FIFO 232a, so that the VCs are output fairly.

【0219】今まで全く到着していなかったVCのセル
が新たにこのバッファ装置に到着した場合は、セルグル
ープFIFO232aの先頭のセルグループに入力さ
れ、他のVCのキューの2番目以降のセルよりも優先し
て出力される。
When a VC cell that has not arrived at all until now arrives at this buffer device, it is input to the head cell group of the cell group FIFO 232a, and the cells from the second and subsequent cells of the queue of another VC are transmitted. Is also output with priority.

【0220】この様に、第6の実施形態に係るセルバッ
ファ装置によれば、VC間で公平にキューイングを行な
うことが可能でありながらセルの入力、出力時に図50
に示した従来例のように検索動作が不要であるという利
点がある。
As described above, according to the cell buffer device of the sixth embodiment, it is possible to perform fair queuing among VCs, but FIG.
There is an advantage that the search operation is unnecessary unlike the conventional example shown in FIG.

【0221】第6の実施形態に係るセルバッファ装置の
セルグループFIFO232aの実現方法は、例えばポ
インタチェーンによる方式やリングバッファによる方式
が考えられる。
As a method of realizing the cell group FIFO 232a of the cell buffer device according to the sixth embodiment, for example, a method using a pointer chain or a method using a ring buffer can be considered.

【0222】2.6 第7の実施形態(セルグループF
IFOを用いたセルバッファ装置の他の実施形態) 次に、第7の実施形態について説明する。
2.6 Seventh Embodiment (Cell Group F
Other Embodiments of Cell Buffer Device Using IFO) Next, a seventh embodiment will be described.

【0223】図9に、第7の実施形態に係るセルグルー
プFIFOを用いたセルバッファ装置の他の構成例を示
す。
FIG. 9 shows another example of the configuration of the cell buffer device using the cell group FIFO according to the seventh embodiment.

【0224】図9は、入力リンクより入力したセルのコ
ネクション識別情報をバッファポインタ管理部240に
通知し、バッファポインタ管理部240よりセルの書き
込み位置を示す書き込みボインタを得てセルを一時的に
セルバッファ241に蓄積し、バッファポインタ管理部
240からの、読みだしセルを示す読みだしポインタに
基づいてセルをセルバッファ241から読みだし出力リ
ンクへ出力するセルバッファ装置である。
In FIG. 9, the connection identification information of the cell input from the input link is notified to the buffer pointer management unit 240, and the buffer pointer management unit 240 obtains the write pointer indicating the write position of the cell to temporarily set the cell as the cell. It is a cell buffer device that stores the cells in the buffer 241 and reads cells from the cell buffer 241 based on the read pointer indicating the read cells from the buffer pointer management unit 240 and outputs the cells to the output link.

【0225】バッファポインタ管理部240は、蓄積し
ているセルのセルバッファ241上の位置を示すバッフ
ァポインタを管理する。
The buffer pointer management unit 240 manages the buffer pointer indicating the position of the accumulated cell on the cell buffer 241.

【0226】バッファポインタ管理部240は、バッフ
ァポインタの集合であるセルグループをFIFO管理す
るセルグループFIFO242と、セルグループ選択部
243と、空きバッファポインタ管理部244からな
る。
The buffer pointer management unit 240 is composed of a cell group FIFO 242 that performs FIFO management of a cell group that is a set of buffer pointers, a cell group selection unit 243, and an empty buffer pointer management unit 244.

【0227】バッファポインタ管理部240は、セル入
力時には、空きバッファポインタ管理部244より空き
のバッファポインタを得て前記書き込みポインタとする
とともに、セルグループ選択部243がコネクション識
別情報より書き込みポインタをセルグループFIFO2
42の先頭のセルグループより順にVC毎に予め定めら
れた重みに従って決定される数だけ入るようにセルグル
ープ指示を行ない、セルグループFIFO242はセル
グループ指示に従って書き込みボインタを指示されたセ
ルグループに入力する。
At the time of cell input, the buffer pointer management unit 240 obtains an empty buffer pointer from the empty buffer pointer management unit 244 and sets it as the write pointer, and the cell group selection unit 243 uses the connection identification information as the write pointer. FIFO2
The cell group is instructed so that a number determined in accordance with a predetermined weight for each VC is sequentially entered from the head cell group of 42, and the cell group FIFO 242 inputs the write pointer to the instructed cell group in accordance with the cell group instruction. .

【0228】セル出力時には、セルグループFIFO2
42の先頭のセルグループよりバッファポインタを出力
して前記読みだしポインタとするとともに、その読みだ
しポインタを空きバッファポインタ管理部244に戻
す。
At the time of cell output, the cell group FIFO2
A buffer pointer is output from the head cell group 42 to be the read pointer, and the read pointer is returned to the empty buffer pointer management unit 244.

【0229】図9では、セルグループFIFO242内
で出力を待っているセルグループを出力待ちセルグルー
プFIFO242bとして記してある。
In FIG. 9, a cell group waiting for output in the cell group FIFO 242 is shown as an output waiting cell group FIFO 242b.

【0230】出力待ちセルグループFIFO242bの
セルグループは、セルバッファ241の外部の何らかの
管理部により出力を許可されたセルグループである。例
えば、図6のカゴに相当する。
The cell group of the output waiting cell group FIFO 242b is a cell group whose output is permitted by some management unit outside the cell buffer 241. For example, it corresponds to the basket of FIG.

【0231】読みだしポインタは、出力待ちセルグルー
プFIFO242bの先頭のセルグループから出力され
たバッファポインタである。
The read pointer is a buffer pointer output from the head cell group of the output waiting cell group FIFO 242b.

【0232】例えば全てのVCの重みを同じとする。セ
ルグループFIFO242の先頭のセルグループ(すな
わち、出力待ちセルグループFIFO242b内のセル
グループ)のセルは、各VCのキューを考えるとキュー
の先頭のセルである。セルグループFIFO242の先
頭から2番目のセルグループのセルは、各VCのキュー
の2番目のセルである。3番目以降のセルグループのセ
ルも同様である。これらのセルを出力する場合はセルグ
ループFIFO242の先頭のセルグループから順に出
力するためVC間で公平に出力することになる。
For example, all VCs have the same weight. The cell of the head cell group of the cell group FIFO 242 (that is, the cell group in the output waiting cell group FIFO 242b) is the head cell of the queue when considering the queue of each VC. The cell of the second cell group from the head of the cell group FIFO 242 is the second cell of the queue of each VC. The same applies to cells in the third and subsequent cell groups. When outputting these cells, the cells are output in order from the head cell group of the cell group FIFO 242, so that the VCs are output fairly.

【0233】今まで全く到着していなかったVCのセル
が新たにこのバッファ装置に到着した場合は、セルグル
ープFIFO242の先頭のセルグループに入力され、
他のVCのキューの2番目以降のセルよりも優先して出
力される。
When a VC cell that has not arrived at all until now arrives at this buffer device, it is input to the head cell group of the cell group FIFO 242,
It is output with priority over the second and subsequent cells in the queues of other VCs.

【0234】この様に、第7の実施形態に係るセルバッ
ファ装置によれば、VC間で公平にキューイングを行な
うことが可能でありながらセルの入力、出力時に図51
に示した従来例のように検索動作が不要であるという利
点がある。
As described above, according to the cell buffer device of the seventh embodiment, it is possible to perform fair queuing among VCs, while FIG.
There is an advantage that the search operation is unnecessary unlike the conventional example shown in FIG.

【0235】第7の実施形態に係るセルバッファ装置の
セルグループFIFO242の実現方法は、例えばポイ
ンタチェーンによる方式やリングバッファによる方式が
考えられる。
As a method of realizing the cell group FIFO 242 of the cell buffer device according to the seventh embodiment, for example, a method using a pointer chain or a method using a ring buffer can be considered.

【0236】2.7 第6の実施形態に係るセルバッフ
ァ装置で用いられるデータ構造 次に、第6の実施形態に係るセルバッファ装置(図8参
照)で用いられるデータの構造について説明する。
2.7 Data Structure Used in Cell Buffer Device According to Sixth Embodiment Next, the data structure used in the cell buffer device according to the sixth embodiment (see FIG. 8) will be described.

【0237】図10、図11に、図8で説明したバッフ
ァ装置をポインタチェーン方式で実現した場合のデータ
構造の一例を示す。
FIG. 10 and FIG. 11 show an example of the data structure when the buffer device described in FIG. 8 is realized by the pointer chain method.

【0238】大きく分けて、図10に示すように、VC
テーブル250、セルグループFIFO232a、出力
待ちセルグループFIFO232b、空きバッファポイ
ンタチェーン251、また、図11に示すように、空き
セルグループチェーン252で構成される。
Broadly divided, as shown in FIG.
The table 250, the cell group FIFO 232a, the output waiting cell group FIFO 232b, the empty buffer pointer chain 251, and the empty cell group chain 252 as shown in FIG.

【0239】セルグループFIFO232aには、それ
を管理するセルグループFIFO管理データ253、出
力待ちセルグループFIFO232bには、それを管理
する出力待ちセルグループFIFO管理データ254が
ある。
The cell group FIFO 232a has cell group FIFO management data 253 for managing it, and the output waiting cell group FIFO 232b has output waiting cell group FIFO management data 254 for managing it.

【0240】セルグループと空きバッファポインタチェ
ーン251は、バッファポインタのチェーンであり、セ
ルグループFIFO232aと空きセルグループチェー
ン252はセルグループ管理データ255のチェーンで
ある。
The cell group and empty buffer pointer chain 251 is a chain of buffer pointers, and the cell group FIFO 232a and empty cell group chain 252 are chains of cell group management data 255.

【0241】出力待ちセルグループFIFO232b
は、出力待ちセルグループFIFO管理データ254に
セルグループを指すポインタのリスト(Ptr1、Ptr
2、Ptr3、…)がある。
Output waiting cell group FIFO 232b
Is a list of pointers (Ptr1, Ptr) pointing to cell groups in the output waiting cell group FIFO management data 254.
2, Ptr3, ...).

【0242】セルグループFIFO232a、出力待ち
セルグループFIFO232bはリングバッファ方式で
もかまわない。
The cell group FIFO 232a and the output waiting cell group FIFO 232b may be ring buffer type.

【0243】セルが入力した場合、空きバッファポイン
タチェーン251から取り出した書き込みポインタをど
のセルグループに入力するかを決定しなければならな
い。そのため、まずVCテーブル250の該当する領域
を読み出す。VCテーブル250のNx はそのVCの重
み、Nc は作業変数、Qlen はそのVCの蓄積セル数、
PtrはそのVCのセルが蓄積されているセルグループの
末尾へのポインタである。
When a cell is input, it is necessary to determine to which cell group the write pointer extracted from the free buffer pointer chain 251 is input. Therefore, first, the corresponding area of the VC table 250 is read. In the VC table 250, Nx is a weight of the VC, Nc is a work variable, Qlen is the number of accumulated cells of the VC,
Ptr is a pointer to the end of the cell group in which the cells of that VC are accumulated.

【0244】はじめに、Qlen をチェックして、そのV
Cのセルが現在バッファ装置に蓄積されているかどうか
を調べる。もし、Qlen がゼロの場合は、セルグループ
FIFO232aの先頭のセルグループに入れる。Qle
n が1以上の場合でも、Ptrが出力待ちセルグループF
IFO232b内のセルグループを指している場合は、
セルグループFIFO232aの先頭のセルグループに
入れる。
First, Qlen is checked and its V
Check if the C cell is currently stored in the buffer device. If Qlen is zero, it is placed in the first cell group of the cell group FIFO 232a. Qle
Even if n is 1 or more, Ptr is the output waiting cell group F
When referring to the cell group in the IFO 232b,
It is placed in the first cell group of the cell group FIFO 232a.

【0245】その他の場合はNc に1.0を加えNx と
比較し、Nx の方が大きければPtrで指しているセルグ
ループに入れ、そうでない場合は、Ptrで指しているセ
ルグループの次のセルグループに入れる。
In other cases, 1.0 is added to Nc and compared with Nx, and if Nx is larger, it is put in the cell group pointed to by Ptr. Otherwise, it is placed next to the cell group pointed to by Ptr. Put in cell group.

【0246】ここで、セルが入力した時のNc の更新手
順について説明する。前述のように、そのVCに関して
セルグループFIFO232aの先頭のセルグループに
初めてバッファポインタを入力する場合は、Nc :=
1.0とする。その他の場合は、Nc をNc :=Nc +
1.0と更新する。その結果、もしNx Nc ならば、
そのセルグループにバッファポインタを入れる。逆に、
もしNx <Nc ならば、セルグループFIFO232a
の次のセルグループにバッファポインタを入れると同時
に、Nc :=Nc −Nx と書き変える(つまり、0<N
c Nx である)。
Now, the procedure for updating Nc when a cell is input will be described. As described above, when the buffer pointer is input to the head cell group of the cell group FIFO 232a for the VC for the first time, Nc: =
1.0. In other cases, Nc is Nc: = Nc +
Update to 1.0. As a result, if Nx > Nc,
Put the buffer pointer in the cell group. vice versa,
If Nx <Nc, cell group FIFO 232a
At the same time when the buffer pointer is put in the cell group next to, Nc: = Nc-Nx is rewritten (that is, 0 <N
c < Nx).

【0247】もし、セルグループFIFO232aの最
後のセルグループの次のセルグループにバッファポイン
タを入れる必要があれば、空きセルグループチェーン2
52の先頭よりセルグループ管理データ255をとりだ
し、セルグループFIFO232aの末尾に入れ、その
セルグループにバッファポインタを入れれば良い。出力
待ちセルグループFIFO管理データ254は、セルグ
ループを指すポインタPtr1、Ptr2、Ptr3、…がシ
フトレジスタになっている。Ptr1の示すセルグループ
がFIFOの先頭であり、このセルグループから出力し
たバッファボインタが読みだしポインタとなる。読みだ
しポインタは空きバッファポインタチェーン251の末
尾に入力する。Ptr1の示すセルグループのバッファポ
インタが空になったら、そのセルグループは空きセルグ
ループチェーン252の末尾に入力する。そしてn
の全てのnについてポインタPtr(n)をPtr(n−
1)にシフトし、新しいPtr1の指すセルグループから
バッファポインタを出力する。
If it is necessary to insert a buffer pointer into the cell group next to the last cell group of the cell group FIFO 232a, the empty cell group chain 2
It suffices to take out the cell group management data 255 from the beginning of 52, put it at the end of the cell group FIFO 232a, and put the buffer pointer in that cell group. In the output wait cell group FIFO management data 254, pointers Ptr1, Ptr2, Ptr3, ... Pointing to the cell groups are shift registers. The cell group indicated by Ptr1 is the head of the FIFO, and the buffer interface output from this cell group serves as a read pointer. The read pointer is input to the end of the empty buffer pointer chain 251. When the buffer pointer of the cell group indicated by Ptr1 becomes empty, the cell group is input to the end of the empty cell group chain 252. And n > 2
Pointers Ptr (n) for all n of
Shift to 1) and output the buffer pointer from the cell group pointed to by the new Ptr1.

【0248】前述したように、セルの入力時にVCテー
ブル250のPtrが出力待ちのセルグループを指してい
るかどうか判定しなければならない。したがって出力待
ちセルグループFIFO管理データ254は、検索が容
易に可能な構成であることが必要である。
As described above, it is necessary to judge whether Ptr of the VC table 250 points to a cell group waiting for output when a cell is input. Therefore, the output-waiting cell group FIFO management data 254 needs to have a configuration that allows easy retrieval.

【0249】セルグループFIFO232aから出力待
ちセルグループFIFO232bに新たにセルグループ
を転送する場合には、出力待ちセルグループFIFO管
理データ254のセルグループ数をインクリメントして
(mとする)、Ptr(m)がセルグループFIFO23
2aから出力したセルグループを指すようにする。
When a new cell group is transferred from the cell group FIFO 232a to the output waiting cell group FIFO 232b, the number of cell groups in the output waiting cell group FIFO management data 254 is incremented (set to m), and Ptr (m) Cell group FIFO23
Point to the cell group output from 2a.

【0250】なお、第6の実施形態に係るセルバッファ
装置は、図6や図7に示すようなカゴの概念を用いた入
力バッファに容易に適用することができる。その場合、
出力待ちセルグループFIFO232bがカゴに相当す
る。また、図5の出力バッファにも適用することができ
る。
The cell buffer device according to the sixth embodiment can be easily applied to an input buffer using the concept of a basket as shown in FIGS. 6 and 7. In that case,
The output waiting cell group FIFO 232b corresponds to a basket. It can also be applied to the output buffer of FIG.

【0251】2.8 第7の実施形態に係るセルバッフ
ァ装置で用いれるデータ構造 次に、第7の実施形態に係るセルバッファ装置(図9参
照)で用いられるデータの構造について説明する。
2.8 Data Structure Used in Cell Buffer Device According to Seventh Embodiment Next, a data structure used in the cell buffer device according to the seventh embodiment (see FIG. 9) will be described.

【0252】図12、図13に、図9で説明したバッフ
ァ装置をポインタチェーン方式で実現した場合のデータ
構造の一例を示す。
12 and 13 show an example of the data structure when the buffer device described in FIG. 9 is realized by the pointer chain method.

【0253】大きく分けて、図12に示すように、VC
テーブル260、セルグループFIFO242、空きバ
ッファポインタチェーン261、また、図13に示すよ
うに、空きセルグループチェーン262で構成される。
As shown in FIG. 12, VC is roughly divided into
The table 260, the cell group FIFO 242, the empty buffer pointer chain 261, and the empty cell group chain 262 as shown in FIG.

【0254】セルグループFIFO242の内部には、
出力待ちセルグループFIFO242bが存在し、セル
グループFIFO242を管理するセルグループFIF
O管理データ263、出力待ちセルグループFIFO2
42bを管理する出力待ちセルグループFIFO管理デ
ータ264がある。
Inside the cell group FIFO 242,
A cell group FIFO that has an output waiting cell group FIFO 242b and manages the cell group FIFO 242.
O management data 263, output waiting cell group FIFO2
There is output waiting cell group FIFO management data 264 for managing 42b.

【0255】セルグループと空きバッファポインタチェ
ーン261は、バッファポインタのチェーンであり、セ
ルグループFIFO242と空きセルグループチェーン
262はセルグループ管理データ265のチェーンであ
る。
The cell group and empty buffer pointer chain 261 is a buffer pointer chain, and the cell group FIFO 242 and empty cell group chain 262 are cell group management data 265 chains.

【0256】出力待ちセルグループFIFO242b
は、セルグループFIFO242の先頭のいくつかのセ
ルグループである。つまり図12において、セルグルー
プFIFO管理データ263の先頭ポインタが指すセル
グループから出力待ちセルグループFIFO管理データ
264の末尾ポインタが指すセルグループまでが出力待
ちセルグループFIFO242である。
Output wait cell group FIFO 242b
Are some cell groups at the head of the cell group FIFO 242. That is, in FIG. 12, the output wait cell group FIFO 242 is from the cell group pointed by the head pointer of the cell group FIFO management data 263 to the cell group pointed by the end pointer of the output wait cell group FIFO management data 264.

【0257】セルグループFIFO242、出力待ちセ
ルグループFIFO242bはリングバッファ方式でも
かまわない。
The cell group FIFO 242 and the output waiting cell group FIFO 242b may be ring buffer type.

【0258】セルが入力した場合、空きバッファポイン
タチェーン261から取り出した書き込みポインタをど
のセルグループに入力するかを決定しなければならな
い。そのため、まずVCテーブル260の該当する領域
を読み出す。VCテーブル260のNx はそのVCの重
み、Nc は作業変数、Qlen はそのVCの蓄積セル数、
PtrはそのVCのセルが蓄積されているセルグループの
末尾へのポインタである。
When a cell is input, it is necessary to determine to which cell group the write pointer fetched from the free buffer pointer chain 261 is input. Therefore, first, the corresponding area of the VC table 260 is read. In the VC table 260, Nx is the weight of the VC, Nc is the work variable, Qlen is the number of accumulated cells of the VC,
Ptr is a pointer to the end of the cell group in which the cells of that VC are accumulated.

【0259】はじめに、Qlen をチェックして、そのV
Cのセルが現在バッファ装置に蓄積されているかどうか
を調べる。もし、Qlen がゼロの場合は、セルグループ
FIFO242の先頭のセルグループに入れる。
First, Qlen is checked and its V
Check if the C cell is currently stored in the buffer device. If Qlen is zero, it is put in the first cell group of the cell group FIFO 242.

【0260】その他の場合はNc に1.0を加えNx と
比較し、Nx の方が大きければPtrで指しているセルグ
ループに入れ、そうでない場合は、Ptrで指しているセ
ルグループの次のセルグループに入れる。
In other cases, 1.0 is added to Nc and compared with Nx, and if Nx is larger, it is put in the cell group pointed to by Ptr. Put in cell group.

【0261】ここで、セルが入力した時のNc の更新手
順について説明する。前述のように、そのVCに関して
セルグループFIFO242の先頭のセルグループに初
めてバッファポインタを入力する場合は、Nc :=1.
0とする。その他の場合は、Nc をNc :=Nc +1.
0と更新する。その結果、もしNx Nc ならば、その
セルグループにバッファポインタを入れる。逆に、もし
Nx <Nc ならば、セルグループFIFO242の次の
セルグループにバッファポインタを入れると同時に、N
c :=Nc −Nx と書き変える(つまり、0<Nc
x である)。
Here, the procedure for updating Nc when a cell is input will be described. As described above, when the buffer pointer is input to the head cell group of the cell group FIFO 242 for the VC for the first time, Nc: = 1.
Set to 0. Otherwise, replace Nc with Nc: = Nc + 1.
Update to 0. As a result, if Nx > Nc, put a buffer pointer in the cell group. On the contrary, if Nx <Nc, the buffer pointer is put in the next cell group of the cell group FIFO 242, and at the same time N
Rewrite as c: = Nc-Nx (that is, 0 <Nc < N
x).

【0262】セルが入力した時、セルグループがセルグ
ループFIFO242になかった場合、もし、セルグル
ープFIFO242の最後のセルグループの次のセルグ
ループにバッファポインタを入れる必要があれば、空き
セルグループチェーン262の先頭よりセルグループ管
理データ265をとりだし、セルグループFIFO24
2の末尾に入れ、そのセルグループにバッファポインタ
を入れれば良い。
If the cell group is not in the cell group FIFO 242 when the cell is input, if there is a need to put a buffer pointer in the cell group next to the last cell group in the cell group FIFO 242, the empty cell group chain 262 Cell group management data 265 from the beginning of the
It is sufficient to put it at the end of 2 and put a buffer pointer in the cell group.

【0263】出力待ちセルグループFIFO管理データ
264は、出力待ちセルグループFIFO242bの末
尾を示すポインタを持っている。先頭はセルグループF
IFO管理データ263の先頭のセルグループと同じで
ある。
The output waiting cell group FIFO management data 264 has a pointer indicating the end of the output waiting cell group FIFO 242b. Cell group F at the beginning
It is the same as the first cell group of the IFO management data 263.

【0264】出力待ちセルグループFIFO242bの
先頭のセルグループ(セルグループFIFOの先頭と同
じセルグループ)からバッファポインタを出力し、この
バッファポインタが読みだしポインタとなる。読みだし
ポインタは空きバッファポインタチェーン261の末尾
に入力する。
The buffer pointer is output from the head cell group of the output waiting cell group FIFO 242b (the same cell group as the head of the cell group FIFO), and this buffer pointer serves as a read pointer. The read pointer is input to the end of the empty buffer pointer chain 261.

【0265】セルグループFIFO242の先頭のセル
グループのバッファポインタが空になったら、セルグル
ープFIFO242からセルグループ管理データ265
を出力し、空きセルグループチェーン262の末尾に入
力する。
When the buffer pointer of the head cell group of the cell group FIFO 242 becomes empty, the cell group management data 265 is read from the cell group FIFO 242.
Is output and is input to the end of the empty cell group chain 262.

【0266】出力待ちセルグループFIFO242bに
新たにセルグループを転送する場合には、出力待ちセル
グループFIFO管理データ264の末尾を示すポイン
タをセルグループFIFO242上の次のセルグループ
を指すように変更する。
When a cell group is newly transferred to the output waiting cell group FIFO 242b, the pointer indicating the end of the output waiting cell group FIFO management data 264 is changed to point to the next cell group on the cell group FIFO 242.

【0267】なお、第7の実施形態に係るセルバッファ
装置は、図6や図7に示すようなカゴの概念を用いた入
力バッファに容易に適用することができる。その場合、
出力待ちセルグループFIFO242bがカゴに相当す
る。また、図5の出力バッファにも適用することができ
る。
The cell buffer device according to the seventh embodiment can be easily applied to an input buffer using the concept of a basket as shown in FIGS. 6 and 7. In that case,
The output waiting cell group FIFO 242b corresponds to a basket. It can also be applied to the output buffer of FIG.

【0268】2.9 第6、第7の実施形態に係るセル
バッファ装置の利点 以上説明したように、上記第6〜第7の実施形態に係る
VC間公平キューイングを行なうセルバッファ装置によ
れば、VCテーブルを検索する処理が必要なく、したが
って設定可能なVC数の上限に依存することなく容易に
実現することができる。
2.9 Advantages of Cell Buffer Devices According to Sixth and Seventh Embodiments As described above, according to the cell buffer devices for performing inter-VC fair queuing according to the sixth to seventh embodiments. For example, the processing for searching the VC table is not necessary, and therefore, it can be easily realized without depending on the upper limit of the number of VCs that can be set.

【0269】2.10 フロー間重み付き公平キューイ
ング 以上のVC間公平キューイングを行なうセルバッファ装
置は、固定長のパケットであるセルを扱う場合を例にあ
げて説明した。異なる長さのパケットを同時に扱うこと
が可能なパケットバッファ装置にも以下に説明するよう
に入力したパケットをフロー毎に定めた重みに基づいて
公平に出力することができる。
2.10 Inter-Flow Weighted Fair Queuing The cell buffer device for performing inter-VC fair queuing described above has dealt with the case of handling cells that are fixed-length packets. Even in a packet buffer device capable of simultaneously handling packets of different lengths, the input packet can be fairly output based on the weight determined for each flow as described below.

【0270】ここでのフローとは、以下の例に示すよう
にある基準によって識別されるパケットの集合である。
The flow here is a set of packets identified by a certain criterion as shown in the following example.

【0271】・IP網のいわゆるフロー(送信元アドレ
ス、送信元レポート、宛先アドレス、宛先ポートの組で
識別)、もしくはATM網のVCCまたはVPC。
A so-called flow of an IP network (identified by a combination of a source address, a source report, a destination address and a destination port), or a VCC or VPC of an ATM network.

【0272】・IP網のサービスクラス(guaran
teed、controlled−load、best
−effortなど)、もしくはATM網のサービスカ
テゴリ(CBR、VBR、ABRなど)の違い。
IP network service class (guaran)
teded, controlled-load, best
-Effort, etc.) or the service category of the ATM network (CBR, VBR, ABR, etc.).

【0273】・プロトコルの違い(TCP/IP、DE
Cnet、SNA、AppleTalkなど) ・アプリケーションの違い(ftp、telnetな
ど) ・同じバケットバッファ装置を共用する異なった組織
(企業別など) これらを本発明のパケットバッファ装置で異なったフロ
ーとして扱うことによりトラヒックを互いに分離するこ
とができる。
Difference in protocol (TCP / IP, DE
Cnet, SNA, AppleTalk, etc.)-Application differences (ftp, telnet, etc.)-Different organizations that share the same bucket buffer device (such as by company) Traffic is handled by treating these as different flows in the packet buffer device of the present invention. Can be separated from each other.

【0274】はじめに、図14を用いて、一般的なフロ
ー間重み付き公平キューイングを説明する。このパケッ
トバッファ装置の目的は、装置に蓄積しているパケット
をそのフローの重みに従って公平に出力することであ
る。その動作は図14のようなフロー毎のFIFOを考
えるとわかりやすい。図には、フロー1、フロー2、フ
ロー3の3つのフローのキュー(FIFO)があり、そ
れぞれのキューにはいろいろな長さのパケットが蓄積さ
れている。図中のパケットに添えられている数字は、バ
イト数で表したそのパケットの長さである。
First, the general inter-flow weighted fair queuing will be described with reference to FIG. The purpose of this packet buffer device is to fairly output the packets accumulated in the device according to the weight of the flow. The operation is easy to understand by considering a FIFO for each flow as shown in FIG. In the figure, there are queues (FIFOs) of three flows of flow 1, flow 2 and flow 3, and packets of various lengths are accumulated in each queue. The number attached to the packet in the figure is the length of the packet in bytes.

【0275】このパケットバッファ装置にパケットが入
力した場合の処理は、入力したパケットが属するフロー
を判定しフロー毎のキューに蓄積することである。
When a packet is input to this packet buffer device, the processing is to determine the flow to which the input packet belongs and accumulate it in the queue for each flow.

【0276】一方パケットの出力については、フロー間
で公平に行なうことが必要であり、どのキューのパケッ
トをどの順で出力するかが重要である。ひとつの方法を
図14の状況に合わせて説明する。説明を簡単にするた
めここでは各フローの重みを同じとしている。また公平
の単位をここでは仮に500バイトと定めた。
On the other hand, it is necessary to fairly output the packets among the flows, and it is important to output the packets of which queue and in which order. One method will be described according to the situation of FIG. In order to simplify the explanation, the weight of each flow is the same here. The unit of fairness is provisionally set to 500 bytes here.

【0277】まずフロー1のキューの先頭から300バ
イトの長さのパケットと200バイトの長さのパケット
の合わせて500バイト分のパケットを出力する。次に
フロー2のキューの先頭から250バイトの長さのパケ
ットを2個続けて出力する。そしてフロー3のキューの
先頭から500バイトの長さのパケットをひとつ出力す
る。このように出力すると、この時点では各フローバイ
トの長さのパケットをひとつ出力する。このような出力
にすると、この時点では各フローから等しく500バイ
トずつのパケットを出力しているので公平に出力したと
いってよい。続いて再びフロー1から順に各フローから
500バイトずつパケットを出力することを繰り返せば
よい。この様にすればパケットはフロー間で公平に出力
される。
First, a packet of 500 bytes, which is a total of a packet having a length of 300 bytes and a packet having a length of 200 bytes, is output from the head of the queue of the flow 1. Next, two packets having a length of 250 bytes from the head of the queue of flow 2 are continuously output. Then, one packet with a length of 500 bytes from the head of the queue of flow 3 is output. With this output, at this point, one packet with the length of each flow byte is output. With such an output, at this point, the packets of 500 bytes are equally output from each flow, so it can be said that the packets are output fairly. Then, it is sufficient to repeat outputting the packet from each flow in order from the flow 1 again by 500 bytes. In this way, packets are output fairly among the flows.

【0278】以上の方法では500バイトを単位として
公平になっているが、それより小さな単位では必ずしも
公平になっていない。しかし厳密な公平性の実現はパケ
ットバッファ装置に非常に大きな処理能力を要求するこ
とが知られており、現実問題として上述の程度の公平性
で十分と判断される場合が多い。
In the above method, the unit is fair in units of 500 bytes, but the unit smaller than 500 is not necessarily fair. However, it is known that the strict realization of fairness requires a very large processing capacity of the packet buffer device, and in reality, it is often judged that the above-mentioned fairness is sufficient.

【0279】さて、上述の説明ではフローの数が3つで
あったが、パケットバッファ装置が莫大な数のフローを
扱う場合、キューにパケットを蓄積しているフローをど
の様に探索し、公平にパケットを出力するのかが課題に
なる。本発明は、パケットグループという概念を用いて
この課題を解決する。
Although the number of flows is three in the above description, when the packet buffer device handles an enormous number of flows, how to search for a flow accumulating packets in the queue, The issue is whether to output packets to. The present invention solves this problem using the concept of packet groups.

【0280】本発明は、前述の図14のZ、A、B、
C、Dの様に全てのフローのキューを一定の長さに区切
る。このとき、各区切りを単位としてパケットを出力す
ることで公平なパケット出力を実現できることに着目す
る。本発明はこれらの区切り毎にパケットをグループ化
して管理する。この各グループをパケットグループと呼
ぶ。ひとつのパケットグループには複数のフローのパケ
ットが混在する。パケットの出力はまず出力側に最も近
いパケットグループZのパケットを出力し、次にパケッ
トグループAのパケットを出力する。さらにB、C、D
というように順にパケットグループのパケットを出力す
ることにより、本発明のパケットバッファ装置はフロー
間で公平にパケットを出力できる。
The present invention is based on Z, A, B, and FIG.
The queues of all flows are divided into fixed lengths like C and D. At this time, pay attention to the fact that a fair packet output can be realized by outputting a packet with each section as a unit. The present invention manages packets by grouping them for each of these delimiters. Each group is called a packet group. Packets of multiple flows are mixed in one packet group. As for the output of the packet, first the packet of the packet group Z closest to the output side is output, and then the packet of the packet group A is output. Further B, C, D
By thus outputting the packets of the packet groups in order, the packet buffer device of the present invention can output the packets fairly among the flows.

【0281】ところで図14において区切りBのフロー
3を見ると、400バイトのパケットの次に350バイ
トのパケットが蓄積されている。図では同じ区切りに属
するパケットは合計500バイトを上限としているた
め、パケットをパケットバッファ装置内部で分割しない
とする400バイトのパケットと350バイトのパケッ
トの両方を区切り、Bに入れることはできない。そうか
といって、後からパケットバッファ装置に到着した35
0バイトのパケットを区切りBに入れなければ区切りB
には100バイトのすき間が発生してしまう。この様な
場合の扱いは後で述べる。
By the way, looking at the flow 3 of the section B in FIG. 14, a packet of 350 bytes is accumulated next to a packet of 400 bytes. In the figure, the total number of packets belonging to the same segment is 500 bytes, so it is not possible to segment both the 400-byte packet and the 350-byte packet that are not divided in the packet buffer device into B. That being said, 35 arrived later at the packet buffer device.
If you do not put a 0-byte packet in delimiter B, delimiter B
A gap of 100 bytes will be generated. The handling of such a case will be described later.

【0282】以上本発明のパケットグループという概念
について説明した。
The concept of the packet group of the present invention has been described above.

【0283】続いて本発明のパケットバッファ装置の一
例を図15を用いてより具体的に説明する。
Next, an example of the packet buffer device of the present invention will be described more specifically with reference to FIG.

【0284】本発明の構成要素として、パケットグルー
プ、パケットグループFIFO、フローテーブル、出力
待ちパケットグループがある。
As the constituent elements of the present invention, there are a packet group, a packet group FIFO, a flow table, and an output waiting packet group.

【0285】パケットグループは前述した様に蓄積して
いるパケットをグループ化したものである。図15では
A、B、C、Dがパケットグループである。各パケット
グループに属するパケットには順序がついており、パケ
ットグループはいわばFIFO構造になっている。
The packet group is a group of the accumulated packets as described above. In FIG. 15, A, B, C, and D are packet groups. The packets belonging to each packet group are ordered, and the packet groups have a so-called FIFO structure.

【0286】本発明は図15のように、パケットのFI
FOであるパケットグループをさらにFIFOで管理す
る。このパケットグループのFIFOをパケットグルー
プFIFOと呼ぶ。
According to the present invention, as shown in FIG.
The packet group that is the FO is further managed by the FIFO. The FIFO of this packet group is called a packet group FIFO.

【0287】フローテーブルはフロー毎の情報を記憶す
る。フローテーブルのNx はそのフローの重みの設定
値、Nc は作業変数、蓄積量はそのフローの蓄積パケッ
トの合計量、Ptrはそのフローの最後に到着したパケッ
トが属するパケットグループへのポインタである。蓄積
量はパケットバッファ装置がそのフローのパケットを蓄
積しているかどうかを示す目的を持ち、例えばパケット
入力時に入力パケット長を加え、パケット出力時に出力
パケット長を引く変数とすることによりフロー毎に蓄積
パケットの合計バイト数を保持する。
The flow table stores information for each flow. In the flow table, Nx is a set value of the weight of the flow, Nc is a work variable, the accumulated amount is the total amount of accumulated packets of the flow, and Ptr is a pointer to the packet group to which the packet arrived at the end of the flow belongs. The accumulated amount has the purpose of indicating whether or not the packet buffer device is accumulating packets of that flow. For example, by accumulating the input packet length at the time of packet input and subtracting the output packet length at the time of packet output, accumulation for each flow is performed. Holds the total number of bytes in the packet.

【0288】出力待ちパケットグループは、パケットグ
ループFIFOから出力されたパケットグループである
(図ではパケットグループZ)。パケットバッファ装置
からパケットを出力する場合、出力待ちパケットグルー
プに属するパケットを出力する。
The output waiting packet group is a packet group output from the packet group FIFO (packet group Z in the figure). When outputting a packet from the packet buffer device, a packet belonging to the output waiting packet group is output.

【0289】パケットが入力した場合、そのパケットを
どのパケットグループに入れるかを決定しなけらばなら
ない。
When a packet is input, it has to be decided which packet group the packet should be put into.

【0290】まずはじめに、そのフローのパケットが現
在バッファ装置に蓄積されているかどうかを調べる。フ
ロー識別情報よりフローテーブルのそのフローの蓄積量
を参照し、それがゼロかどうかで判断できる。現在蓄積
されていなければ、パケットグループFIFOの先頭の
パケットグループ(図15のパケットグループA)に入
力パケットを入れる。
First, it is checked whether the packet of the flow is currently stored in the buffer device. The accumulated amount of the flow in the flow table is referred to from the flow identification information, and it can be determined whether it is zero. If not currently stored, the input packet is put in the first packet group (packet group A in FIG. 15) of the packet group FIFO.

【0291】蓄積量がゼロより大きな場合でも、Ptrが
出力待ちパケットグループ(図15のパケットグループ
Z)を指している場合は、やはりパケットグループFI
FOの先頭のパケットグループAに入力パケットを入れ
る。
Even if the accumulated amount is larger than zero, if Ptr points to the output waiting packet group (packet group Z in FIG. 15), the packet group FI is still used.
The input packet is put in the packet group A at the head of the FO.

【0292】その他の場合は、入力パケット長と、Nx
、Nc 、Ptrによって決定する。
In other cases, the input packet length and Nx
, Nc, Ptr.

【0293】各フローのNx は、そのフローについて、
ひとつのパケットグループが管理する平均的なパケット
の量を示している。Nx はそのフローの最大パケット長
よりも大きな値に設定する。
Nx for each flow is:
It shows the average amount of packets managed by one packet group. Nx is set to a value larger than the maximum packet length of the flow.

【0294】Nc は、Nx −Nc を計算することによ
り、Ptrで示しているパケットグループに、そのフロー
が今後入れることのできる残りの量を示す。もしNx −
Nc ≧(入力パケット長)ならば、Ptrで指しているパ
ケットグループに入力パケットを入れ、逆にNx −Nc
<(入力パケット長)ならば、パケットグループFIF
O上で、Ptrが目指すパケットグループの次のパケット
グループに入力パケットを入れる。
Nc indicates the remaining amount that the flow can put in the packet group indicated by Ptr in the future by calculating Nx-Nc. If Nx −
If Nc ≥ (input packet length), put the input packet in the packet group pointed to by Ptr, and conversely Nx-Nc
<(Input packet length), packet group FIF
On O, put the incoming packet into the packet group next to the packet group Ptr is aiming for.

【0295】パケットグループが決定すると、次にNc
とPtrの値を更新する。パケットグループFIFOの先
頭のパケットグループに、そのフローに関して1つめの
パケットを入れた場合は、Nc :=(入力パケット長)
とする。その他の場合は、まず、Nc :=Nc +(入力
パケット長)とし、その結果もしNx <Nc ならさらに
Nc :=Nc −Nx と書き変える(つまり、0<Nc ≦
Nx である)。Ptrはその入力パケットを入れたパケッ
トグループへのポインタを書き込む。
When the packet group is determined, next Nc
And Ptr values are updated. If the first packet for that flow is placed in the first packet group of the packet group FIFO, Nc: = (input packet length)
And In other cases, first, Nc: = Nc + (input packet length), and if Nx <Nc, then rewrite as Nc: = Nc-Nx (that is, 0 <Nc≤
Nx). Ptr writes a pointer to the packet group containing the input packet.

【0296】本発明では、ひとつのパケットをふたつの
パケットグループが管理することはない。そのため入力
パケットの長さがNx −Nc を越えている場合には、入
力パケットをPtrの指すパケットグループに入れず次の
パケットグループに入れる。しかしNc の計算上ではひ
とつのパケットをふたつのパケットグループに分割して
入れる。つまり、Nc :=Nc +(入力パケット長)と
し、Nx を越えた部分があれば、そのNc −Nx を次の
パケットグループのNc とする。このアルゴリズムによ
り平均的に、ひとつのパケットグループあたりNx のパ
ケットが属することになる。
In the present invention, one packet is not managed by two packet groups. Therefore, if the length of the input packet exceeds Nx-Nc, the input packet is put in the next packet group instead of being put in the packet group pointed to by Ptr. However, in calculating Nc, one packet is divided into two packet groups and inserted. That is, Nc: = Nc + (input packet length), and if there is a portion exceeding Nx, the Nc-Nx is set as Nc of the next packet group. With this algorithm, on average, Nx packets belong to one packet group.

【0297】図15を用いてパケット入力動作を具体的
に説明する。図15はフロー1で長さ250バイトのパ
ケットがパケットバッファ装置に到着した場面である。
このときフロー1のPtrはパケットグループBを指して
いる。フローテーブルの更新は、上述の手続にしたがっ
てNc をNc :=Nc +(入力パケット長)=200+
250=450とする。この値はNx 以下のなので、こ
の入力パケットはPtrが指しているパケットグループB
に入れる。
The packet input operation will be specifically described with reference to FIG. FIG. 15 shows a scene in which a packet having a length of 250 bytes arrives at the packet buffer device in flow 1.
At this time, Ptr of the flow 1 points to the packet group B. In order to update the flow table, Nc is changed to Nc: = Nc + (input packet length) = 200 + according to the above procedure.
250 = 450. Since this value is less than Nx, this input packet is the packet group B pointed to by Ptr.
Put in.

【0298】もし、仮にフロー1の入力パケット長が2
50ではなく350であった場合はNc :=200+3
50=550となりNx を越える。したがってさらに、
Nc:=Nc −Nx =550−500=50と更新し、
この入力パケットをパケットグループBの次のパケット
グループCに入れる。PtrはパケットグループCに変更
する。
If the input packet length of flow 1 is 2
If 350 instead of 50, Nc: = 200 + 3
50 = 550, which exceeds Nx. Therefore, further
Nc: = Nc-Nx = 550-500 = 50 is updated,
This input packet is put into the packet group C next to the packet group B. Ptr is changed to the packet group C.

【0299】パケットグループFIFOは先入れ先だし
のキューであり、キューイングしているパケットグルー
プ数を必要なだけ増やすことができる。例えば、図15
においてフロー2でパケット長が400のパケットが到
着したと仮定すると、空きのパケットグループ(パケッ
トグループE)がパケットグループDの次に追加され、
入力パケットはそのパケットグループEに入れることに
なる。
The packet group FIFO is a first-in, first-out queue, and the number of queued packet groups can be increased as necessary. For example, FIG.
Assuming that a packet having a packet length of 400 has arrived in the flow 2 in, a free packet group (packet group E) is added next to the packet group D,
The input packet will be put into the packet group E.

【0300】以上のようにパケット入力時の処理は、フ
ローテーブルの該当箇所を変更することと、パケットグ
ループにパケットを入れることと、必要があればパケッ
トグループFIFOに空きのパケットグループを追加す
ることでよい。フローテーブルを複数のフローに渡って
検索することなく入力時の処理を行なうことが可能であ
り、フロー数が大きくなっても処理の複雑さは変化しな
い。
As described above, the processing at the time of packet input is to change the corresponding part of the flow table, put the packet in the packet group, and add an empty packet group to the packet group FIFO if necessary. Good. The processing at the time of input can be performed without searching the flow table for a plurality of flows, and the complexity of the processing does not change even if the number of flows increases.

【0301】一方、パケットの出力時に必要な処理はさ
らに簡単である。つまり出力待ちパケットグループから
パケットを出力すればよい。必要に応じてパケットグル
ープFIFOからパケットグループを出力することをそ
の前に行なう。これらの処理もフローテーブルを複数の
フローに渡って検索することなく可能であり、フロー数
が大きくなっても処理の複雑さは変化しない。
On the other hand, the processing required when outputting a packet is simpler. That is, the packet may be output from the output waiting packet group. Before that, a packet group is output from the packet group FIFO if necessary. These processes are also possible without searching the flow table for a plurality of flows, and the complexity of the processes does not change even if the number of flows increases.

【0302】前述したように各フローの重みNx は、そ
のフローに関してひとつのパケットグループあたりの平
均的なパケットの量を示している。そして本発明のパケ
ットバッファ装置はパケットグループを単位としてパケ
ットを出力するため、各フローの出力スリープットはN
x に比例する。
As described above, the weight Nx of each flow indicates the average amount of packets per packet group for that flow. Since the packet buffer device of the present invention outputs packets in units of packet groups, the output sleep count of each flow is N.
proportional to x

【0303】このパケットバッファ装置によれば、フロ
ーテーブルを検索する処理が必要なく、したがって設定
可能なフロー数の上限に依存することなく容易に可変長
パケットを扱い重み付き公平なパケットバッファ装置を
実現することができる。
According to this packet buffer device, there is no need to perform a process for searching the flow table, and therefore a variable length packet is easily handled without depending on the upper limit of the number of flows that can be set, and a weighted and fair packet buffer device is realized. can do.

【0304】本発明の各パケットグループはパケットを
到着順に管理する。つまり同じパケットグループに属す
るパケットの出力順位は全てのフローを通して到着順に
なるということである。この性質はパケットの遅延揺ら
ぎを低減する効果がある。
Each packet group of the present invention manages packets in the order of arrival. That is, the output order of the packets belonging to the same packet group is the arrival order through all the flows. This property has the effect of reducing packet delay fluctuations.

【0305】また、本発明のパケットバッファ装置は、
従来の技術で説明したDRRというアルゴリズムと比較
すると、VC数が増えても高速にVC間公平キューイン
グの為の出力セルの選択が実現できるうえ、重みの値が
大きくなっても出力トラヒックのバースト性が増加する
ことがない。本発明でバースト性が増加しないのは、入
力したパケットを複数の集合(パケットグループ)に振
り分け管理する際に、ひとつの集合内ではパケットをフ
ロー(VC)とは無関係に管理し、パケットをその集合
(パケットグループ)から出力する際はフロー(VC)
とは無関係に出力するからである。
Also, the packet buffer device of the present invention is
Compared with the algorithm called DRR described in the related art, even if the number of VCs increases, the selection of output cells for fair queuing between VCs can be realized at high speed, and even if the weight value increases, bursts of output traffic can occur. Sex does not increase. The reason why the burst property does not increase in the present invention is that when an input packet is distributed and managed in a plurality of sets (packet groups), the packet is managed within one set independently of the flow (VC), and Flow (VC) when outputting from a set (packet group)
This is because it is output regardless of.

【0306】3. バックプレッシャを考慮したキュー
監視(第8の実施形態) 次に、本発明の第8の実施形態に係るバックプレッシャ
を考慮したキュー監視を行うセルバッファ装置について
説明する。
3. Queue Monitoring Considering Back Pressure (Eighth Embodiment) Next, a cell buffer device for performing queue monitoring considering back pressure according to an eighth embodiment of the present invention will be described.

【0307】図16に、例えば、前述の第1、第2、第
4、第5の実施形態で説明したような入力バッファにお
けるキュー長の変化の一例を示す。
FIG. 16 shows an example of changes in the queue length in the input buffer as described in the first, second, fourth and fifth embodiments, for example.

【0308】第8の実施形態に係るセルバッファ装置
は、バックプレッシャ信号により出力が出力可能と出力
禁止の2状態に制御されているセルバッファ装置であっ
て、バックプレッシャ信号が出力可能から出力禁止に変
化した時から次に出力可能から出力禁止に変化するまで
の間で、最初のセル入力時の蓄積セル数のみを監視する
ことを特徴とする。
The cell buffer device according to the eighth embodiment is a cell buffer device in which an output is controlled by a back pressure signal to two states, that is, output is possible and output is prohibited. It is characterized in that only the number of accumulated cells at the time of the first cell input is monitored from the time when the cell is changed to the time when the output is changed to the output prohibited.

【0309】監視の目的は、輻輳の判定や、ひとつのバ
ッファ領域を複数のキューが共用する場合においてバッ
ファ領域の独占を防ぐための入力セル廃棄の判定などで
ある。
The purpose of monitoring is to judge congestion and to judge input cell discard to prevent monopolization of the buffer area when one queue is shared by a plurality of queues.

【0310】図17にバックプレッシャ考慮のキュー監
視部を持つセルバッファ装置の構成例を示す。図17に
おいて、セルバッファ装置は、複数のキューQi(i=
1〜N)、キューテーブル記憶部280、バックプレッ
シャ識別子(BPID)記憶部281、キュー監視部2
82から構成される。
FIG. 17 shows an example of the configuration of a cell buffer device having a queue monitoring unit considering back pressure. In FIG. 17, the cell buffer device has a plurality of queues Qi (i =
1 to N), a queue table storage unit 280, a back pressure identifier (BPID) storage unit 281, and a queue monitoring unit 2
It is composed of 82.

【0311】キューテーブル記憶部280に記憶される
キューテーブルのQlen i はそのキューの蓄積セル数、
Cnti は輻輳判定変数(初期値ゼロ)、BPIDt i は
最後のセル入力時のバックプレッシャ識別子(BPI
D)である。
Qlen i of the queue table stored in the queue table storage unit 280 is the number of accumulated cells of the queue,
Cnti is a congestion judgment variable (initial value is zero), and BPIDt i is a back pressure identifier (BPI) at the time of the last cell input.
D).

【0312】セルがキューに入力すると入力セル情報が
キュー監視部282に転送される。また、BPIDはバ
ックプレッシャ信号が出力可能から出力禁止に変化した
時に図16の様にインクリメントされる。キュー監視部
282はキュー長の監視を図18に示すアルゴリズムに
基づいて行なう。
When a cell enters the queue, the input cell information is transferred to the queue monitoring unit 282. Further, the BPID is incremented as shown in FIG. 16 when the back pressure signal is changed from being outputable to being output prohibited. The queue monitoring unit 282 monitors the queue length based on the algorithm shown in FIG.

【0313】図18にバックプレッシャを考慮したバッ
ファのキュー長監視アルゴリズムの一例を示す。これは
キュー長を監視して輻輳の有無を判断する例を示してい
る。
FIG. 18 shows an example of a buffer queue length monitoring algorithm in consideration of back pressure. This shows an example in which the queue length is monitored to determine the presence or absence of congestion.

【0314】キューQiにセルが入力されて、セル入力
処理が開始されると、まず、Qleni をインクリメント
する(ステップS1)。
When a cell is input to the queue Qi and cell input processing is started, Qleni is first incremented (step S1).

【0315】次に、BPIDとBPIDt i を比較する
ことにより、キュー長を監視すべきかそうでないかを判
断する(ステップS2)。すなわち、バックプレッシャ
信号により変動するキュー長が短くなった時に監視す
る。
Next, by comparing BPID and BPIDt i, it is determined whether the queue length should be monitored or not (step S2). That is, it is monitored when the queue length that fluctuates due to the back pressure signal becomes short.

【0316】BPID≠BPIDt i の場合、キュー長
を監視すべきであり、まず、Cnti1であるか否かを
判断する(ステップS3)。このとき、Cnti 1場合
は直前まで輻輳状態だと判断し、輻輳状態か否かを判断
するためのしきい値Qthにヒステリシスを持たせた値
(Qth−H)とQlen i 比較する(ステップS4)。
If BPID ≠ BPIDt i, the queue length should be monitored. First, it is determined whether Cnti > 1 (step S3). At this time, if Cnti > 1, it is determined that the congestion state has occurred until immediately before, and Qlen i is compared with a threshold value Qth (Qth-H) having a hysteresis for determining whether or not the congestion state is present (step. S4).

【0317】一方、Cnti 1でない場合は、Qlen i
>Qthを判定する(ステップS5)。 ステップS4、
ステップS5でキュー長Qlen i をQth−HあるいはQ
thと比較した結果、これらのしきい値を越えているとき
(すなわち、Qlen i >Qth−H、あるいは、Qlen i
>Qthであるとき)、Cnti :=Qlen i −Qth+Hを
行ない(ステップS6、ステップS7)、そうでなけれ
ばCnti :=0とする(ステップS8、ステップS
9)。さらに、ステップS10に進む。
On the other hand, when Cnti > 1 is not satisfied, Qlen i
> Qth is determined (step S5). Step S4,
In step S5, the queue length Qlen i is set to Qth-H or Q
As a result of comparison with th, when these threshold values are exceeded (that is, Qlen i> Qth−H, or Qlen i
> Qth), Cnti: = Qlen i −Qth + H is performed (step S6, step S7), otherwise Cnti: = 0 (step S8, step S8).
9). Furthermore, it progresses to step S10.

【0318】ステップS2で、BPID==BPIDt
i の場合、キュー長を監視すべきではなく、そのままス
テップS10に進む。
At step S2, BPID == BPIDt
In the case of i, the queue length should not be monitored, and the process proceeds directly to step S10.

【0319】ステップS10では、Cnti 1を判定す
る。もし、そうであれば輻輳状態であり、ステップS1
1に進み、Cnti から「1」を減算し(Cnti :=Cnt
i −1)、入力セルを廃棄するなら(ステップS12)
Qlen i から「1」を減算する(Qlen i := Qlen
i −1)。Cnti 1でないなら(ステップS10)輻
輳状態ではない。
In step S10, it is determined whether Cnti > 1. If so, it is a congestion state, and step S1
1 and subtract “1” from Cnti (Cnti: = Cnt
i -1), if the input cell is discarded (step S12)
Subtract "1" from Qlen i (Qlen i: = Qlen
i-1). If Cnti > 1 is not satisfied (step S10), it is not in a congestion state.

【0320】最後に、BPIDt i にBPIDの値を代
入し、BPIDt i を更新する(ステップS13)。
Finally, the value of BPID is substituted into BPIDt i, and BPIDt i is updated (step S13).

【0321】このように、図18に示したフローチャー
トによれば、バックプレッシャー信号が出力可能から出
力禁止に変化した時から、次に、出力可能から出力禁止
に変化する時までの最初のセル入力時の蓄積数のみを監
視していることになる。
As described above, according to the flowchart shown in FIG. 18, the first cell input from the time when the back pressure signal changes from the output enable to the output prohibition to the time when the output pressure changes from the output enable to the output prohibition next time. It means that only the accumulated number at time is monitored.

【0322】なお、Hは、ヒステリシスに関するパラメ
タを示す。ヒステリシスはキュー長を監視して行なわれ
るセル廃棄や輻輳状態などの判定結果の振動を低減する
作用がある。0H<Qthであり、ヒステリシスが不要
である場合はゼロに設定する。
Note that H indicates a parameter relating to hysteresis. Hysteresis has the effect of reducing the vibration of determination results such as cell discard and congestion state, which is performed by monitoring the queue length. If 0 < H <Qth and no hysteresis is required, set to zero.

【0323】図18では、しきい値Qthとヒステリシス
パラメタHは全てのキューで同じ値を用いる場合を示し
ているが、キュー毎に異なる値を設定してもかまわな
い。
Although FIG. 18 shows the case where the threshold value Qth and the hysteresis parameter H use the same value for all the queues, different values may be set for each queue.

【0324】ここで、しきい値Qthの決定方法を述べ
る。まず、バックプレッシャ信号によって制御されてい
ないバッファを考える。このバッファは一定レートRi
で入力し、一定レートR0 で出力するとする。Ri >R
0 のとき、この負荷(Ri −RO )が加わってもtT 時
間廃棄を起こさないために必要なバッファ量Qthは、Q
th=(Ri −RO )×tT により求められる。
Here, a method of determining the threshold value Qth will be described. First, consider a buffer that is not controlled by the backpressure signal. This buffer has a constant rate Ri
, And output at a constant rate R0. Ri> R
When it is 0, the buffer amount Qth required to prevent the discarding of tT time even if the load (Ri-RO) is applied is Qth.
It is determined by th = (Ri-RO) * tT.

【0325】これに対し、この第8の実施形態では、図
16に示すように、入力レートはRi で一定であるが、
入力バッファからの出力レートはTup時間(入力バッフ
ァからの出力禁止時間)についてはゼロ、Tdn時間(入
力バッファからの出力可能時間)についてはRe であ
る。Tup、Tdnの変化が少ないと仮定すると、先ほどと
同じく、この負荷が加わってもtT 時間廃棄を起こさな
いために必要なバッファ量Qthは、
On the other hand, in the eighth embodiment, as shown in FIG. 16, the input rate is constant at Ri,
The output rate from the input buffer is zero for the Tup time (the output inhibition time from the input buffer) and Re for the Tdn time (the output possible time from the input buffer). Assuming that the changes in Tup and Tdn are small, the buffer amount Qth required for not causing the tT time discard even when this load is applied is

【数1】 (Equation 1)

【0326】となる。ここで、出力ポートからの平均の
出力レートR′0 は、
It becomes: Here, the average output rate R'0 from the output port is

【数2】 (Equation 2)

【0327】であるから、Qth=( Ri −R′O )×t
T となり、この第8の実施形態のセルバッファ装置は、
バックプレッシャのない単純なバッファ装置の場合のし
きい値と同じしきい値を設定することにより、ほぼ同様
の効果を得られると考えられる。
Therefore, Qth = (Ri-R'O) × t
T, and the cell buffer device of the eighth embodiment is
It is considered that almost the same effect can be obtained by setting the same threshold value as that of a simple buffer device without back pressure.

【0328】なお、輻輳状態を判定する代わりに、セル
の廃棄判定を行なう場合でも全く同じアルゴリズムが適
用できる。
The exact same algorithm can be applied to the case of making a cell discard decision instead of the congestion decision.

【0329】以上説明したように、上記第8の実施形態
に係るバックプレッシャ信号を考慮するセルバッファ装
置によれば、キュー長の監視結果が外部条件の影響を受
け難く、安定したキュー長の監視が容易である。
As described above, according to the cell buffer device considering the back pressure signal according to the eighth embodiment, the queue length monitoring result is not easily influenced by the external condition, and the stable queue length monitoring is performed. Is easy.

【0330】4. 遅延を考慮したセル数情報の修正
(第9の実施形態) 次に、本発明に係るセル数情報を修正するセルバッファ
装置の実施形態について説明する。
4. Modification of Cell Number Information Considering Delay (Ninth Embodiment) Next, an embodiment of a cell buffer device for modifying the cell number information according to the present invention will be described.

【0331】4.1 第9の実施形態(遅延を考慮した
セルバッファ装置) 図19に、第9の実施形態に係る遅延を考慮したセルバ
ッファ装置の構成を示す。
4.1 Ninth Embodiment (Cell Buffer Device Considering Delay) FIG. 19 shows the configuration of a cell buffer device considering delay according to the ninth embodiment.

【0332】図19に示したセルバッファ装置は、大き
く分けて、ひとつ以上のセルバッファB(Ba、Bb、
…)を複数段(図19では2段)接続してなるセルバッ
ファ網300と、各セルバッファBのセル数を入力して
セルバッファBへ転送指示を行なう管理部301とから
構成される。
The cell buffer device shown in FIG. 19 is roughly divided into one or more cell buffers B (Ba, Bb,
..) are connected in a plurality of stages (two stages in FIG. 19), and a management unit 301 for inputting the number of cells in each cell buffer B and issuing a transfer instruction to the cell buffer B.

【0333】管理部301は、転送指示の履歴302を
保持し、新たな転送指示を決定する際にこの転送指示履
歴302を使用することを特徴とする。
The management section 301 is characterized by holding a transfer instruction history 302 and using this transfer instruction history 302 when deciding a new transfer instruction.

【0334】前記管理部301は、セルバッファBがセ
ル数を管理部301へ送信した時刻から、管理部が決定
する転送指示がそのセルバッファBに作用する時刻まで
に、そのセルバッファBに作用する転送指示の回数を前
記転送指示履歴302より求め、その転送指示の回数と
セル数から転送指示を決定する。
The management unit 301 operates on the cell buffer B from the time when the cell buffer B transmits the number of cells to the management unit 301 to the time when the transfer instruction determined by the management unit operates on the cell buffer B. The number of transfer instructions to be performed is obtained from the transfer instruction history 302, and the transfer instruction is determined from the number of transfer instructions and the number of cells.

【0335】図20は、本発明の遅延を考慮したセルバ
ッファ装置におけるセル数情報の修正原理を説明する図
である。
FIG. 20 is a diagram for explaining the principle of correcting the cell number information in the cell buffer device in consideration of the delay of the present invention.

【0336】入力リンク#1、#2から入力したセル
は、それぞれ前段のセルバッファBa1、Ba2に一時的に
蓄積される。管理部301の転送指示に従いセルはセル
バッファBb に転送され、セルバッファBb はセルを出
力リンクへ出力する。
The cells input from the input links # 1 and # 2 are temporarily stored in the cell buffers Ba1 and Ba2 at the preceding stages, respectively. The cell is transferred to the cell buffer Bb according to the transfer instruction of the management unit 301, and the cell buffer Bb outputs the cell to the output link.

【0337】管理部301には、Ba2のセル数Na2と、
Bb のセル数Nb が伝送され、Ba1、Ba2に対して転送
指示を出力する。
The management unit 301 stores in the cell number Na2 of Ba2,
The cell number Nb of Bb is transmitted, and a transfer instruction is output to Ba1 and Ba2.

【0338】今、Ba2からセル数情報が管理部301に
到着し、その情報から転送指示を決定してBa2に転送を
指示して、この転送指示によりBa2のセル数が変化する
までの遅延時間をDセル周期とする。また、Bb からセ
ル数情報が管理部に到着し、その情報から転送指示を決
定してBa1、Ba2に転送を指示して、この転送指示によ
りBa1またはBa2からBb へセルが転送されBb のセル
数が変化するまでの遅延時間も、説明を簡単にするため
同じDセル周期であるとする。
Now, the cell number information from Ba2 arrives at the management section 301, the transfer instruction is determined from the information, the transfer instruction is issued to Ba2, and the delay time until the cell number of Ba2 is changed by this transfer instruction. Is the D cell cycle. Also, the cell number information arrives at the management unit from Bb, the transfer instruction is determined from the information, the transfer is instructed to Ba1 and Ba2, and the cell is transferred from Ba1 or Ba2 to Bb by this transfer instruction, and the cell of Bb is transferred. The delay time until the number changes is also assumed to be the same D cell cycle for the sake of simplicity.

【0339】ここで、図20を、セルバッファBa1、B
a2が図53のクラス1セル蓄積部、クラス2セル蓄積部
に相当し、セルバッファBb がセル多重化FIFOに相
当する優先制御を行なうセルバッファ装置と考える。B
a1、Ba2、Bb のセルバッファ間のセル転送の方針は図
53と同じである。つまりBb の蓄積セル数を少なくす
ることが必要であるが、Bb を努めて空にしない(=ア
ンダフローしない)ように転送指示をする。さらに、転
送指示は空指示をしないように行なう(Ba2に蓄積セル
が存在する場合にのみBa2に対して転送指示を行な
う)。
FIG. 20 shows cell buffers Ba1 and B1.
It is assumed that a2 corresponds to the class 1 cell accumulating section and the class 2 cell accumulating section in FIG. 53, and the cell buffer Bb corresponds to the cell multiplexing FIFO and performs the priority control. B
The policy of cell transfer between the cell buffers a1, Ba2 and Bb is the same as in FIG. In other words, it is necessary to reduce the number of Bb storage cells, but a transfer instruction is given so that Bb is not emptied (= underflow). Further, the transfer instruction is made so as not to give an empty instruction (the transfer instruction is given to Ba2 only when the storage cell exists in Ba2).

【0340】さて、時刻t2 でBa2から出力されたセル
数情報Na2が管理部301へ到着し、時刻t3 に管理部
301が転送指示を行なって時刻t4 にその転送指示に
よりBa2からセルが出力したとする。管理部301が知
りたい情報は、転送指示が実際にBa2に作用する時刻t
4 におけるBa2のセル数である。この時点を図20に白
丸で示した。
The cell number information Na2 output from Ba2 at time t2 arrives at the management unit 301, the management unit 301 issues a transfer instruction at time t3, and the cell is output from Ba2 by the transfer instruction at time t4. And The information that the management unit 301 wants to know is the time t when the transfer instruction actually affects Ba2.
It is the number of cells of Ba2 in 4. This time point is shown by a white circle in FIG.

【0341】Ba2が時刻t2 からt4 の時間(=Dセル
周期)でMa2回の転送指示を受け付けたとすると、この
間にBa2はMa2セル出力したことになり、時刻t4 にお
けるBa2のセル数はNa2−Ma2である(Ba2へセルが入
力しなかった場合)。
If Ba2 accepts a transfer instruction Ma2 times during the time period from time t2 to time t4 (= D cell period), Ba2 outputs Ma2 cells during this time, and the number of cells Ba2 at time t4 is Na2−. Ma2 (when no cell is input to Ba2).

【0342】通常、管理部301からBa2までの転送指
示の伝送遅延は一定だから、Ba2が受信する転送指示回
数Ma2は、t4 −t2 =D=t3 −t1 となるようなt
1 とt3 間で管理部301が出力した転送指示の回数と
等しい。従って、転送指示履歴302より転送指示回数
Ma2を知ることにより、時刻t2 からt4 におけるBa2
の減少セル数を正確に求めることができる。
Normally, since the transmission delay of the transfer instruction from the management unit 301 to Ba2 is constant, the number of transfer instructions Ma2 received by Ba2 is t4 such that t4−t2 = D = t3−t1.
It is equal to the number of transfer instructions output by the management unit 301 between 1 and t3. Therefore, by knowing the transfer instruction count Ma2 from the transfer instruction history 302, Ba2 from time t2 to t4
It is possible to accurately obtain the number of reduced cells of.

【0343】Bb に関しても同様に考えることができ、
時刻t2 からt4 におけるBb のセル数の増加量(Ba2
からの転送セルによる増加量)を正確に求めることがで
きる。
The same can be considered for Bb,
The amount of increase in the number of cells of Bb from time t2 to t4 (Ba2
Can be accurately obtained.

【0344】時刻t2 からt4 でのBa2への入力セル数
は、管理部301は知ることができない。Ba2に対して
空指示しないようにするためには、Ba2のセル数を少な
めに見積もればよい。従って、入力リンクからBa2への
セル入力は、時刻t2 からt4 においてなかったと仮定
する。
The management section 301 cannot know the number of input cells to Ba2 from time t2 to time t4. In order not to give an empty instruction to Ba2, the number of cells of Ba2 may be underestimated. Therefore, assume that the cell input to Ba2 from the input link was not from time t2 to t4.

【0345】また時刻t2 からt4 でのBb からのセル
出力は、管理部301は知ることができない。Bb がア
ンダフローしないようにするためには、Bb のセル数を
少なめに見積もる必要がある。従って、Bb からのセル
出力は、時刻t2 からt4 において常に出力し続けたと
仮定する(Dセル周期であるので、Dセルと仮定す
る)。さらに、Ba1からの入力セルもゼロと仮定する。
Further, the cell output from Bb from time t2 to t4 cannot be known by the management section 301. In order to prevent Bb from underflowing, it is necessary to underestimate the number of Bb cells. Therefore, it is assumed that the cell output from Bb is continuously output from the time t2 to t4 (D cell period, so it is assumed to be D cell). Further assume that the input cell from Ba1 is also zero.

【0346】まとめると、修正されたNa2、Nb をそれ
ぞれN′a2、N′b とすると、 N′a2=Na2+0−Ma2 N′b =Nb +Ma2−D である。よって管理部301がBa2へ転送指示を行なう
条件は、 (N′b ≦Th)and(N′a >0) で与えられる。Ba1への転送指示は、 (N′b ≦Th)and(N′a ≦0) の条件で行なう。Thは通常は「1」である。以上のよ
うにセル数を修正することにより、アンダフローや空指
示を努めて少なくしつつ転送を指示することができる。
In summary, when the corrected Na2 and Nb are N'a2 and N'b, respectively, N'a2 = Na2 + 0-Ma2 N'b = Nb + Ma2-D. Therefore, the condition for the management unit 301 to give a transfer instruction to Ba2 is given by (N'b ≤ Th) and (N'a> 0). The transfer instruction to Ba1 is performed under the condition of (N'b ≤ Th) and (N'a ≤ 0). Th is usually "1". By correcting the number of cells as described above, it is possible to instruct the transfer while trying to reduce the underflow or empty instruction.

【0347】4.2 一般的なバッファ網におけるセル
数の修正方法 次に、一般的なバッファ網におけるセル数の修正方法に
ついて説明する。
4.2 Method of Correcting Number of Cells in General Buffer Network Next, a method of correcting the number of cells in a general buffer network will be described.

【0348】基本原理の説明には図21を用いる。図2
1には、すでに述べたようにセルバッファ網300と管
理部301がある。セルバッファ網300は、着目して
いるセルバッファBx を含む。セルバッファBxは物理
的には複数のバッファであっても良い。管理部はこのセ
ルバッファBxからセル数情報を得て転送指示を与え
る。まず本発明を説明する際に使用する用語の定義を行
う。
FIG. 21 is used to explain the basic principle. FIG.
1 has the cell buffer network 300 and the management unit 301 as already described. The cell buffer network 300 includes a cell buffer Bx of interest. The cell buffer Bx may physically be a plurality of buffers. The management unit obtains cell number information from the cell buffer Bx and gives a transfer instruction. First, terms used in describing the present invention will be defined.

【0349】4.2.1. 用語の定義 時刻は、特に断らない限り現在時刻をゼロとする相対時
刻とし、セル周期経過毎に1ずつ増加するものとする。
このような時刻の定義は他の表現方法に変換可能であり
一般性がある。また、ある時刻t1からある時刻t2ま
での期間をpなどと表すことがあり、これをp=[t
1、t2)と表す。この期間pは時刻t1を含み、t2
は含まない。
4.2.1. Definition of terms Time is a relative time with the current time being zero unless otherwise specified, and is incremented by 1 each time a cell cycle elapses.
Such a definition of time is general because it can be converted into another expression method. Also, the period from a certain time t1 to a certain time t2 may be expressed as p, and this is expressed as p = [t
1, t2). This period p includes time t1 and t2
Is not included.

【0350】セルバッファBxの蓄積セル数をNxで表
す。Nxは現在時刻(t=0)に管理部301に到着し
た蓄積セル数である。
The number of cells stored in the cell buffer Bx is represented by Nx. Nx is the number of accumulated cells that have arrived at the management unit 301 at the current time (t = 0).

【0351】セルバッファBxに対し管理部301が時
刻t(t0)に出力した転送指示をIx(t)で表
す。転送を指示した場合はIx(t)=1であり、転送
を指示しない場合はIx(t)=0である。
The transfer instruction output from the management unit 301 to the cell buffer Bx at time t (t < 0) is represented by Ix (t). When the transfer is instructed, Ix (t) = 1, and when the transfer is not instructed, Ix (t) = 0.

【0352】時刻t(t0)に管理部301に到着し
たセルバッファBxのHOLセル数をHx(t)で表
す。
The number of HOL cells in the cell buffer Bx that has arrived at the management section 301 at time t (t < 0) is represented by Hx (t).

【0353】HOLセル数とは、1回の転送指示でセル
バッファから一度に転送される可能性のあるセル数であ
る。特に、現在時刻に管理部301に到着したHOLセ
ル数情報HxをHx(0)と表す。
The number of HOL cells is the number of cells that may be transferred from the cell buffer at one time by one transfer instruction. In particular, the HOL cell number information Hx that has arrived at the management unit 301 at the current time is represented as Hx (0).

【0354】本発明の管理部301は、時刻t(t
0)において得たセルバッファBxのHOLセル数Hx
(t)および自らがセルバッファBxへ出力した転送指
示Ix(t)を履歴として記憶する。
The management unit 301 of the present invention determines the time t (t<
0) HOL cell number Hx of cell buffer Bx obtained in 0)
(T) and the transfer instruction output to the cell buffer Bx by itself.
The indication Ix (t) is stored as a history.

【0355】ある期間pに管理部がセルバッファBxに
転送を指示した回数をSmx(p)と表す。p=[t
1、t2)のとき、Mx[t1、t2)とも表す。つま
り、
The number of times the management unit has instructed the cell buffer Bx to transfer during a certain period p is represented by Smx (p). p = [t
In the case of 1, t2), it is also expressed as Mx [t1, t2). That is,

【数3】 (Equation 3)

【0356】図23に、セルバッファBxから管理部3
01へのセル数情報の流れと、管理部301からセルバ
ッファBxへの転送指示の流れを表したタイムチャート
を示す。
FIG. 23 shows the cell buffer Bx to the management unit 3.
11 is a time chart showing a flow of cell number information to 01 and a flow of a transfer instruction from the management unit 301 to the cell buffer Bx.

【0357】この図の様に、時刻tf、tt、thを定
める。時刻tfにおけるセルバッファBxの蓄積セル数
Nxおよび時刻thにおけるセルバッファBxのHOL
セル数Hxは、管理部301が現在時刻においてセルバ
ッファBxに関し直接知り得る最新の情報であるとす
る。このとき管理部301は、時刻ttにおけるセルバ
ッファBxの蓄積セル数を予測したいものとする。
As shown in this figure, the times tf, tt, th are determined. The number Nx of accumulated cells in the cell buffer Bx at time tf and the HOL of the cell buffer Bx at time th
It is assumed that the cell number Hx is the latest information that the management unit 301 can directly know about the cell buffer Bx at the current time. At this time, the management unit 301 wants to predict the number of cells stored in the cell buffer Bx at time tt.

【0358】時刻tf、tt、thに対して、時刻t
1、t3、t2を定める。時刻t1に管理部301が出
力した転送指示がセルバッファBxに届く時刻をtfと
し、時刻t2に管理部301が出力した転送指示がセル
バッファBxに届く時刻をttとする。同様に時刻t3
に管理部301が出力した転送指示がセルバッファBx
に届く時刻をthとする。
For times tf, tt, and th, time t
1, t3, t2 are defined. The time at which the transfer instruction output by the management unit 301 reaches the cell buffer Bx at time t1 is tf, and the time at which the transfer instruction output by the management unit 301 reaches the cell buffer Bx at time t2 is tt. Similarly, time t3
The transfer instruction output by the management unit 301 is transmitted to the cell buffer Bx.
Let th be the time to arrive at.

【0359】時刻t1、t2、t3は現在時刻より過去
の時刻であるとする。つまり、t1<t20、t3
0とする。
Times t1, t2, and t3 are assumed to be times past the present time. That is, t1 <t2 < 0, t3 <
Set to 0.

【0360】4.2.2. 基本原理 ここで本発明の基本原理を説明する。本発明の管理部3
01は転送指示の履歴から蓄積セル数の変化を予測す
る。前述のセルバッファBxについて、時刻ttの蓄積
セル数を求めたい場合、それより過去にの時刻tfにお
ける蓄積セル数Nxに対して、転送指示の履歴を用いて
この期間に転送指示により転送されたセル数を予測して
修正する。修正は、1回の転送指示により転送されるセ
ル数が1以上であることに基づく。特に時刻th以降の
最初の転送指示により転送されるセル数についてはHO
Lセル数Hx以上であることに基づく。
4.2.2. Basic Principle Here, the basic principle of the present invention will be described. Management unit 3 of the present invention
01 predicts a change in the number of accumulated cells from the history of transfer instructions. When it is desired to obtain the number of accumulated cells at the time tt in the cell buffer Bx described above, the number of accumulated cells at the time tf in the past is transferred by the transfer instruction during this period using the history of the transfer instruction. Predict and correct the number of cells. The correction is based on the fact that the number of cells transferred by one transfer instruction is 1 or more. Especially, regarding the number of cells transferred by the first transfer instruction after time th, HO
It is based on the fact that the number of L cells is Hx or more.

【0361】4.2.3. 3つの関数 以上の基本原理より修正に使用する3つの関数、f
( )、g( )、Sc()を定める。これらの関数
は、時刻tfから時刻ttにおいてセルバッファBxが
転送指示によるセルの転送でどのくらい変化するかを求
めるものである。tf、ttと比較してthがどのよう
な値であるかにより3通りの場合に分類でき、適用する
関数が異なる。
4.2.3. Three functions Three functions used for modification based on the above basic principle, f
(), G () and Sc () are defined. These functions determine how much the cell buffer Bx changes from the time tf to the time tt due to the transfer of the cell according to the transfer instruction. It can be classified into three cases depending on the value of th as compared with tf and tt, and the applied function is different.

【0362】(1) 関数f( ) 関数f( )は、th=tf<ttの場合に使用する。
この時のタイムチャートを図22に示す。p1[t1、
t2)とする。Hx≠0かつSmx(p1)≠0のとき
は、期間p1の最初の転送指示ではHxセル転送され、
それ以降の転送指示では1セルずつ転送されると考え
る。時刻tfから時刻ttにおいて変化するセルバッフ
ァBxのセル数を計算する関数f( )は、Hxと期間
p1の転送指示回数Smx(p1)を引数として、次の
ように求めることができる。
(1) Function f () The function f () is used when th = tf <tt.
The time chart at this time is shown in FIG. p1 [t1,
t2). When Hx ≠ 0 and Smx (p1) ≠ 0, Hx cells are transferred by the first transfer instruction in the period p1,
Subsequent transfer instructions are considered to be transferred cell by cell. The function f () that calculates the number of cells in the cell buffer Bx that changes from the time tf to the time tt can be obtained as follows using Hx and the transfer instruction count Smx (p1) in the period p1 as arguments.

【0363】[0363]

【数4】 (Equation 4)

【0364】(2) 関数g( ) 関数g( )は、th<tf<ttの場合に使用する。
この時のタイムチャートを図23に示す。p1=[t
1、t2)とし、p2=[t3、t1)とする。
(2) Function g () The function g () is used when th <tf <tt.
The time chart at this time is shown in FIG. p1 = [t
1, t2) and p2 = [t3, t1).

【0365】この場合、時刻th以降に到着した初めて
の転送指示が期間p2に管理部301から出力されたか
否かで場合分けが必要である。期間p2に管理部301
から転送指示が出力されていないから、期間p1におい
てHxの値を用いることができる。時刻tfから時刻t
tにおいて変化するセルバッファBxのセル数を計算す
る関数g( )は、Hxと期間p1、p2の転送指示回
数Smx(p1)、Smx(p2)を引数として、次の
ように求めることができる。
In this case, it is necessary to classify cases depending on whether or not the first transfer instruction arriving after the time th is output from the management section 301 in the period p2. The management unit 301 in the period p2
Since the transfer instruction is not output from, the value of Hx can be used in the period p1. From time tf to time t
The function g () for calculating the number of cells of the cell buffer Bx that changes at t can be obtained as follows using Hx and the transfer instruction counts Smx (p1) and Smx (p2) of the periods p1 and p2 as arguments. .

【0366】[0366]

【数5】 (Equation 5)

【0367】(3) 関数Sc( ) 関数Sc( )は、tf<tt=thの場合に使用す
る。この時のタイムチャートを図24に示す。p1=
[t1、t2)とする。管理部301が知り得る最新の
蓄積セル数は時刻tfのときの値であるが、この場合は
HOLセル数に関しては時刻tfから時刻ttまでの全
ての期間における情報が管理部301にすでに到着して
いる。
(3) Function Sc () The function Sc () is used when tf <tt = th. The time chart at this time is shown in FIG. p1 =
Let [t1, t2). The latest number of accumulated cells that the management unit 301 can know is the value at time tf. In this case, regarding the number of HOL cells, the information in all the periods from time tf to time tt has already arrived at the management unit 301. ing.

【0368】転送指示がセルバッファBxへ到着した時
点のHOLセル数がわかれば、転送されるセル数もわか
ることから、時刻tfから時刻ttにおいて変化するセ
ルバッファのセル数を計算する関数Sc( )は、Ix
(t)、Hx(t)を用い、期間p1を引数として、次
のように求めることができる。
If the number of HOL cells at the time when the transfer instruction arrives at the cell buffer Bx is known, the number of cells to be transferred is also known. Therefore, the function Sc (which calculates the number of cells in the cell buffer changing from time tf to time tt) ) Is Ix
Using (t) and Hx (t), the period p1 can be obtained as an argument as follows.

【0369】[0369]

【数6】 (Equation 6)

【0370】以上説明してきたようなセル数の修正方法
を、例えば、図1に示したようなクラス間の優先制御を
行なうセル多重化装置に適用することは容易である。
It is easy to apply the method of correcting the number of cells as described above to, for example, the cell multiplexer for performing priority control between classes as shown in FIG.

【0371】さらに、例えば、図6に示したようなVC
間公平キューイングを行なうセル多重化装置に、セル数
の修正方法を適用することも容易である。
Further, for example, a VC as shown in FIG.
It is also easy to apply the method of correcting the number of cells to a cell multiplexer that performs fair queuing.

【0372】4.3 第9の実施形態に係るセルバッフ
ァ装置の利点 以上説明したように、上記第9の実施形態によれば、セ
ルバッファとセルバッファを管理する管理部との間に遅
延のあるセルバッファ装置は、転送指示を決定する際に
転送指示の履歴を用いて、セルバッファから伝送されて
きたセル数を、転送指示がセルバッファに作用する時刻
のセル数に修正するため、遅延時間を原因とした性能の
劣化が少ない。
4.3 Advantages of Cell Buffer Device According to Ninth Embodiment As described above, according to the ninth embodiment, there is no delay between the cell buffer and the management unit that manages the cell buffer. A cell buffer device uses a history of transfer instructions when determining a transfer instruction, and corrects the number of cells transmitted from the cell buffer to the number of cells at the time when the transfer instruction acts on the cell buffer. Little deterioration of performance due to time.

【0373】5.セルスイッチ(第10の実施形態) 5.1 第10の実施形態(セルスイッチ) 次に、第10の実施形態として、ここまで説明してきた
本発明に係るセル多重化装置、セルバッファ装置を組み
合わせたセルスイッチについて説明する。
5. Cell Switch (Tenth Embodiment) 5.1 Tenth Embodiment (Cell Switch) Next, as a tenth embodiment, the cell multiplexing device and the cell buffer device according to the present invention described so far are combined. The cell switch will be described.

【0374】図25は、複数の入力ポート#i(i=1
〜N)から入力したセルを一時的に蓄積し、バックプレ
ッシャに応じて出力する複数の入力バッファIBと、内
部の輻輳状態に応じてバックプレッシャ信号を出力する
バックプレッシャ付きセルスイッチ400と、入力バッ
ファIBとの間で情報を転送するカゴ管理部KMとから
なる。
FIG. 25 shows a plurality of input ports #i (i = 1.
-N), a plurality of input buffers IB that temporarily store the cells input from (n) and output according to back pressure, a cell switch 400 with a back pressure that outputs a back pressure signal according to an internal congestion state, and an input It comprises a basket management unit KM that transfers information to and from the buffer IB.

【0375】この構成例において扱うセルは、大きくは
高優先セル、低優先セルの2つの優先度を持ち、さらに
低優先クラスは複数のクラスにわかれている。通常はC
BR、VBRなどのリアルタイム情報を伝送するセルを
高優先セルとし、ABR、UBRなどのノンリアルタイ
ム情報を伝送するセルを低優先セルとする。
The cells handled in this configuration example have two priorities, that is, a high priority cell and a low priority cell, and the low priority class is divided into a plurality of classes. Usually C
A cell that transmits real-time information such as BR and VBR is a high-priority cell, and a cell that transmits non-real-time information such as ABR and UBR is a low-priority cell.

【0376】まず、バックプレッシャ付きセルスイッチ
について説明する。
First, the cell switch with back pressure will be described.

【0377】カゴスイッチの特徴は入力バッファIBと
カゴ管理部KMにある。バックプレッシャ付きセルスイ
ッチ400は入力したセルをある定められた時間内に出
力できればよく、そのアーキテクチャは以下に示すもの
だけではない。例えば、電子情報通信学会技術報告SS
E93−6“バッファ容量拡張可能なATMスイッチ:
XATOM”にて示されているATMスイッチでもよ
い。
The features of the car switch are the input buffer IB and the car management unit KM. The cell switch 400 with back pressure only needs to be able to output an input cell within a predetermined time, and its architecture is not limited to that shown below. For example, IEICE technical report SS
E93-6 "ATM switch with expandable buffer capacity:
An ATM switch shown by "XATOM" may be used.

【0378】図25に示すバックプレッシャ付きセルス
イッチ400を一例として説明する。1段目単位スイッ
チSE1、2段目単位スイッチSE2、出力バッファO
Bからなり、SE1とSE2を並列リンクにて2段デル
タ網接続し、SE2の出力したセルをOBへ転送して出
力ポートへ出力する。SE1からOBの間はk倍速で動
作する。kの値はセルスイッチがノンブロッキングにな
るように定める。例えばSE1、SE2が8入力8出力
の時、全体で16入力16出力とする場合にはk=2と
すればよい。
The cell switch with back pressure 400 shown in FIG. 25 will be described as an example. First stage unit switch SE1, second stage unit switch SE2, output buffer O
B is connected, and SE1 and SE2 are connected in a two-stage delta network by a parallel link, and the cell output from SE2 is transferred to OB and output to the output port. Between SE1 and OB, it operates at k times speed. The value of k is set so that the cell switch is non-blocking. For example, if SE1 and SE2 have 8 inputs and 8 outputs, and 16 inputs and 16 outputs as a whole, k = 2 may be set.

【0379】図25のバックプレッシャ付きセルスイッ
チ400は、高優先セルと低優先セルの2段階の優先度
を扱う構成である。
The cell switch 400 with back pressure shown in FIG. 25 has a structure for handling two levels of priority, that is, a high priority cell and a low priority cell.

【0380】低優先セルの交換にのみ着目すると基本構
成は1995年電子情報通信学会総合大会B−589
“ATM2段スイッチ網のバッファ容量拡張法”にて示
されているものとほぼ等しい。低優先セルは、SE1、
SE2で交換、コピーされる。
Focusing only on the exchange of low-priority cells, the basic configuration is the 1995 IEICE General Conference B-589.
This is almost the same as that shown in the "buffer capacity expansion method for ATM two-stage switch network". The low priority cell is SE1,
Exchanged and copied in SE2.

【0381】低優先セルがOBで輻輳した場合には低優
先セル用バックプレッシャ信号を用いてIBのその出力
ポート行きのセル出力を抑制する。このバックプレッシ
ャ信号により基本的にはOBおよびSE2のバッファを
溢れさせないようにすることが可能である。しかし、マ
ルチキャストセルの影響のためこれらのバッファが溢れ
そうになる場合があり、それに備えて低優先セル用オー
バーフローバックプレッシャ信号がOBからSE2へ出
力し、低優先セル非常用バックプレッシャ信号がSE2
からIBへ出力する。IBが低優先セルを蓄積するので
SE2、OBでは廃棄されない。
When the low-priority cell is congested with OB, the low-priority cell backpressure signal is used to suppress the cell output to the output port of the IB. This back pressure signal can basically prevent the OB and SE2 buffers from overflowing. However, there is a case where these buffers are likely to overflow due to the influence of the multicast cell, and in preparation for this, the overflow back pressure signal for low priority cells is output from OB to SE2, and the back pressure signal for low priority cells emergency is SE2.
To IB. Since the IB stores the low priority cells, they are not discarded in SE2 and OB.

【0382】OBは、低優先セル用オーバーフローバッ
クプレッシャ信号をSE2へ出力する代わりに、これを
低優先セル非常用バックプレッシャ信号としてIBへ出
力する構成でもよい。この場合は、SE2が低優先セル
非常用バックプレッシャ信号を出力する必要はない。し
かし、先に説明したように、低優先セル非常用バックプ
レッシャ信号をSE2から出力した方がSE2内でのバ
ッファ共用化効果を有効に活用できるという利点があ
る。
The OB may output the overflow back pressure signal for low priority cells to SE2 as a low priority cell emergency back pressure signal instead of outputting it to SE2. In this case, SE2 does not need to output the low priority cell emergency back pressure signal. However, as described above, outputting the low-priority cell emergency backpressure signal from SE2 has an advantage that the buffer sharing effect in SE2 can be effectively utilized.

【0383】高優先セルは、低優先セルと同様、SE
1、SE2で交換、コピーされる。高優先セルに関して
はバックプレッシャ付きセルスイッチからIBへのバッ
クプレッシャ信号はない。OBはその高優先セルの輻輳
を反映した高優先セル用バックプレッシャ信号によりS
E2のセル出力を制御する。IBは高優先セルを蓄積し
ない。SE2内に空きバッファが無ければ廃棄されるこ
とがある。
The high-priority cell has the same SE as the low-priority cell.
Exchanged and copied at 1, SE2. For high priority cells, there is no backpressure signal from the cell switch with backpressure to the IB. The OB uses the backpressure signal for the high-priority cell, which reflects the congestion of the high-priority cell, to send S
Control the cell output of E2. The IB does not store high priority cells. If there is no empty buffer in SE2, it may be discarded.

【0384】次に、出力バッファについて説明する。Next, the output buffer will be described.

【0385】図26に、カゴスイッチの出力バッファO
Bの構成例を示す。
FIG. 26 shows the output buffer O of the basket switch.
The structural example of B is shown.

【0386】SE2からOBへ転送されたセルは識別部
410にて優先度を識別され各優先度に対応したキュー
に入れられる。各キューのセルは選択部411により優
先度に従って選択され出力ポートへ出力される。OB
は、低優先セルのキュー長があるしきい値を越えた場合
に低優先セル用バックプレッシャ信号を用いてIBの低
優先セルの、そのOB行きの出力を止める。高優先セル
のキュー長があるしきい値を越えた場合に高優先セル用
バックプレッシャ信号を用いてSE2の高優先セルの、
そのOB行きの出力を止める。低優先セルのマルチキャ
ストセルの影響により低優先セルのキュー長が伸び続け
た場合に備えて低優先セル用オーバーフローバックプレ
ッシャ信号を用いてSE2の低優先セルの、そのOB行
きの出力を止める。
The cell transferred from SE2 to OB has its priority identified by the identification unit 410 and is placed in a queue corresponding to each priority. The cell of each queue is selected by the selection unit 411 according to the priority and output to the output port. OB
When the queue length of the low priority cell exceeds a certain threshold, the low priority cell back pressure signal is used to stop the output of the low priority cell of the IB to the OB. When the queue length of the high-priority cell exceeds a certain threshold, the back-pressure signal for the high-priority cell is used to
Stop the output for that OB. In case the queue length of the low-priority cell continues to grow due to the influence of the multicast cell of the low-priority cell, the overflow back pressure signal for the low-priority cell is used to stop the output of the low-priority cell of SE2 to the OB.

【0387】次に、単位スイッチについて説明する。Next, the unit switch will be described.

【0388】図27に、カゴスイッチに用いる1段目単
位スイッチSE1の構成例を示す。SE1は一般的によ
く知られているスイッチLSIである。入力リンクより
入力したセルに対し、そのセルヘッダを識別部415で
識別して所定の交換処理を行い出力リンクへ出力する。
スイッチ全体がk倍速で動作していることから内部のセ
ルバッファの蓄積セル数は多くならない。これについて
は1994年電子情報通信学会秋季大会B−439“並
列リンクのあるスイッチ網の検討”にて知られている。
FIG. 27 shows an example of the structure of the first-stage unit switch SE1 used for the car switch. SE1 is a generally well-known switch LSI. The cell header input to the cell input from the input link is identified by the identification unit 415, a predetermined exchange process is performed, and the cell is output to the output link.
Since the entire switch operates at k times speed, the number of cells stored in the internal cell buffer does not increase. This is known in the 1994 Autumn Meeting of the Institute of Electronics, Information and Communication Engineers B-439 "Study on Switch Networks with Parallel Links".

【0389】図28に、カゴスイッチに用いる2段目単
位スイッチSE2の構成例を示す。SE2は内部のキュ
ーが出力リンク毎に優先度毎のキューになっている。各
優先度毎のキューの出力は選択部421により選択され
る。高優先セルが存在するときには、低優先セルの有無
に関わらずその出力リンクに高優先セルを出力する。た
だし、選択部421に入力している高優先セル用バック
プレッシャ信号が、高優先セルの出力の禁止を指示して
いる場合は高優先セルを出力せず、低優先セルを出力し
ても良い。低優先セルは低優先セル用オーバーフローバ
ックプレッシャ信号により出力が禁止される場合があ
る。
FIG. 28 shows a structural example of the second-stage unit switch SE2 used for the car switch. In SE2, the internal queue is a queue for each priority for each output link. The output of the queue for each priority is selected by the selection unit 421. When a high-priority cell exists, the high-priority cell is output to the output link regardless of the presence or absence of the low-priority cell. However, when the high-priority cell back pressure signal input to the selection unit 421 indicates that the output of the high-priority cell is prohibited, the high-priority cell may not be output, and the low-priority cell may be output. . Output of the low-priority cells may be prohibited by the low-priority cell overflow backpressure signal.

【0390】SE2は、複数の優先度、複数の出力リン
ク間で物理的なバッファ領域を共有することにより、S
E2内部のバッファを効率的に使用することが可能であ
る。バッファ状態管理部422は各キュー毎のキュー
長、および優先度毎に全ての出力リンク行きのキュー長
を合計した結果などをモニタする。
SE2 shares the physical buffer area among a plurality of priorities and a plurality of output links, so that SE2
It is possible to efficiently use the buffer inside the E2. The buffer status management unit 422 monitors the queue length of each queue and the result of summing the queue lengths for all output links for each priority.

【0391】例えば、高優先セル用キューは各キュー毎
にしきい値を持ち、そのしきい値を越えた場合にそのキ
ューの入力セルを廃棄する。低優先セル用キューは全て
のキュー長の合計をモニタし、しきい値を越えた場合は
低優先セル非常用バックプレッシャ信号により低優先セ
ルの入力を禁止するようにIBに伝える。
For example, the high priority cell queue has a threshold value for each queue, and when the threshold value is exceeded, the input cell of the queue is discarded. The low priority cell queue monitors the total of all queue lengths, and when the threshold value is exceeded, the low priority cell emergency back pressure signal notifies the IB to prohibit the input of the low priority cell.

【0392】SE1はSE2と同じ単位スイッチを使用
してもかまわない。
SE1 may use the same unit switch as SE2.

【0393】図25のバックブレッシャ付きセルスイッ
チ400は2段の単位スイッチSE1とSE2によりセ
ルを交換するが、内部の経路は各入力ポートと出力ポー
トのペアにひとつずつしか定めない。そのため各単位ス
イッチはセルヘッダを見てセルをコピーしつつ交換する
際に複雑な経路の選択アルゴリズムは必要ない。出力ポ
ート数が32ポート程度以下であるなら、セルのヘッダ
に出力ポートのビットマップ情報を付加することが容易
に可能である。SE1、SE2はそのビットマップ情報
に基づいてセルを交換する。
The cell switch 400 with a backbrusher of FIG. 25 exchanges cells by the two-stage unit switches SE1 and SE2, but the internal path is defined only for each pair of input port and output port. Therefore, each unit switch does not need a complicated route selection algorithm when exchanging while copying cells by looking at the cell header. If the number of output ports is about 32 or less, it is possible to easily add the bitmap information of the output ports to the cell header. SE1 and SE2 exchange cells based on the bitmap information.

【0394】次に、入力バッファIBについて説明す
る。
Next, the input buffer IB will be described.

【0395】図29に、カゴスイッチの入力バッファI
Bの構成例を示す。
FIG. 29 shows the input buffer I of the basket switch.
The structural example of B is shown.

【0396】IBに入力した高優先セルは、ユニキャス
ト、マルチキャストとも優先的にSE1へ出力する。そ
のため高優先セルのセル遅延揺らぎは非常に小さい。ま
たIBに高優先セル用のバッファは存在しない。
The high priority cell input to the IB is preferentially output to SE1 for both unicast and multicast. Therefore, the cell delay fluctuation of the high priority cell is very small. Also, there is no buffer for high priority cells in the IB.

【0397】本発明の特徴は低優先セルの処理方法にあ
る。以降、低優先セルについてのみ説明する。
A feature of the present invention is a method of processing a low priority cell. Hereinafter, only low priority cells will be described.

【0398】図29において、入力バッファIBは、主
に、入力したユニキャストセルを一時的にそのセルの出
力ポート毎に蓄積する複数の出力ポート毎ユニキャスト
セル管理部430と、入力したマルチキャストセルを一
時的に蓄積するマルチキャストセル管理部431、およ
びこれらの管理部のセルを選択して入力バッファから出
力する出力ポート選択スケジューラ432を持つ。
In FIG. 29, the input buffer IB is mainly composed of a plurality of unicast cell management units 430 for each output port for temporarily storing the input unicast cell for each output port of the cell, and the input multicast cell. Has a multicast cell management unit 431 for temporarily accumulating data, and an output port selection scheduler 432 for selecting cells of these management units and outputting them from an input buffer.

【0399】出力ポート毎ユニキャストセル管理部43
0は、入力したセルを一時的にそのセルのクラス毎に蓄
積する複数のクラス毎ユニキャストセル管理部433
と、そのクラス毎ユニキャストセル管理部433から出
力したセルを多重化するクラス多重化FIFO434を
持つ。
Unicast cell management unit 43 for each output port
0 is a plurality of unicast cell management units 433 for each class that temporarily stores the input cell for each class of the cell.
And a class multiplexing FIFO 434 for multiplexing the cells output from the unicast cell management unit 433 for each class.

【0400】マルチキャストセル管理部431は、入力
したセルを一時的にそのセルのクラス毎に蓄積する複数
のクラス毎マルチキャストセル管理部435と、そのク
ラス毎マルチキャストセル管理部435から出力したセ
ルを多重化するクラス多重化FIFO436を持つ。
The multicast cell management unit 431 multiplexes a plurality of class-based multicast cell management units 435 for temporarily accumulating the input cells for each class of the cells and the cells output from the class-based multicast cell management unit 435. It has a class multiplexing FIFO 436 for converting into a class.

【0401】出力ポート毎ユニキャストセル管理部43
0、マルチキャストセル管理部431のそれぞれのクラ
ス多重化FIFO434、436より出力するセルは出
力ポート選択スケジューラ432により選択され、入力
バッファIBから出力される。
Unicast cell management unit 43 for each output port
0, cells output from the class multiplexing FIFOs 434 and 436 of the multicast cell management unit 431 are selected by the output port selection scheduler 432 and output from the input buffer IB.

【0402】出力ポート選択スケジューラ432は外部
からの低優先セル用バックプレッシャ信号、低優先セル
非常用バックプレッシャ信号を考慮してセルを選択す
る。
The output port selection scheduler 432 selects a cell in consideration of the low-priority cell backpressure signal and the low-priority cell emergency backpressure signal from the outside.

【0403】クラス毎ユニキャストセル管理部433
は、蓄積されているセルのうち、カゴ管理部KMから出
力を許可されたセルの集合を管理するカゴと呼ばれるキ
ュー(カゴ440)と、それ以外のセルを管理する前カ
ゴと呼ばれるキュー(前カゴ441)を持つ。
Unicast cell management unit 433 for each class
Among the accumulated cells, a queue (cargo 440) called a basket that manages a set of cells permitted to be output by the car management unit KM, and a queue called a pre-cargo that manages other cells (previous It has a basket 441).

【0404】前カゴ441に入ったセルは単位カゴとい
う単位で管理される。図29において前カゴ441、カ
ゴ440内の縦一列が単位カゴを示す。入力したセルは
単位カゴ毎にVC(CG)間で公平に管理される。前カ
ゴ441のセルはカゴ管理部KMの指示により、単位カ
ゴを単位としてカゴ440に転送される。
The cells that have entered the front basket 441 are managed in units called unit baskets. In FIG. 29, the vertical rows in the front basket 441 and the basket 440 represent unit baskets. The input cells are managed fairly among VCs (CGs) for each unit basket. The cell of the front car 441 is transferred to the car 440 in units of a unit car according to an instruction from the car management unit KM.

【0405】カゴ440のセルはカゴ管理部KMの指示
により、セルを単位として転送されクラス多重化FIF
O434で多重化される。
The cells of the basket 440 are transferred in units of cells according to an instruction from the basket management unit KM, and the class multiplexing FIFO is transferred.
It is multiplexed in O434.

【0406】クラス毎マルチキャストセル管理部435
の動作は後述する。
Class-wise multicast cell management unit 435
The operation of will be described later.

【0407】IBの全ての出力ポート、全てのクラスの
キューでセルバッファを共有することにより、有限のバ
ッファ量を有効に活用することが可能である。
By sharing the cell buffer among all the output ports of the IB and the queues of all classes, it is possible to effectively utilize a finite buffer amount.

【0408】IBに到着したセルがIBから出力される
ためには、セルが到着したことをIBからKMへ通知
し、KMがIBからの出力を指示することが必要であ
る。従ってIBとKMの間の情報伝送に遅延がある場合
はその遅延時間だけIBからのセルの出力が遅延する。
しかし遅延時間の大きさは数セル周期程度と考えられる
ため、トラヒック特性に及ぼす影響は少ないと考えられ
る。
In order for a cell arriving at the IB to be output from the IB, it is necessary for the IB to notify the KM that the cell has arrived, and for the KM to instruct output from the IB. Therefore, when there is a delay in the information transmission between the IB and the KM, the cell output from the IB is delayed by the delay time.
However, since the size of the delay time is considered to be about several cell cycles, it is considered that the effect on the traffic characteristics is small.

【0409】ユニキャストセルを出力ポート毎に優先制
御するために、IBには出力ポート毎に、クラス毎ユニ
キャストセル管理部433とクラス多重化FIFO43
4がある。図1のセル多重化装置で説明した優先制御と
基本的に同じ方法を使用する。
In order to give priority control to the unicast cell for each output port, the IB has a unicast cell management unit 433 for each class and a class multiplexing FIFO 43 for each output port.
There are four. Basically, the same method as the priority control described in the cell multiplexer of FIG. 1 is used.

【0410】図1はセル多重化装置であるが、カゴスイ
ッチはセルスイッチでありIBはセルスイッチの入力バ
ッファである。そのためクラス多重化FIFOはひとつ
のIBに全ての出力ポートに対応して複数存在し、その
セルは出力ポート選択スケジューラ434により選択さ
れSE1へ出力される。
Although FIG. 1 shows a cell multiplexer, a car switch is a cell switch and an IB is an input buffer of the cell switch. Therefore, a plurality of class multiplexing FIFOs exist in one IB corresponding to all output ports, and the cells are selected by the output port selection scheduler 434 and output to SE1.

【0411】図1のセル多重化装置のクラス毎セル蓄積
部13は、図29のIBのクラス毎ユニキャストセル管
理部433に相当し、図1のセル多重化装置のクラス多
重化FIFO14は、図29のIBのクラス多重化FI
FO434に相当する。
The class-by-class cell storage unit 13 of the cell multiplexer of FIG. 1 corresponds to the class-by-class unicast cell management unit 433 of FIG. 29, and the class multiplexing FIFO 14 of the cell multiplexer of FIG. IB class multiplexing FI of FIG. 29
Corresponds to FO434.

【0412】図1のセル多重化装置のクラス管理部12
は、図25のKMに対応する。クラス毎ユニキャストセ
ル管理部433からクラス多重化FIFO434へのセ
ルの転送をカゴ管理部KMが指示することにより優先制
御を行なうことができる。
Class management unit 12 of the cell multiplexer of FIG.
Corresponds to KM in FIG. Priority control can be performed by the basket management unit KM instructing transfer of cells from the unicast cell management unit 433 for each class to the class multiplexing FIFO 434.

【0413】マルチキャストセルの優先制御は後述す
る。
Priority control of the multicast cell will be described later.

【0414】ユニキャストセルをクラス毎にVC間公平
キューイングするために、クラス毎ユニキャストセル管
理部433に前カゴ441とカゴ440がある。図6の
セル多重化装置で説明したVC間公平キューイングと基
本的に同じ方法を使用する。
In order to perform fair queuing between VCs of unicast cells for each class, the unicast cell management unit 433 for each class has a front basket 441 and a basket 440. The same method as the inter-VC fair queuing described in the cell multiplexer of FIG. 6 is basically used.

【0415】図6はセル多重化装置であり、かつクラス
も存在しないが、IBはセルスイッチの入力バッファで
ありクラスも存在する。前カゴ441、カゴ440は各
IBについて、全ての出力ポート、全てのクラスに対応
して存在し、そのセルはクラス多重化FIFO434に
より多重化された後、出力ポート選択スケジューラ43
2により選択されSE1へ出力される。
FIG. 6 shows a cell multiplexer and no class, but IB is an input buffer of a cell switch and has a class. For each IB, the front car 441 and the car 440 exist corresponding to all output ports and all classes, and after the cells are multiplexed by the class multiplexing FIFO 434, the output port selection scheduler 43
It is selected by 2 and output to SE1.

【0416】図6のセル多重化装置のカゴ213は、図
29のIBのカゴ440に相当し、図6のセル多重化装
置の同一の時刻までに出力すべきセル集合214が、図
29のIBの単位カゴに相当する。図6のセル多重化装
置のカゴ管理部12は、図25のカゴ管理部KMに相当
する。図29の前カゴ441からカゴ440への単位カ
ゴの転送をカゴ管理部KMが指示することによりVC間
公平キューイングを行なうことができる。
The cell multiplexer 213 of FIG. 6 corresponds to the IB basket 440 of FIG. 29, and the cell set 214 to be output by the same time of the cell multiplexer of FIG. It corresponds to the unit basket of IB. The car management unit 12 of the cell multiplexer of FIG. 6 corresponds to the car management unit KM of FIG. Fair queuing between VCs can be performed by the car management unit KM instructing the transfer of the unit car from the front car 441 to the car 440 in FIG.

【0417】マルチキャストセルのVC間公平キューイ
ングは後述する。
Inter-VC fair queuing of multicast cells will be described later.

【0418】ユニキャストセルをIB内でVC間公平キ
ューイングするために、クラス毎ユニキャストセル管理
部433に前カゴ441とカゴ440がある。図10の
セルグループFIFO232aのポインタチェーンによ
るデータ構造例で説明した方法と基本的に同じ方法を使
用する。
In order to perform fair queuing of unicast cells between VCs in the IB, the unicast cell management unit 433 for each class has a front basket 441 and a basket 440. The same method as the method described in the example of the data structure by the pointer chain of the cell group FIFO 232a in FIG. 10 is basically used.

【0419】図10のセルグループFIFO232a
が、図29のIBの前カゴ441に相当し、図10の出
力待ちセルグループFIFO232bが、図29のIB
のカゴ440に相当する。また、図10のセルグループ
は図29のIBの単位カゴに相当する。
The cell group FIFO 232a of FIG.
Corresponds to the front basket 441 of the IB of FIG. 29, and the output waiting cell group FIFO 232b of FIG.
It is equivalent to the basket 440 of. The cell group of FIG. 10 corresponds to the unit basket of IB of FIG.

【0420】次に、図30を参照して、入力バッファI
Bのキューイング処理について説明する。
Next, referring to FIG. 30, the input buffer I
The queuing process of B will be described.

【0421】セルは、まず前カゴ441に蓄積され、そ
の後単位カゴを単位としてカゴ440に転送される。カ
ゴ440のセルはセルを単位としてカゴ440から出力
される。それぞれのきっかけについてはカゴ管理部KM
が指示を行なう。
The cells are first accumulated in the front car 441 and then transferred to the car 440 in units of unit car. The cells of the basket 440 are output from the basket 440 in units of cells. For each of the triggers, the basket management department KM
Gives instructions.

【0422】この構成例では、全てのVCは、あるコネ
クショングループ(CG)に所属する。コネクショング
ループの概念を持つことにより複数のVCにひとつのリ
ソース(帯域やセルバッファ)を共有させることが可能
となる。例えば、離れたふたりのユーザ間の通信に対し
て1本のVC分の課金しか行なわないときに、そのふた
りのユーザ間に複数のVCを設定する自由度を与えるこ
とが可能となる。もしくは、VC数に応じて公平な帯域
の割当を行なう網において、あるふたりのユーザが多数
のVCを設定して不当に大きな帯域を得ようとすること
を防止することが可能となる。
In this configuration example, all VCs belong to a certain connection group (CG). By having the concept of a connection group, it becomes possible for a plurality of VCs to share one resource (bandwidth or cell buffer). For example, when only one VC is charged for communication between two remote users, it is possible to give the two users the flexibility to set a plurality of VCs. Alternatively, in a network in which fair bandwidth allocation is performed according to the number of VCs, it is possible to prevent two users from setting a large number of VCs and trying to obtain an unreasonably large bandwidth.

【0423】前カゴ441においてセルをどの単位カゴ
にいれるかを決定するためにVCテーブルとCGテーブ
ルを使用する。
The VC table and the CG table are used to determine in which unit basket the cell is placed in the front basket 441.

【0424】VCテーブルを用いて入力したセルのコネ
クション識別子(例えばVC4)からコネクショングル
ープ識別子(例えばCG5)を知ることができる。CG
テーブルを用いてコネクションクループ識別子からCG
毎に定められた値を知ることができる。この構成例にお
けるCG毎の値はNx 、Nc 、Ptr、Qlen 、Cnt1、
Cnt2、Cnt3、BPIDt である。
The connection group identifier (eg CG5) can be known from the cell connection identifier (eg VC4) input using the VC table. CG
CG from connection group identifier using table
It is possible to know the value set for each. The values for each CG in this configuration example are Nx, Nc, Ptr, Qlen, Cnt1,
Cnt2, Cnt3 and BPIDt.

【0425】Nx 、Nc 、Ptr、Qlen は、図10のセ
ルグループFIFOのポインタチェーンによるデータ構
造例で説明した。Nx はそのCGの重み、Nc は作業変
数、Qlen はそのCGの蓄積セル数、PtrはそのCGの
セルが蓄積されている単位カゴの末尾へのポインタであ
る。
Nx, Nc, Ptr, and Qlen have been described in the data structure example by the pointer chain of the cell group FIFO in FIG. Nx is a weight of the CG, Nc is a work variable, Qlen is the number of accumulated cells of the CG, and Ptr is a pointer to the end of the unit basket in which the cells of the CG are accumulated.

【0426】一方、Qlen 、Cnt1、Cnt2、Cnt3、
BPIDt は、図15および図16のバックプレッシャ
考慮キュー監視部を持つセルバッファ装置で説明した。
On the other hand, Qlen, Cnt1, Cnt2, Cnt3,
BPIDt has been described in the cell buffer device having the back pressure consideration queue monitoring unit in FIGS. 15 and 16.

【0427】Qlen はそのCGの蓄積セル数、Cnt1は
廃棄すべきセル数、BPIDt は最後のセル入力時のバ
ックプレッシャ識別子である。よりきめの細かいキュー
監視を行なうためCnt1と同じ機能を持つ変数Cnt2、
Cnt3が存在する。それぞれキュー長監視のしきい値が
異なる。Cnt2はセルヘッダ内にあるCLP(Cell
Loss Priority:セル廃棄優先)ビット
が低優先(CLP=1)であるセル用の廃棄すべきセル
数、Cnt3はこのキュー長監視において輻輳かどうかを
判定するために使用する値である。輻輳かどうかの情報
は、例えばセルヘッダ内にあるEFCIをマークするか
どうかや、RMセルの輻輳表示ビットをマークするかど
うかを決定するために用いる。
Qlen is the number of cells stored in the CG, Cnt1 is the number of cells to be discarded, and BPIDt is the backpressure identifier at the time of the last cell input. A variable Cnt2, which has the same function as Cnt1 in order to perform finer queue monitoring,
Cnt3 is present. The thresholds for queue length monitoring differ. Cnt2 is a CLP (Cell
Loss Priority (cell discard priority) The number of cells to discard for cells with low priority (CLP = 1) bit, Cnt3 is a value used to determine whether there is congestion in this queue length monitoring. The congestion information is used to determine, for example, whether to mark the EFCI in the cell header and whether to mark the congestion indicator bit of the RM cell.

【0428】あるクラスでVC間公平キューイングを行
なわない設定をすることも可能である。その場合は、そ
のVCが所属するCGのNx を十分大きな値に設定すれ
ばよい。
It is possible to set not to perform fair queuing between VCs in a certain class. In that case, Nx of the CG to which the VC belongs may be set to a sufficiently large value.

【0429】さて、図25に示すバックプレッシャ付き
セルスイッチは、IBからOBまでのセル伝送の遅延時
間が大きいことなどの影響により、低優先セル用バック
プレッシャ信号が出力可能と出力禁止を繰り返す周期が
比較的大きい。従ってIBのCG毎のキュー長Qlen を
観測すると、主に低優先セルバックプレッシャ信号に同
期して図14の様に振動を繰り返す。この様に、バック
プレッシャ信号により振動するキュー長の監視には、図
15、図16で説明したバックプレッシャ考慮キュー長
監視アルゴリズムが適している。
The cell switch with backpressure shown in FIG. 25 has a cycle in which the low-priority cell backpressure signal is output enabled and output is repeatedly disabled due to the large delay time of cell transmission from IB to OB. Is relatively large. Therefore, when the queue length Qlen of each IB CG is observed, the oscillation is repeated as shown in FIG. 14 mainly in synchronization with the low-priority cell back pressure signal. As described above, the back pressure consideration queue length monitoring algorithm described in FIGS. 15 and 16 is suitable for monitoring the queue length that vibrates due to the back pressure signal.

【0430】前カゴ441のとカゴ440に蓄積されて
いるセルのクラス全体の合計セル数についてもバックプ
レッシャ考慮キュー長監視により入力セルの廃棄やEF
CIのマークなどを行なって、一部のクラスがIBのバ
ッファ領域の大半を独占することを防ぐことが可能であ
る。
Also regarding the total number of cells in the entire class of cells accumulated in the front car 441 and the car 440, the back pressure is taken into consideration and the input cell is discarded or the EF is detected by the queue length monitoring.
It is possible to mark some CIs and prevent some classes from monopolizing most of the IB buffer area.

【0431】図31に、カゴスイッチに用いる入力バッ
ファIBのカゴ管理部KMとのインタフェースの一例を
示す。
FIG. 31 shows an example of an interface with the car management unit KM of the input buffer IB used for the car switch.

【0432】KMから各出力ポートのそれぞれに対し、
以下に示すような各出力ポート毎の情報が入力される。
For each output port from KM,
The following information for each output port is input.

【0433】−ABR入力セル数 −指示クラス −前カゴからカゴへ単位カゴの転送指示(図31の転送
指示T1) −カゴからクラス多重化FIFOへセルの転送指示(図
31の転送指示T2) ABR入力セル数はABR処理部450へ転送される。
ABR処理部450は、ABR入力セル数を知ることに
よりそのIBとペアの出力ポートに流入するトラヒック
をモニタすることができる。その情報を用いてIBを通
過するRMセルのペイロードの書き換えなどを行なう。
-Number of ABR input cells-Instruction class-Instruction transfer from previous basket to basket (transfer instruction T1 in FIG. 31) -Transfer instruction from car to class multiplexing FIFO (transfer instruction T2 in FIG. 31) The number of ABR input cells is transferred to the ABR processing unit 450.
By knowing the number of ABR input cells, the ABR processing unit 450 can monitor the traffic flowing into the output port of the IB and the pair. The information is used to rewrite the payload of the RM cell passing through the IB.

【0434】カゴ440からクラス多重化FIFO43
4へセルの転送をKMから指示されると、IBは指示ク
ラスのユニキャストのカゴ440からセルをひとつ取り
だしクラス多重化FIFO434に転送する。また前カ
ゴ441からカゴ440へ単位カゴの転送指示がある
と、IBは指示クラスのユニキャストの前カゴ441か
ら単位カゴをひとつ取りだしカゴ440に転送するとと
もに、カゴ440からセルをひとつ取りだしクラス多重
化FIFO434に転送する。
[0434] The class multiplexing FIFO 43 from the basket 440
4 is instructed by the KM to transfer a cell, the IB takes out one cell from the unicast basket 440 of the instructed class and transfers it to the class multiplexing FIFO 434. Further, when there is an instruction to transfer a unit car from the front car 441 to the car 440, the IB takes out one unit car from the front car 441 of the unicast of the instruction class and transfers it to the car 440, and also takes out one cell from the car 440 and performs the class multiplexing. Transfer to the FIFO 434.

【0435】単位カゴの転送指示をそのクラスのセルの
転送指示を行なう時のみに限定することにより、転送指
示の情報量を減らし、より容易に実装することができ
る。
By limiting the transfer instruction of the unit basket only when the transfer instruction of the cell of the class is given, the information amount of the transfer instruction can be reduced and the mounting can be implemented more easily.

【0436】IB内で前カゴ441、カゴ440、クラ
ス多重化FIFO434のセル数が変化するのは、IB
へセルが入力した時、KMが転送指示を行なった時、I
Bからセルが出力した時である。従って、それに応じて
セル数情報をKMへ出力する。ひとつのIBがKMへ出
力する情報は、以下のものである。
The number of cells in the front car 441, the car 440, and the class multiplexing FIFO 434 in the IB changes depending on the IB.
When a cell is input to KM, when KM issues a transfer instruction, I
It is when the cell is output from B. Therefore, the cell number information is output to the KM accordingly. The information output from one IB to the KM is as follows.

【0437】各出力ポート毎に、入力したセルについて
(ユニキャストの場合はひとつの出力ポートについての
み出力)、 −入力セルの有無とクラス 各出力ポート毎に、転送の指示クラスについて、 −(転送後の)前カゴセル数(図31のCE1) −(転送後の)カゴセル数(図31のCE2) −クラス多重化FIFOへの転送セル数(図31のCE
3) 各出力ポート毎に、ユニキャストのみの、 −クラス多重化FIFOセル数(図31のCE4) 図31を用いて説明する。入力したセルの情報はIBか
らKMへ入力セルの有無とクラスとして伝送される。ま
た、ユニキャストとマルチキャストの前カゴセル数が加
算され、クラス選択部L5により転送の指示クラスで選
択されたものが前カゴセル数として伝送される。さら
に、ユニキャストとマルチキャストのカゴセル数が加算
され、クラス選択部L6において指示クラスで選択され
たものがカゴセル数となり伝送される。そして転送指示
によりカゴからクラス多重化FIFO434へ移動した
セル数はユニキャストとマルチキャストとが加算され、
クラス選択部L7において指示クラスで選択されて伝送
される。クラス多重化FIFOセル数はユニキャストに
ついてのみKMへ伝送される。マルチキャストのクラス
多重化FIFOセル数は、クラス毎マルチキャストセル
管理部435からのセルの出力を制御するためのバック
プレッシャ信号として使用する。
Regarding input cells for each output port (in the case of unicast, only one output port is output):-Presence or absence of input cell and class For each output port, regarding transfer instruction class,-(transfer Previous number of cargo cells (after) (CE1 in FIG. 31) -Number of cargo cells (after transfer) (CE2 in FIG. 31) -Number of transfer cells to class multiplexing FIFO (CE in FIG. 31)
3) Only unicast for each output port-Number of class multiplexed FIFO cells (CE4 in FIG. 31) Explanation will be given using FIG. The input cell information is transmitted from the IB to the KM as the presence / absence of an input cell and the class. In addition, the number of previous cargocells for unicast and multicast is added, and the one selected in the transfer instruction class by the class selection unit L5 is transmitted as the number of previous cargocells. Further, the unicast and multicast cargo cell numbers are added, and the one selected in the instruction class in the class selection unit L6 becomes the cargo cell number and is transmitted. Then, the number of cells moved from the basket to the class multiplexing FIFO 434 by the transfer instruction is added by unicast and multicast,
The class selection unit L7 selects and transmits the selected class. The number of class multiplexed FIFO cells is transmitted to the KM only for unicast. The number of multicast class multiplexing FIFO cells is used as a back pressure signal for controlling the cell output from the class-based multicast cell management unit 435.

【0438】マルチキャストのクラス多重化FIFO4
36は複数の出力バッファOBからのバックプレッシャ
信号により出力が制御されていることなどから、クラス
多重化FIFOセル数がゼロでなくともセルスイッチの
出力ポートがアンダフローする可能性がある。ユニキャ
ストセルがその影響を受けてアンダフローしないよう
に、この構成例ではユニキャストのクラス多重化FIF
Oセル数とは加算していない。
Multicast Class Multiplexing FIFO4
Since the output of 36 is controlled by back pressure signals from a plurality of output buffers OB, the output port of the cell switch may underflow even if the number of class multiplexing FIFO cells is not zero. In order to prevent the unicast cell from underflowing under the influence of this, the unicast class multiplexing FIF is used in this configuration example.
It is not added to the number of O cells.

【0439】ここで、マルチキャストセルの優先制御お
よびVC間公平キューイングについて説明する。
Now, priority control of multicast cells and fair queuing between VCs will be described.

【0440】マルチキャストVCをスループットの視点
で考える。一般的に、ある時点のセルスイッチの状態を
考えると、その複数の出力ポートには、輻輳している出
力ポートもあれば、負荷が低い出力ポートもある。つま
り、VCが使用できるスループットは出力ポートによっ
て異なることになる。マルチキャストVCは、ひとつの
入力ポートから複数の出力ポートへ同じスループットが
同時に出力されるから、そのマルチキャストVCが得る
ことのできるスループットは出力先の中で最も輻輳して
いる出力ポートのスループットになるのがよい。従っ
て、IBからマルチキャストセルを出力する場合は、最
も輻輳している出力ポートのスループットで出力するこ
とが望ましい。
Consider the multicast VC from the viewpoint of throughput. In general, considering the state of the cell switch at a certain point in time, some of the plurality of output ports are congested and some are lightly loaded. That is, the throughput that the VC can use differs depending on the output port. Since the same throughput is simultaneously output from one input port to a plurality of output ports in the multicast VC, the throughput that the multicast VC can obtain is the throughput of the most congested output port among the output destinations. Is good. Therefore, when outputting a multicast cell from the IB, it is desirable to output at the throughput of the most congested output port.

【0441】ある出力ポートのあるクラスに与えられる
VC(CG)あたりのスループットを、IBは前カゴ4
41からカゴ440への単位カゴの転送指示の頻度より
知ることができる。また、ある出力ポートのあるクラス
に与えられるスループットを、IBはカゴ440からク
ラス多重化FIFO434へのセルの転送指示の頻度よ
り知ることができる。さらにある出力ポートに与えられ
るスループットを、IBは低優先セル用バックプレッシ
ャ信号の頻度より知ることができる。これらの転送指示
やバックプレッシャ信号は出力ポート毎に与えられる。
The throughput per VC (CG) given to a class with a certain output port is calculated by the IB as the front basket 4.
It can be known from the frequency of the instruction to transfer the unit basket from 41 to the basket 440. The IB can know the throughput given to a certain class of a certain output port from the frequency of cell transfer instruction from the basket 440 to the class multiplexing FIFO 434. Furthermore, the IB can know the throughput given to a certain output port from the frequency of the back pressure signal for low priority cells. These transfer instructions and back pressure signals are given to each output port.

【0442】最も輻輳している出力ポートのスループッ
トで出力するためには、マルチキャストセルを、そのセ
ルの出力ポートの全てに関してこれらの信号が指示また
は許可した時点で転送すればよい。複数の出力ポートへ
の指示または許可は同時である必要はない。
In order to output at the throughput of the most congested output port, the multicast cell may be transferred at the time when these signals indicate or permit all of the output ports of the cell. Instructions or permits to multiple output ports need not be simultaneous.

【0443】IBにおいて、低優先マルチキャストVC
を管理する場合、本来そのクラス毎かつ出力ポートパタ
ーン毎に管理することが望ましいのであるが、一般的に
はその組合せの数は大きく、また通信中にその出力ポー
ト数が増減する可能性があるため、その様な実装は現実
的ではない。図25に示すようなカゴスイッチでは全て
のマルチキャストコネクションをクラス毎にのみ管理
し、出力ポートパターン毎での管理はしない。ある程度
のHOL(Head Of Line)ブロッキングが
発生することになる。
In IB, low priority multicast VC
It is desirable to manage each class and each output port pattern, but in general, the number of combinations is large, and the number of output ports may increase or decrease during communication. Therefore, such an implementation is not realistic. In the cage switch as shown in FIG. 25, all multicast connections are managed only for each class, and not for each output port pattern. A certain amount of HOL (Head Of Line) blocking will occur.

【0444】図32は、クラス毎マルチキャストセル管
理部435を説明するための図である。この管理部は、
出力ポート表、VC間公平キュー、単位カゴセル数、カ
ゴセル数、出力許可済みセル数を保持し、管理するもの
である。
FIG. 32 is a diagram for explaining the multicast cell management unit 435 for each class. This management department
It holds and manages the output port table, the VC fair queue, the number of unit cells, the number of cells, and the number of output-permitted cells.

【0445】クラス毎ユニキャストセル管理部433が
前カゴとカゴでセルを管理していたのに対して、クラス
毎マルチキャストセル管理部435は前カゴに相当する
VC間公平キュー460のみによりセルを管理する。た
だ本発明のクラス毎マルチキャストセル管理部435
は、管理の計算上では前カゴ、カゴの概念を用いてユニ
キャストと同様のセル管理を行なう。
The class-specific unicast cell management unit 433 manages cells by the previous car and the car, whereas the class-based multicast cell management unit 435 manages cells only by the inter-VC fair queue 460 corresponding to the previous car. to manage. However, the class-based multicast cell management unit 435 of the present invention
Performs the same cell management as unicast by using the concept of the front cage and the cage in the calculation of management.

【0446】クラス毎マルチキャストセル管理部435
は、出力ポート毎に次の情報を入力する。
Multicast cell management unit 435 for each class
Inputs the following information for each output port.

【0447】・前カゴからカゴへの単位カゴ転送指示 ・カゴからクラス多重化FIFOへのセル転送指示 また出力ポート毎に次の情報を出力する。Instruction for transferring unit car from previous car to instruction for cell transfer from car to class multiplexing FIFO Also output the following information for each output port.

【0448】・前カゴセル数 ・カゴセル数 ・転送セル数 VC間公平キュー460は単位カゴのFIFOである。
VC間公平キュー460に入力したセルは、各VC(C
G)についてひとつの単位カゴに予め定められた数まで
しか入力できない。この構成は図30で説明したユニキ
ャストの前カゴの構成と同様である。クラス多重化FI
FO436からバックプレッシャ信号が入力しており、
状況によってVC間公平キュー460からのセル出力を
禁止する。
-Number of previous basket cells-Number of basket cells-Number of transfer cells The inter-VC fair queue 460 is a FIFO of a unit basket.
The cell input to the inter-VC fair queue 460 is assigned to each VC (C
Regarding G), only a predetermined number can be entered in one unit basket. This configuration is the same as the configuration of the unicast front basket described in FIG. Class multiplexing FI
The back pressure signal is input from FO436,
Depending on the situation, the cell output from the inter-VC fair queue 460 is prohibited.

【0449】出力ポート表は、出力ポート別に、前カゴ
セル数と先頭単位カゴへのポインタを記憶する。前カゴ
セル数は単位カゴセル数の合計、先頭単位カゴは計算上
の前カゴの先頭の単位カゴへのポインタである。
The output port table stores the number of previous car cells and a pointer to the head unit car for each output port. The number of front car cells is the total number of unit car cells, and the head unit car is a pointer to the head unit car of the calculated front car.

【0450】単位カゴセル数はVC間公平キュー460
の単位カゴに対応して出力ポート毎のデータを記憶す
る。基本的には対応する単位カゴに蓄積しているマルチ
キャストセルの出力ポート毎のセル数を記憶する。例え
ば、図32のVC間公平キュー460の先頭の単位カゴ
には5セル蓄積されている。そのうち、ポート#1とポ
ート#Nに出力するセルが3セル、ポート#1とポート
#2に出力するセルが2セルあるので、単位カゴセル数
のポート#1には5、ポート#2には2、ポート#Nに
は3が記憶される。
[0450] The unit basket number is the VC fair queue 460.
The data for each output port is stored corresponding to the unit basket of. Basically, the number of cells for each output port of the multicast cells stored in the corresponding unit basket is stored. For example, 5 cells are stored in the head unit basket of the VC fair queue 460 of FIG. Among them, there are 3 cells that output to port # 1 and port #N, and 2 cells that output to port # 1 and port # 2, so 5 for port # 1 and 5 for port # 2 of the unit cargo cell number. 2 and 3 are stored in port #N.

【0451】カゴセル数は計算上のカゴのセル数であ
る。また、出力許可済みセル数は計算上の出力を許可さ
れたセル数である。
The number of basket cells is the number of basket cells in calculation. The number of output-permitted cells is the number of cells whose output is calculated.

【0452】ある出力ポートに対して単位カゴ転送を指
示された場合、その出力ポートの先頭単位カゴの単位カ
ゴセル数をカゴセル数に加算し、単位カゴセル数をゼロ
にする。さらにその出力ポートのカゴセル数から1を減
算して出力許可済みセル数に1を加算する。そして出力
ポート表の先頭単位カゴのポインタをVC間公平キュー
460の次の単位カゴへひとつ進める。このときの転送
セル数は1セルである。
When the unit car transfer is instructed to a certain output port, the unit car cell number of the head unit car of the output port is added to the car cell number, and the unit car cell number is set to zero. Further, 1 is subtracted from the number of cage cells of the output port and 1 is added to the number of output-permitted cells. Then, the pointer of the head unit car of the output port table is advanced to the next unit car of the inter-VC fair queue 460. The number of transfer cells at this time is one cell.

【0453】先頭単位カゴのポインタを進めることによ
り、ポインタはVC間公平キュー460の先頭の単位カ
ゴから離れていく。この距離に上限を設け、ある距離に
なったら単位カゴ転送指示を無視してポインタを進めな
いように制御する。これは、単位カゴの転送が指示され
た時刻と実際にセルを出力する時刻との差を大きくしな
いようにする効果がある。
By advancing the pointer of the head unit car, the pointer moves away from the head unit car of the inter-VC fair queue 460. An upper limit is set for this distance, and at a certain distance, the unit basket transfer instruction is ignored and the pointer is controlled so as not to advance. This has the effect of not increasing the difference between the time when the transfer of the unit basket is instructed and the time when the cell is actually output.

【0454】ある出力ポートに対してKMからセル転送
が指示された場合、その出力ポートのカゴセル数から1
を減算して出力許可済みセル数に1を加算する。このと
きの転送セル数は1セルである。
When a cell transfer is instructed from a KM to an output port, 1 from the number of cage cells of the output port.
Is subtracted and 1 is added to the number of output-permitted cells. The number of transfer cells at this time is one cell.

【0455】クラス多重化FIFO436からのバック
プレッシャ信号が出力を許可している時、セルをVC間
公平キュー460から出力することができる。その際、
そのセルの全ての出力ポートについて出力許可済みセル
数を1ずつ減算する。出力許可済みセル数がゼロの出力
ポートが存在する場合は減算できないので、そのセルは
まだ出力できない。
When the back pressure signal from the class multiplexing FIFO 436 permits the output, the cell can be output from the inter-VC fair queue 460. that time,
The number of output-permitted cells is subtracted by 1 for all output ports of the cell. If there is an output port with the number of output-permitted cells of zero, it cannot be subtracted, so that cell cannot be output yet.

【0456】出力許可済みセル数は単位カゴ転送指示お
よびセル転送指示により増加する。ある出力ポートの出
力許可済みセル数がある値以上になった場合には、その
出力ポートについて、クラス毎マルチキャストセル管理
部435から出力する前カゴセル数とカゴセル数をゼロ
とし、単位カゴ転送指示とセル転送指示を無視する。こ
れは実際のセルの転送スループット以上の転送指示を無
視する効果がある。
The number of output-permitted cells is increased by the unit basket transfer instruction and the cell transfer instruction. If the number of output-permitted cells of a certain output port exceeds a certain value, the number of previous cage cells and the number of cage cells output from the class-based multicast cell management unit 435 is set to zero for that output port, and a unit cage transfer instruction is issued. Ignore cell transfer instructions. This has the effect of ignoring transfer instructions above the actual cell transfer throughput.

【0457】次に、図33〜図39を参照して、クラス
毎マルチキャストセル管理部の動作について説明する。
Next, the operation of the class-specific multicast cell management section will be described with reference to FIGS.

【0458】図32の状態から、出力ポート#1に対し
て単位カゴの転送をKMから指示された場合の動作を図
33に示す。ポート#1の先頭単位カゴの単位カゴセル
数をカゴセル数に加算し、単位カゴセル数ゼロにする。
さらにポート#1のカゴセル数から1を減算して出力許
可済みセル数に1を加算する。KMへの転送セル数は出
力ポート#1に関して1セルである。
FIG. 33 shows the operation when the KM instructs the output port # 1 to transfer the unit basket from the state shown in FIG. The number of unit cargo cells of the first unit cargo of port # 1 is added to the number of cargo cells to make the unit cargo cell number zero.
Further, 1 is subtracted from the number of cage cells of port # 1 and 1 is added to the number of output-permitted cells. The number of cells transferred to the KM is 1 cell for the output port # 1.

【0459】出力ポート表の先頭単位カゴのポインタを
VC間公平キュー460の次の単位カゴへひとつ進め
る。
The pointer of the head unit car of the output port table is advanced to the next unit car of the inter-VC fair queue 460.

【0460】さらに、出力ポート#1に対してセルの転
送をKMから指示された場合の動作を図34に示す。ポ
ート#1のカゴセル数から1を減算して出力許可済みセ
ル数に1を加算する。KMへの転送セル数は出力ポート
#1に関して1セルである。
Further, FIG. 34 shows the operation when the cell transfer is instructed to the output port # 1 by the KM. Subtract 1 from the number of cage cells of port # 1 and add 1 to the number of output-permitted cells. The number of cells transferred to the KM is 1 cell for the output port # 1.

【0461】図34のVC間公平キュー460の先頭の
セルの出力ポートは#1と#Nである。出力許可済みセ
ル数は出力ポート#1に関してはゼロでない(=2)
が、出力ポート#Nに関してはゼロであるのでまだセル
を出力することはできない。
The output ports of the head cell of the inter-VC fair queue 460 of FIG. 34 are # 1 and #N. The number of output permitted cells is not zero for output port # 1 (= 2)
However, since the output port #N is zero, the cell cannot be output yet.

【0462】セルが到着した時の動作を図35に示す。
到着したセルの出力ポートは#1と#Nである。またこ
のセルは今までにVC間公平キュー460に蓄積してい
なかったVCのセルであるとする。この場合セルはVC
間公平キュー460の先頭の単位カゴに入力される。
FIG. 35 shows the operation when a cell arrives.
The output ports of the arriving cells are # 1 and #N. It is also assumed that this cell is a VC cell that has not been stored in the inter-VC fair queue 460 so far. In this case, the cell is VC
It is input to the first unit basket of the fair fair queue 460.

【0463】セルを入力したとき、そのセルの全ての出
力ポートの単位カゴセル数を1ずつ加算する。加算する
単位カゴは出力ポート毎に決定する。基本的にはセルを
入力した単位カゴに1を加えるが、出力ポート表の先頭
単位カゴがセルを入力した単位カゴよりも後ろにある場
合は出力ポート表の先頭単位カゴが指している単位カゴ
セル数に1を加える。従って、図35では出力ポート#
1については先頭単位カゴが指している2番目の単位カ
ゴの単位カゴセル数に1を加算する。出力ポート#Nに
ついてはセルを入力した単位カゴである1番目の単位カ
ゴの単位カゴセル数に1を加算する。
When a cell is input, the unit cage cell numbers of all output ports of the cell are incremented by one. The unit basket to be added is determined for each output port. Basically, 1 is added to the unit basket where the cell is input, but if the head unit basket of the output port table is after the unit basket where the cell is input, the unit basket cell pointed to by the head unit basket of the output port table Add 1 to the number. Therefore, in FIG. 35, the output port #
As for 1, 1 is added to the number of unit car cells of the second unit car pointed to by the head unit car. For the output port #N, 1 is added to the number of unit car cells of the first unit car which is the unit car into which the cell is input.

【0464】さらに、またセルが到着した時の動作を図
36に示す。新たに到着したセルの出力ポートは#1と
#2である。またこのセルは現在VC間公平キュー46
0にセルが蓄積しているVCのセルであるとする。図3
6の場合このセルはVC間公平キュー460の末尾に新
たに単位カゴを設け、その単位カゴに入力した。
Furthermore, FIG. 36 shows the operation when a cell arrives again. The output ports of the newly arrived cells are # 1 and # 2. Also, this cell is currently the fair queue between VCs 46
It is assumed that the cell is a cell of VC in which the cell is stored in 0. FIG.
In the case of 6, a new unit basket is newly provided at the end of the inter-VC fair queue 460, and the cell is input to the unit basket.

【0465】さらに、図37に出力ポート#Nに対して
単位カゴの転送をKMから指示された場合の動作を示
す。ポート#Nの先頭単位カゴの単位カゴセル数をカゴ
セル数に加算し、単位カゴセル数ゼロにする。さらにポ
ート#Nのカゴセル数から1を減算して出力許可済みセ
ル数に1を加算する。KMへの転送セル数は出力ポート
#Nに関して1である。出力ポート表の先頭単位カゴの
ポインタをVC間公平キュー460の次の単位カゴへひ
とつ進める。
Further, FIG. 37 shows the operation when the KM instructs the output port #N to transfer the unit basket. The unit car cell number of the head unit car of port #N is added to the car cell number to make the unit car cell number zero. Further, 1 is subtracted from the number of cage cells of port #N and 1 is added to the number of output-permitted cells. The number of cells transferred to KM is 1 for output port #N. The pointer of the head unit car of the output port table is advanced to the next unit car of the VC fair queue 460.

【0466】VC間公平キュー460の先頭のセルの出
力ポートが#1と#Nであり、その#1と#Nの出力許
可済みセル数がそれぞれ1以上(具体的には2と1)に
なったため、クラス多重化FIFO436が許可すれば
そのセルを出力できる。
The output ports of the first cell of the inter-VC fair queue 460 are # 1 and #N, and the number of output-permitted cells of # 1 and #N is 1 or more (specifically, 2 and 1). Therefore, if the class multiplexing FIFO 436 permits, the cell can be output.

【0467】図38にセルを出力した場合の状態を示
す。出力セルの出力ポートに対応する出力許可済みセル
数を1ずつ減算する。
FIG. 38 shows a state in which a cell is output. The number of output-permitted cells corresponding to the output port of the output cell is subtracted by one.

【0468】図39に、以上のようにして連続して単位
カゴ、カゴの転送が指示され、合計6セル出力したとき
の状態を示す。VC間公平キュー460の先頭の単位カ
ゴはこの時点で空になり、その単位カゴおよび単位カゴ
セル数は消滅する。必然的に出力ポート表の先頭単位カ
ゴがこの消失した単位カゴを指していることはない。次
に、図40を参照して、出力ポート選択スケジューラ4
32について説明する。
FIG. 39 shows a state in which the unit basket and the basket transfer are successively instructed as described above, and a total of 6 cells are output. The unit car at the head of the inter-VC fair queue 460 becomes empty at this point, and the unit car and the number of unit car cells disappear. Inevitably, the head unit basket of the output port table does not point to this lost unit basket. Next, referring to FIG. 40, the output port selection scheduler 4
32 will be described.

【0469】出力ポート選択スケジューラ432に入力
する、出力ポート毎のユニキャスト出力待ちセルとマル
チキャスト出力待ちセルをセル選択部470が選択して
出力ポート選択スケジューラ432から出力する。セル
選択部470の選択の候補となるセルは、出力待ちセル
のうち許可されたセルである。
The cell selection unit 470 selects a unicast output waiting cell and a multicast output waiting cell for each output port, which are input to the output port selection scheduler 432, and output from the output port selection scheduler 432. A cell that is a candidate for selection by the cell selection unit 470 is a permitted cell among output waiting cells.

【0470】ユニキャストセルは、ユニキャストセル出
力許可信号生成部471が出力するユニキャストセル出
力許可信号により出力が許可される。
The output of the unicast cell is permitted by the unicast cell output permission signal output from the unicast cell output permission signal generating section 471.

【0471】ユニキャストセル出力許可信号生成部47
1には、バックプレッシャ信号と非常用バックプレッシ
ャ信号が入力する。
Unicast cell output permission signal generation section 47
A back pressure signal and an emergency back pressure signal are input to 1.

【0472】バックプレッシャ信号は出力ポート毎であ
る。また非常用バックプレッシャ信号は対応するバック
プレッシャ信号が予め定まっている。図25の場合は、
非常用バックプレッシャ信号はSE2から出力してお
り、そのSE2の出力リンクに接続する出力バッファO
Bからのバックプレッシャ信号に対応している。
The back pressure signal is output port by output port. The back pressure signal corresponding to the emergency back pressure signal is predetermined. In the case of FIG. 25,
The emergency back pressure signal is output from SE2, and the output buffer O connected to the output link of SE2.
It corresponds to the back pressure signal from B.

【0473】バックプレッシャ信号が出力禁止を示して
いる時、ユニキャストセル出力許可信号はその出力ポー
トのセルの出力を許可しない。非常用バックプレッシャ
信号が出力禁止を示している場合は、その非常用バック
プレッシャ信号に対応するバックプレッシャ信号が全て
出力禁止を示しているものと見なして出力を許可しな
い。
When the back pressure signal indicates that output is prohibited, the unicast cell output enable signal does not allow output of the cell of the output port. When the emergency back pressure signal indicates that the output is prohibited, it is considered that all the back pressure signals corresponding to the emergency back pressure signal indicate that the output is prohibited, and the output is not permitted.

【0474】マルチキャストセルは、マルチキャストセ
ル出力許可信号生成部472が出力するマルチキャスト
セル出力許可信号により出力が許可される。
The output of the multicast cell is permitted by the multicast cell output permission signal output from the multicast cell output permission signal generation unit 472.

【0475】マルチキャストセル出力許可信号生成部4
72には、ユニキャストセル出力許可信号とマルチキャ
ストセル用クラス多重化FIFO436の先頭のセルの
出力ポート情報が入力する。
Multicast cell output permission signal generation unit 4
A unicast cell output permission signal and output port information of the head cell of the class multiplexing FIFO 436 for multicast cells are input to 72.

【0476】マルチキャストセル出力許可信号生成部4
72は、マルチキャストセルの出力ポートが全て(同時
にでなくてもよい)許可されたかどうかを監視する。ど
れかの出力ポートが許可されていない場合はマルチキャ
ストセル出力許可信号を出力禁止とする。マルチキャス
トセルの全ての出力ポートが許可された時、最後に許可
された出力ポートのユニキャストセル出力許可信号が出
力可能を示している時間はマルチキャストセルの出力を
許可する。その時間内にそのマルチキャストセルがセル
選択部470により選択されなかった場合、およびマル
チキャストセルがセル選択部470により選択され出力
して新しいマルチキャストセルの出力ポート情報が到着
した場合は、再び最初から出力ポートが全て許可された
かどうかを監視する。
Multicast cell output permission signal generation unit 4
72 monitors if all output ports of the multicast cell have been granted (not necessarily at the same time). If any of the output ports is not permitted, the output of the multicast cell output permission signal is prohibited. When all the output ports of the multicast cell are permitted, the output of the multicast cell is permitted during the time when the unicast cell output permission signal of the last permitted output port indicates that the output is possible. When the multicast cell is not selected by the cell selection unit 470 within that time, and when the multicast cell is selected and output by the cell selection unit 470 and the output port information of a new multicast cell arrives, it is output again from the beginning. Monitor if all ports are allowed.

【0477】セル選択部470は、こうして出力が許可
された出力待ちセルを公平に選択する。
The cell selection unit 470 fairly selects the output waiting cells for which the output is permitted in this way.

【0478】上述したように、マルチキャストセルはそ
の出力ポートの全てのバックプレッシャ信号が同時に出
力を許可していなくても出力される。すなわち、そのマ
ルチキャストセルの出力時には、そのセルの出力ポート
のバックプレッシャ信号のいくつかが出力禁止を示して
いる可能性がある。この様な状況においてもSE2のバ
ッファが溢れないように低優先セル非常用バックプレッ
シャ信号が有効に作用する。
As described above, the multicast cell is output even if all the back pressure signals of the output port do not permit the output at the same time. That is, at the time of outputting the multicast cell, it is possible that some of the backpressure signals at the output ports of the cell indicate output inhibition. Even in such a situation, the low-priority cell emergency back pressure signal effectively acts so that the SE2 buffer does not overflow.

【0479】上述の構成においては、低優先セル非常用
バックプレッシャ信号は出力禁止を示した場合、対応す
る出力ポート行きのユニキャストセルおよびマルチキャ
ストセルの両方の出力を禁止する。他の構成としては、
マルチキャストセル出力許可信号生成部472におい
て、ある出力ポートが一度許可されても低優先セル非常
用バックプレッシャ信号が出力禁止を指示した時に許可
を取り消す処理を行うなどとしてもよい。また、簡単に
は、低優先非常用バックプレッシャ信号が出力禁止と指
示した場合は、全ての低優先マルチキャストセルの出力
を禁止する構成でもよい。
In the above configuration, when the low-priority cell emergency backpressure signal indicates that output is prohibited, output of both the unicast cell and the multicast cell to the corresponding output port is prohibited. Other configurations include
Even if a certain output port is once permitted, the multicast cell output permission signal generation unit 472 may cancel the permission when the low-priority cell emergency backpressure signal instructs the output inhibition. Further, simply, when the low-priority emergency back pressure signal indicates that the output is prohibited, the configuration may be such that the output of all the low-priority multicast cells is prohibited.

【0480】本発明の入力バッファIBは、図15で説
明したバックプレッシャ考慮キュー監視を行なう。この
監視は、バックプレッシャ信号によりバックプレッシャ
識別子を更新し、その値に基づいて動作する。ユニキャ
ストセルの出力ポート毎のバックプレッシャ識別子は出
力ポート選択スケジューラ432のユニキャストセル出
力許可信号により更新し、マルチキャストセルのバック
プレッシャ識別子は出力ポート選択スケジューラ432
のマルチキャストセル出力許可信号により更新する。
The input buffer IB of the present invention performs the back pressure consideration queue monitoring described with reference to FIG. This monitoring updates the back pressure identifier with the back pressure signal and operates based on the value. The back pressure identifier for each output port of the unicast cell is updated by the unicast cell output permission signal of the output port selection scheduler 432, and the back pressure identifier of the multicast cell is output port selection scheduler 432.
It is updated by the multicast cell output permission signal of.

【0481】次に、図41を参照して、図25に示した
カゴスイッチに用いるカゴ管理部KMについて説明す
る。
Next, with reference to FIG. 41, the car management unit KM used in the car switch shown in FIG. 25 will be described.

【0482】図41は、カゴ管理部KMの構成例を示し
たものである。
FIG. 41 shows an example of the structure of the car management unit KM.

【0483】KMは出力ポート毎に、 ・ABR入力セル数合計。KM is, for each output port, the total number of ABR input cells.

【0484】・クラス毎に、前カゴセル数合計、カゴセ
ル数合計、転送セル数。
The total number of previous cargo cells, the total number of cargo cells, and the number of transfer cells for each class.

【0485】・クラス多重化FIFOセル数合計。Total number of class multiplexed FIFO cells.

【0486】といった情報を保持し、さらに、出力ポー
ト毎に、転送指示履歴管理部480、クラス選択スケジ
ューラ481を具備している。
Information such as the above is held, and a transfer instruction history management unit 480 and a class selection scheduler 481 are provided for each output port.

【0487】ABR入力セル数合計は、ABRクラスに
ついて各出力ポート行きの全IBの合計入力セル数であ
る。一定時間内で積算し、その周期毎にその出力ポート
とペアとなるIBへ伝送する。所定の一定時間に達する
前にABR入力セル数合計があるしきい値以上になった
場合は割り込み的にIBへその旨を通知する構成でもか
まわない。
The total number of ABR input cells is the total number of input cells of all IBs to each output port for the ABR class. It is integrated within a fixed time, and is transmitted to the IB paired with the output port for each cycle. When the total number of ABR input cells exceeds a certain threshold value before the predetermined fixed time is reached, the IB may be notified of that fact by an interrupt.

【0488】前カゴセル数合計は、IBへ入力したセル
の有無とクラスの情報より、前カゴに入力したセルの合
計を加算する。またKMが転送を指示したクラスの前カ
ゴセル数を全てのIBについて合計したもので更新す
る。そのクラスはKMの転送指示履歴管理部480が記
憶している。
For the total number of cells in the front car, the total number of cells input in the front car is added based on the presence / absence of cells input to the IB and the class information. In addition, the number of previous cage cells of the class that the KM has instructed to transfer is updated with the total for all IBs. The class is stored in the transfer instruction history management unit 480 of KM.

【0489】カゴセル数合計は、KMが転送を指示した
クラスのカゴセル数を全てのIBについて合計したもの
で更新する。転送を指示したクラスはKMの転送指示履
歴管理部480が記憶している。
The total number of cargo cells is updated with the total number of cargo cells of the class to which the KM has instructed the transfer for all IBs. The class for which transfer is instructed is stored in the transfer instruction history management unit 480 of KM.

【0490】転送セル数は、KMが転送を指示したクラ
スのクラス多重化FIFOへの転送セル数を全てのIB
について合計したもので更新する。転送を指示したクラ
スはKMの転送指示履歴管理部480が記憶している。
As the number of transfer cells, the number of transfer cells to the class multiplexing FIFO of the class for which the KM has instructed transfer is set for all IBs.
Will be updated with the total. The class for which transfer is instructed is stored in the transfer instruction history management unit 480 of KM.

【0491】クラス多重化FIFOセル数合計は、クラ
ス多重化FIFOセル数を全てのIBについて合計した
もので更新する。
The total number of class multiplexed FIFO cells is updated with the total number of class multiplexed FIFO cells for all IBs.

【0492】クラス選択スケジューラ381は、前カゴ
セル数合計、カゴセル数合計、転送セル数合計、クラス
多重化FIFOセル数合計などの情報よりIBに転送指
示を行なう。過去の転送指示の履歴は転送指示履歴管理
部480が記憶し、またクラス選択スケジューラ481
はその履歴を利用して上記のセル数情報を修正する。
The class selection scheduler 381 gives a transfer instruction to the IB based on information such as the total number of previous car cells, the total number of car cells, the total number of transfer cells, and the total number of class multiplexing FIFO cells. A history of transfer instructions in the past is stored in the transfer instruction history management unit 480, and the class selection scheduler 481
Uses the history to correct the cell number information.

【0493】図42、図43、図44に、カゴ管理部K
Mのクラス選択スケジューラ481で実行するスケジュ
ーリングアルゴリズムの一例を示す。このアルゴリズム
は、クラスの最大帯域を制限し最小帯域を保証しつつ優
先度による優先制御を行なうものである。
42, 43, and 44, the basket management unit K
An example of a scheduling algorithm executed by the M class selection scheduler 481 is shown. This algorithm limits the maximum bandwidth of the class and guarantees the minimum bandwidth, while performing priority control by priority.

【0494】グローバルな変数として、現在時刻を示す
変数nowがある。各クラスiについて、最小帯域1/
Di 、出力義務時刻Tdi 、Tdi の上限を与えるパラ
メタDxi 、および最大帯域1/Ui 、出力禁止時刻T
ui 、Tui の下限を与えるパラメタUxi を設定する
(図42のステップS100)。
As a global variable, there is a variable now indicating the current time. For each class i, the minimum bandwidth 1 /
Di, output mandatory time Tdi, parameter Dxi giving the upper limit of Tdi, maximum bandwidth 1 / Ui, output prohibition time T
A parameter Uxi that gives the lower limit of ui and Tui is set (step S100 in FIG. 42).

【0495】各クラスiについて、出力すべき場合は現
在時刻nowがTdi nowである時であり、出力が
禁止される場合は現在時刻nowがnow<Tui であ
る時である。また優先順位に従って出力すべき場合は現
在時刻nowがTui now<Tdi である時であ
る。Tdi はその上限値を定められており、Tdi
ow+Dxi である。またTui はその下限値を定めら
れており、now−Uxi Tui である。ただしUx
i 0、Dxi Di である。
For each class i, the output is to be performed when the current time now is Tdi < now, and the output is prohibited to be output when the current time is now <Tui. Further, the case where the output is performed according to the priority order is when the current time now is Tui < now <Tdi. The upper limit of Tdi is set, and Tdi < n
ow + Dxi. The lower limit of Tui is set, and now-Uxi < Tui. However Ux
i > 0 and Dxi > Di.

【0496】初期設定は、nowをゼロに設定し、各ク
ラスiに対してTdi をDi −Uiとし、Tui をno
wつまりゼロにする(図42のステップS101)。
Initially, now is set to zero, Tdi is set to Di-Ui, and Tui is set to no for each class i.
w, that is, zero (step S101 in FIG. 42).

【0497】このアルゴリズムはセル周期毎に次の処理
を行なう。
This algorithm performs the following processing for each cell cycle.

【0498】まず、クラスがアクティブになった時の処
理を行なう。具体的にはセルが無かったクラスiにセル
が到着したとき、Tdi をnowとTdi の大きい方に
更新し、Tui をnowとTui の大きい方に更新する
(図43のステップS102)。
First, the processing when the class becomes active is performed. Specifically, when a cell arrives in class i where there is no cell, Tdi is updated to the larger of now and Tdi, and Tui is updated to the larger of now and Tui (step S102 in FIG. 43).

【0499】次にセルを転送してもよいかどうかを判定
して(図43のステップS103)、もしそうであれば
転送クラス選択および転送クラス指示を行なう(図43
のステップS104)。
Next, it is determined whether or not the cell can be transferred (step S103 in FIG. 43), and if so, transfer class selection and transfer class instruction are performed (FIG. 43).
Step S104).

【0500】転送クラス選択は次のような処理である。Transfer class selection is the following processing.

【0501】転送すべきセルがある各クラスiの中で、 1.Tdi nowとなっているクラスがあれば、その
中で最もnow−Tdi の大きいクラスを選択する(同
じ値の場合は優先度で判断)。
In each class i in which there is a cell to be transferred, 1. If there is a class in which Tdi < now, the class having the highest now-Tdi is selected from the classes (if the values are the same, the priority is determined).

【0502】2.Tdi nowとなっているクラスが
なければ、Tui now<Tdiを満足するクラスの
中から優先度の最も高いクラスを選択する。
2. Without tdi <class has become now selects the highest class of priority among the classes that satisfy Tui <now <Tdi.

【0503】選択されたクラスをjとすると、図44の
ステップS105に進み、次のような転送クラス指示の
処理を行なう。
If the selected class is j, the flow advances to step S105 in FIG. 44 to perform the following transfer class instruction processing.

【0504】1.クラスjの転送指示を行なう。1. Instruct transfer of class j.

【0505】2.Tuj をmax(Tuj 、now−U
xj )と更新。
2. Tuj to max (Tuj, now-U
xj) and updated.

【0506】3.Tdj をTdj +Dj と更新。3. Updated Tdj to Tdj + Dj.

【0507】4.Tuj をTuj +Uj と更新。[0507] 4. Updated Tuj to Tuj + Uj.

【0508】5.Tdj をmin(Tdj 、now+D
xj )と更新。
5. Tdj is min (Tdj, now + D
xj) and updated.

【0509】最後に、転送セル流量モニタの処理を行な
った後(図44のステップS106)、nowをインク
リメントして(図44のステップS107)、セル周期
毎の処理を終了する。
Finally, after the transfer cell flow rate monitor process is performed (step S106 in FIG. 44), now is incremented (step S107 in FIG. 44) and the process for each cell cycle is ended.

【0510】図44のステップS106の転送セル流量
モニタの処理は、クラスjの転送セル数がxj の時、ク
ラスjに関して次の処理を行なう。
In the transfer cell flow rate monitor process of step S106 of FIG. 44, the following process is performed for class j when the number of transfer cells of class j is xj.

【0511】1.Tuj をmax(Tuj 、now−U
xj )と更新。
1. Tuj to max (Tuj, now-U
xj) and updated.

【0512】2.Tdj をTdj +(xj −1)Dj と
更新。
2. Update Tdj to Tdj + (xj -1) Dj.

【0513】3.Tuj をTuj +(xj −1)Uj と
更新。
3. Update Tuj to Tuj + (xj -1) Uj.

【0514】4.Tdj をmin(Tdj 、now+D
xj )と更新。
[0514] Tdj is min (Tdj, now + D
xj) and updated.

【0515】図43のステップS103のセルを転送指
示してもよいかどうかの判定は、クラス多重化FIFO
セル数合計が、あるしきい値以下かどうかで行なう。あ
るしきい値とは通常は「1」である。このクラス多重化
FIFOセル数合計は転送指示履歴管理部480の転送
指示履歴により修正された値である。
[0515] In step S103 of FIG. 43, it is determined whether the cell transfer instruction may be given or not.
It is determined whether the total number of cells is below a certain threshold. The certain threshold is usually "1". The total number of class multiplexing FIFO cells is a value corrected by the transfer instruction history of the transfer instruction history management unit 480.

【0516】図43のステップS104における、クラ
スに転送すべきセルがあるかどうかの判定は、前カゴセ
ル数合計またはカゴセル数合計のどちらか一方がゼロで
ないことを判定して行なう。この前カゴセル数合計とカ
ゴセル数合計は転送指示履歴管理部480の転送指示履
歴により修正された値である。
The determination in step S104 of FIG. 43 as to whether or not there is a cell to be transferred to the class is made by determining that either one of the total number of previous cage cells or the total number of cage cells is not zero. The total number of previous cargo cells and the total number of cargo cells are values corrected by the transfer instruction history of the transfer instruction history management unit 480.

【0517】転送指示はカゴ440からクラス多重化F
IFO434へのセルの転送指示(図31の転送指示T
2)である。その際に前カゴからカゴへの単位カゴの転
送指示を同時に行なうかどうかの判定は、前カゴセル数
合計がゼロでなく、かつ、カゴセル数合計があるしきい
値以下かどうかを判定して行なう。あるしきい値とは通
常は1である。この前カゴセル数合計とカゴセル数合計
は転送指示履歴管理部480の転送指示履歴により修正
された値である。
[0517] The transfer instruction is sent from the basket 440 to the class multiplexing F
A cell transfer instruction to the IFO 434 (transfer instruction T in FIG. 31)
2). At that time, whether or not to instruct the transfer of the unit car from the previous car to the car at the same time is determined by judging whether the total number of previous car cells is not zero and whether the total number of car cells is less than a certain threshold value. . A certain threshold is usually 1. The total number of previous cargo cells and the total number of cargo cells are values corrected by the transfer instruction history of the transfer instruction history management unit 480.

【0518】本アルゴリズムは、Di を大きな数に設定
することにより、最小保証帯域をゼロに近付けることが
できる。例えば全てのクラスのDi を大きな数に設定す
れば全てのクラスを完全優先で優先制御することができ
る。
The present algorithm can bring the minimum guaranteed bandwidth close to zero by setting Di to a large number. For example, if Di of all classes is set to a large number, all classes can be priority-controlled with full priority.

【0519】また、クラスのひとつを、優先度は最も低
いが最小保証帯域を持つIC(Idle Cell)ク
ラスとすることにより、出力ポートの使用率を制御する
ことができる。IBはICクラスの転送指示があった場
合にアイドルセルをクラス多重化FIFOへ挿入する
(このIBはひとつだけでよい)。
Also, by using one of the classes as an IC (Idle Cell) class having the lowest priority but the minimum guaranteed bandwidth, the usage rate of the output port can be controlled. The IB inserts an idle cell into the class multiplexing FIFO when there is an IC class transfer instruction (only one IB is required).

【0520】アイドルセルは他のセルと同様にセルスイ
ッチの出力ポートに向けて交換され、そこでUnass
igned Cellに置き換えられる。KMは、IC
クラスはいつも転送すべきセルがある状態と考えスケジ
ューリングを行なえば良い。
Idle cells, like any other cell, are exchanged towards the output port of the cell switch, where the Unass
Replaced by ignition Cell. KM is IC
The class should always perform scheduling considering that there is a cell to be transferred.

【0521】ところで、図42〜図44に示したアルゴ
リズムでは説明を簡単にするために、変数now、Td
i 、Tui といった時刻を示す変数は、表現できる値が
上限を持たないとしている。実装時にはこれらの変数は
有限のビット長を持つレジスタなどで表現するため長時
間経過すると同じ時刻が循環して現われる。アルゴリズ
ムを正常に動作させるためには次のようなことを行なえ
ば良い。これらの周期をMaxとする。Maxは十分大きい
必要がある。
By the way, in the algorithms shown in FIGS. 42 to 44, in order to simplify the explanation, variables now, Td
Variables indicating time, such as i and Tui, have no upper limit in representable value. At the time of implementation, these variables are represented by registers with a finite bit length, so that the same time appears in cycles after a long time. In order to make the algorithm operate normally, the following may be done. Let these cycles be Max. Max needs to be large enough.

【0522】このとき、x:=f(x)などの計算は、 x:=f(x ) mod Max と置き換える。つまりMaxでモジュロをとる。また、y
zの比較演算は、 (zy−Max/2)or((yz)and(z
+Max/2)) に置き換え比較する。
At this time, calculations such as x: = f (x) are replaced with x: = f (x) mod Max. In other words, take modulo with Max. Also, y
The comparison operation of < z is (z < y-Max / 2) or ((y < z) and (z < y
+ Max / 2)) and compare.

【0523】例えば、now:=now+1という計算
は、 now:=(now+1) mod Max と置き換える。Tdi nowという比較演算は、 (now Tdi −Max/2) or ((Tdi now) and (now Td
i +Max/2)) に置き換え比較すれば良い。
For example, the calculation now: = now + 1 is replaced with now: = (now + 1) mod Max. The comparison operation of Tdi < now is (now < Tdi −Max / 2) or ((Tdi < now) and (now < Td
i + Max / 2)) and compare.

【0524】時刻の変数は周期的に監視し、必要に応じ
てnowからMax/2以上離れ過ぎないように調整を行
なうことが必要であるが、Maxを大きくとることによっ
て監視の周期を長くとることができ、実装が容易とな
る。
It is necessary to monitor the time variable periodically and adjust it so that it is not too far from Max / 2 or more from now if necessary. However, by increasing Max, the monitoring cycle is extended. It is possible and easy to implement.

【0525】さらに、他のクラス選択スケジューリング
としては次のようなものを有効である。
Furthermore, the following is effective as another class selection scheduling.

【0526】すでに説明したように、CG毎(VC毎)
に設定された重みに従ってVC間公平キューイングを行
ったセルバッファ装置は、入力バッファIBのCGテー
ブル(図30)またはVCテーブルのNx に重みを書き
込む。
As described above, each CG (each VC)
The cell buffer device that has performed the fair queuing between VCs according to the weight set in step S1 writes the weight to the CG table (FIG. 30) of the input buffer IB or Nx of the VC table.

【0527】ここでは、クラス選択スケジューリングを
併用することによって、そのクラスに設定されているV
C毎の重みを係数倍できることを説明する。
Here, by using the class selection scheduling together, the V
It will be described that the weight for each C can be multiplied by a coefficient.

【0528】クラスA、クラスBがあり、クラスAに設
定されているあるVCの重みNxaとし、クラスBに設定
されているあるVCの重みをNxbとする。このとき双方
のクラスに出力待ちセルが存在するときにクラス選択ス
ケジューリングにより単位カゴの転送指示回数をクラス
XとクラスYでRa 対Rb の比になるようにスケジュー
リングすることにより、それぞれの重みを Nxa×Ra
、Nxb×Rb と係数倍することが可能である。3ク
ラス以上の場合も同様である。所望の比になるように、
スケジューリングを行うアルゴリズムとして例えば、S
CFQ(Self−Clocked Fair Que
ueing)などが知られている。
There are classes A and B, and a weight of a certain VC set in the class A is Nxa, and a weight of a certain VC set in the class B is Nxb. At this time, when output waiting cells exist in both classes, the number of transfer instructions of the unit car is scheduled by the class selection scheduling so that the ratio of Ra to Rb in class X and class Y becomes Nxa. × Ra
, Nxb × Rb. The same applies to cases of three or more classes. To get the desired ratio
As an algorithm for scheduling, for example, S
CFQ (Self-Clocked Fair Que)
ueing) and the like are known.

【0529】具体的な例で説明する。例えば、VC1か
らVC7の7本のVCに重みをそれぞれ1.24、3.
72、2.18、934、562、1370、4360
に設定したいとする。クラスAにVC1、2を設定し、
Nx をそれぞれ1.24、3.72とする。クラスBに
VC3を設定し、Nx を2.18とする。クラスCにV
C4、5を設定し、Nx をそれぞれ9.34、5.62
とする。クラスDにVC6、7を設定し、Nx をそれぞ
れ1.37、4.36とする。単位カゴの転送指示回数
を出力待ちセルが存在するクラス間でクラスA:クラス
B:クラスC:クラスD=1:1:100:1000の
比になるようにクラス選択スケジューリングを行えば、
目的の重み1.24:3.72:2.18:934:5
62:1370:4360でセルが出力ポートに多重化
される。この方法はNx の値として大きな数値を設定す
るとVC間公平キューイングのセル遅延揺らぎが増大し
てしまうという現象を回避する効果がある。
A concrete example will be described. For example, seven VCs from VC1 to VC7 are weighted 1.24, 3.
72, 2.18, 934, 562, 1370, 4360
I want to set to. Set VC1,2 in class A,
Let Nx be 1.24 and 3.72, respectively. Set VC3 in class B and set Nx to 2.18. Class C to V
C4 and 5 are set, and Nx is 9.34 and 5.62, respectively.
And Set VC6 and 7 in class D and set Nx to 1.37 and 4.36, respectively. If the class selection scheduling is performed so that the number of transfer instructions of the unit basket becomes a ratio of class A: class B: class C: class D = 1: 1: 100: 1000 among the classes in which output waiting cells exist,
Objective weight 1.24: 3.72: 2.18: 934: 5
The cells are multiplexed to the output ports at 62: 1370: 4360. This method has the effect of avoiding the phenomenon that the cell delay fluctuation of fair queuing between VCs increases if a large value is set as the value of Nx.

【0530】図42〜図44に示したようなクラス選択
スケジューリングのアルゴリズムでは、各クラスの転送
セル流量をモニタしていた。これを利用して階層的なク
ラス選択スケジューリングを行うことが可能である。
In the class selection scheduling algorithm as shown in FIGS. 42 to 44, the transfer cell flow rate of each class is monitored. By utilizing this, it is possible to perform hierarchical class selection scheduling.

【0531】クラスA1、A2、A3、…からなるクラ
ス群Ga と、別のクラスB1、B2、B3、…からなる
クラス群Gb とがあるとき、出力待ちセルが存在するク
ラス群間で転送セル流量の比をRa 対Rb と設定してク
ラス選択スケジューリングを行う。クラス群が3以上の
場合も同様である。各クラス群内のクラス選択スケジュ
ーリングと、クラス群間の選択スケジューリングとは独
立である。
When there is a class group Ga consisting of classes A1, A2, A3, ... And another class group Gb consisting of other classes B1, B2, B3 ,. Class selection scheduling is performed by setting the flow rate ratio to Ra to Rb. The same applies when the number of classes is three or more. Class selection scheduling within each class group and selection scheduling between class groups are independent.

【0532】これにより、あるクラス群間の剰余帯域
は、そのクラス群内のクラスのみが使用することにな
り、別のクラス群が使用できることを防止できる。別の
クラス群がこの剰余帯域を使用できるのは、あるクラス
群の出力待ちセルが一つも存在しない場合だけである。
この様な階層的なクラス選択スケジューリングは。例え
ば、企業毎にクラス群を割り当てるなどの応用が考えら
れる。
As a result, the surplus bandwidth between certain class groups is used only by the classes within that class group, and it can be prevented that another class group can be used. Another class group can use this surplus bandwidth only when there is no cell waiting for output of a certain class group.
Such hierarchical class selection scheduling. For example, applications such as assigning a class group to each company can be considered.

【0533】5.2 優先制御およびVC間公平キュー
イングを行うセルスイッチのセル数修正方法 次に、優先制御およびVC間公平キューイングを行うセ
ルスイッチ(カゴスイッチ)(図25、図29、図3
1)のカゴ管理部KMにおけるセル数の修正方法を図4
5を参照して説明する。
5.2 Method for Correcting Number of Cells of Cell Switch for Priority Control and Fair Queuing between VCs Next, a cell switch (car switch) for performing priority control and fair queuing between VCs (FIG. 25, FIG. 29, FIG. 29) Three
FIG. 4 shows a method of correcting the number of cells in the car management unit KM of 1).
This will be described with reference to FIG.

【0534】修正の原理は、図19、図20などを用い
て説明したカゴスイッチの場合も同じ方法でセル数を修
正することにより優先制御の性能や出力ポートのスルー
プットの向上などを実現することができる。
The principle of modification is to realize improvement of the priority control performance and output port throughput by modifying the number of cells in the same manner in the case of the cage switch described with reference to FIGS. 19 and 20. You can

【0535】本発明のセル数修正方法の一応用例とし
て、図45に示すカゴスイッチに適用する。カゴスイッ
チでは、管理部301がクラスiの前カゴ(Bpi)へ転
送を指示すると、そのクラスの前カゴのセルがカゴ(B
ki)へ転送されるとともに、その一部がクラス多重化F
IFO(Bm )へ転送される。管理部301がクラスi
のカゴからクラス多重化FIFOへ転送を指示すると、
そのクラスのカゴのセルがクラス多重化FIFOへ転送
される。
As an application example of the cell number correcting method of the present invention, it is applied to the car switch shown in FIG. In the car switch, when the management unit 301 instructs the transfer to the front car (Bpi) of class i, the cell of the front car of the class is set to the car (B
ki) and part of it is class multiplexed F
It is transferred to IFO (Bm). Management unit 301 is class i
If you instruct the class multiplexing FIFO to transfer from the
The basket cells of that class are transferred to the class multiplexing FIFO.

【0536】図45の様に各セルバッファのセル数情報
および遅延時間を定める。
As shown in FIG. 45, cell number information and delay time of each cell buffer are determined.

【0537】Hpiは転送指示Ipiにより前カゴからカゴ
へ転送されるHOL数、Hpmi は同じく転送指示Ipiに
より前カゴからクラス多重化FIFOへ転送されるHO
Lセル数である。
Hpi is the number of HOLs transferred from the previous car to the car by the transfer instruction Ipi, and Hpmi is HO transferred from the previous car to the class multiplexing FIFO by the transfer instruction Ipi.
It is the number of L cells.

【0538】ここで一例として、各遅延時間の値が等し
い場合について考える。つまり、DOp =DIk =DO
k =DIm =Dipm=D、および、DTpm=DTkmとす
る。またp=[−D、0)とする。このとき、クラスi
の前カゴとカゴの修正されたセル数(N′pi、N′k
i)、およびクラス多重化FIFOの修正されたセル数
(N′m )は次のように計算できる。
As an example, consider the case where the values of the respective delay times are the same. That is, DOp = DIk = DO
Let k = DIm = Dipm = D and DTpm = DTkm. Also, p = [-D, 0). At this time, class i
And the modified number of cells (N'pi, N'k)
i), and the modified cell number (N'm) of the class multiplexing FIFO can be calculated as follows.

【0539】[0539]

【数7】 (Equation 7)

【0540】5.3 第10の実施形態に係るセルスイ
ッチの説明の続き 図46に、カゴスイッチの入力バッファIBとカゴ管理
部KMとの接続例を示す。
5.3 Continuation of Description of Cell Switch According to Tenth Embodiment FIG. 46 shows an example of connection between the input buffer IB of the car switch and the car management unit KM.

【0541】ここでは、例えば、クラス数を62クラ
ス、セルスイッチサイズを16入力16出力とする。
Here, for example, the number of classes is 62 classes, and the cell switch size is 16 inputs and 16 outputs.

【0542】クラス番号は、{0、1、2、…、60、
61、UC、IC}と6ビットにコーディングする。
The class numbers are {0, 1, 2, ..., 60,
61, UC, IC} and 6 bits.

【0543】クラスUCは非割り当てセル(Unass
igned Cell)、ICはアイドルセル(Idl
e Cell)を示し、これらの使い方は以下に記述す
る。
Class UC is an unassigned cell (Unass
igned Cell), IC is an idle cell (Idl
e Cell) and how to use them is described below.

【0544】前カゴセル数、カゴセル数、クラス多重化
FIFOセル数は、{0、1、2、…、13、14、1
5以上}と4ビットにコーディングする。
The number of previous cage cells, the number of cage cells, and the number of class multiplexing FIFO cells are {0, 1, 2, ..., 13, 14, 1, 1.
5 or more} and 4 bits.

【0545】入力バッファIBからカゴ管理部KMへの
転送情報を以下に示す。
Transfer information from the input buffer IB to the car management unit KM is shown below.

【0546】(1)入力セル 出力ポート毎に、入力し
たセルについて(ユニキャストの場合はひとつの出力ポ
ートについてのみ出力する)、 ・入力セルの有無とクラス…6ビット(入力セルがない
場合はクラスUCを送信する) (3)転送指示クラス 出力ポート毎に転送の指示クラ
スについて、 ・転送後の前カゴセル数…4ビット ・転送後のカゴセル数…4ビット ・クラス多重化FIFOへの転送セル数…2ビット(最
大でユニキャストとマルチキャストの2セルが転送され
る) (4)クラス多重化FIFO 出力ポート毎にユニキャ
ストのみの、 ・クラス多重化FIFOセル数…4ビット 合計すると、ひとつの出力ポートに関する情報は20ビ
ットである。
(1) Input cell Regarding input cells for each output port (only one output port is output in the case of unicast): Presence / absence of input cell and class ... 6 bits (when there is no input cell) (3) Transfer instruction class (3) Transfer instruction class Regarding transfer instruction class for each output port: -Number of previous cage cells after transfer ... 4 bits-Number of cage cells after transfer ... 4 bits-Transfer cells to class multiplexing FIFO Number ... 2 bits (2 cells of unicast and multicast are transferred at the maximum) (4) Class multiplexing FIFO Only unicast for each output port-Number of class multiplexing FIFO cells ... 4 bits The information about the output port is 20 bits.

【0547】カゴ管理部KMから全ての入力バッファI
Bへ同報する転送情報を以下に示す。
All the input buffers I from the car management unit KM
The transfer information broadcast to B is shown below.

【0548】(2)出力ポート毎に、 ・前カゴからカゴへ単位カゴの転送指示(下記のクラス
について)…1ビット ・カゴからクラス多重化FIFOへセルの転送指示と、
指示クラス…6ビット(転送指示をしない場合はUCク
ラスを指定。ICクラスが指定された場合はIBはアイ
ドルセルを転送(挿入)する。アイドルセルは他のクラ
スのセルと同様に出力ポートへ交換転送され、セルスイ
ッチからの出力時にUnassigned Cellに
置き換えられるスループット調整用のセルである。) 合計すると、ひとつの出力ポートに関する情報は7ビッ
トである。
(2) For each output port: -Instruction to transfer a unit basket from the previous basket to the basket (for the following classes) ... 1 bit-Instruction to transfer a cell from the basket to the class multiplexing FIFO,
Instruction class: 6 bits (UC class is specified when transfer instruction is not given. If IC class is specified, IB transfers (inserts) idle cells. Idle cells are sent to output port like cells of other classes. It is a cell for throughput adjustment that is exchange-transferred and is replaced with an Unassigned Cell at the time of output from the cell switch.) In total, information on one output port is 7 bits.

【0549】KMは、ABRトラヒック制御のため出力
ポート毎に、対応するIBへ次の信号を送信する。
The KM transmits the following signal to the corresponding IB for each output port for ABR traffic control.

【0550】(5)全IBの入力セルのうち、各出力ポ
ート行きのABR入力セル数…5ビット(16入力16
出力のセルスイッチの場合) ひとつの出力ポートに関する情報は5ビットである。
(5) Number of ABR input cells destined for each output port among all IB input cells: 5 bits (16 inputs 16
In case of output cell switch) Information about one output port is 5 bits.

【0551】図46は、カゴ管理部KMをふたつのLS
Iにて実現する構成例を示したものである。ふたつのL
SIのうち一方は出力ポート#1から#8を管理し、も
う一方は出力ポート#9から#16を管理する。
[0551] Fig. 46 shows two LSs having a basket management unit KM.
3 shows an example of the configuration realized by I. Two L
One of the SIs manages the output ports # 1 to # 8, and the other manages the output ports # 9 to # 16.

【0552】IBからKMへの転送情報(前述の(1)
(3)(4))は、1出力ポートあたり20ビットであ
るから、8ポート分で160ビットである。高速差動伝
送を2ペア用いてパラレル伝送を行なえば1セル周期に
80ビットの伝送速度でよい。
Transfer information from IB to KM ((1) above)
Since (3) and (4) have 20 bits per output port, there are 160 bits for 8 ports. If parallel transmission is performed using two pairs of high-speed differential transmission, a transmission rate of 80 bits in one cell cycle will suffice.

【0553】KMからIBへの同報情報(前述の
(2))は、1出力ポートあたり7ビットであるから、
8ポート分で56ビットである。通常の伝送ドライバを
用いて、8本のパラレル伝送を行なえば1セル周期に7
ビットの伝送速度でよい。
Since the broadcast information from KM to IB ((2) above) has 7 bits per output port,
It is 56 bits for 8 ports. If eight parallel transmissions are performed using a normal transmission driver, seven cells can be transmitted in one cell cycle.
A bit transmission rate is sufficient.

【0554】KMからIBへのABRトラヒック制御の
ための情報(前述の(5))は、1出力ポートあたり5
ビットである。
Information for ABR traffic control from KM to IB ((5) above) is 5 per output port.
Is a bit.

【0555】セル伝送速度が622Mbpsであるセル
スイッチを考えても、これらの伝送速度は現在の技術に
おいて十分実現可能である。
Considering a cell switch whose cell transmission rate is 622 Mbps, these transmission rates can be sufficiently realized by the present technology.

【0556】IBはKMへセル数情報をLSB(最下位
桁)から伝送することにより、セル数の加算の回路規模
を少なくすることができる。加算回路は全てのIBから
伝送されてくるセル数情報を(出力ポート毎クラス毎
に)下位桁から順に加算することができるためである。
より具体的には、加算回路は入力した桁の数字とそれま
でに計算した下位桁からの桁上がりの和を計算して、加
算結果のその桁の値を得ることができる。加えて次の桁
の計算のための桁上がりを保持する。
The IB can reduce the circuit scale for adding the number of cells by transmitting the cell number information from the LSB (least significant digit) to the KM. This is because the adder circuit can add the cell number information transmitted from all IBs in order from the lower digit (for each output port and each class).
More specifically, the adder circuit can calculate the sum of the digit of the input digit and the carry from the lower digit calculated up to that point, and obtain the value of that digit of the addition result. In addition it holds the carry for the calculation of the next digit.

【0557】IBからKMへの信号の中にクラス多重化
FIFOセル数がある。バックプレッシャ付きセルスイ
ッチが出力ポート毎の蓄積セル数(図25の出力バッフ
ァOBのセル数)を出力できる場合には、KMは、クラ
ス多重化FIFOセル数の代わりにこの出力ポート毎蓄
積セル数を用いても良い。
There is the number of class multiplexing FIFO cells in the signal from IB to KM. When the cell switch with back pressure can output the number of accumulated cells for each output port (the number of cells of the output buffer OB in FIG. 25), the KM determines the number of accumulated cells for each output port instead of the number of class multiplexing FIFO cells. May be used.

【0558】これは、図2のクラス間の優先制御を行な
うセル多重化装置や、図7のVC間公平キューイングを
行なうセル多重化装置と同じ効果を持つ。
This has the same effect as the cell multiplexer shown in FIG. 2 for performing priority control between classes and the cell multiplexer shown in FIG. 7 for performing fair queuing between VCs.

【0559】図47に、ABRサービスを実現するため
の情報の経路を示す。
FIG. 47 shows a route of information for realizing the ABR service.

【0560】図47は、ポート#1からポート#Nに入
力するABRクラスのセルが、バックプレッシャ付きセ
ルスイッチ400によりポート#iに交換多重化される
部分について特に抜き出して示してある。実際は全ての
出力ポートに関して、この図の#iと同じ構成になって
いる。
FIG. 47 shows, in particular, a portion where an ABR class cell input from port # 1 to port #N is exchange-multiplexed with port #i by cell switch 400 with back pressure. Actually, all the output ports have the same configuration as #i in this figure.

【0561】ABRサービスは、セルスイッチの出力ポ
ートに使用可能な帯域があれば、その帯域をABRクラ
スのVCで公平に分配して使用するサービスクラスであ
る。トラヒック制御には受信端末から送信端末へ伝送さ
れるRMセルを用いる。
[0561] The ABR service is a service class in which, if there is a usable band at the output port of the cell switch, the band is evenly distributed and used by the ABR class VCs. The RM cell transmitted from the receiving terminal to the transmitting terminal is used for traffic control.

【0562】セルスイッチ400は、出力ポート#iに
おいてABRが使用可能な帯域を知っており、それと現
在のABRの入力トラヒックとの比(または差)を知る
ことにより、送信端末に対してトラヒック制御を行なう
ことができる。現在のABRトラヒックは図47に示し
たポート#i行きの入力セル数の一定周期毎の合計から
知ることができる。入力セル数から入力帯域を求め、こ
れが出力ポートにおいてABRが使用可能な帯域を越え
ていれば過負荷であるから、ポート#iに入力するRM
セルにVCの帯域を減らす指示を書き込めばよい。逆
に、ポート#i行きの入力セル数から求めた入力帯域
が、出力ポートにおいてABRが使用可能な帯域を下回
っていれば、低負荷であるから、ポート#iに入力する
RMセルにVCの帯域を増やす指示を書き込めばよい。
入力帯域と出力帯域の比または差を知ることにより、過
負荷、低負荷の程度を知ることができ、細やかな制御を
行なうことが可能である。
The cell switch 400 knows the bandwidth available to the ABR at the output port #i, and knows the ratio (or difference) between it and the input traffic of the current ABR to control traffic to the transmitting terminal. Can be done. The current ABR traffic can be known from the total of the number of input cells destined for port #i shown in FIG. The input band is calculated from the number of input cells, and if this exceeds the available band of the ABR at the output port, it is overloaded, so the RM input to port #i
An instruction to reduce the VC bandwidth may be written in the cell. On the contrary, if the input band obtained from the number of input cells to the port #i is lower than the band that can be used by the ABR at the output port, the load is low. Write the instruction to increase the bandwidth.
By knowing the ratio or difference between the input band and the output band, it is possible to know the degree of overload or low load, and it is possible to perform fine control.

【0563】この処理により輻輳に陥る確率は少なくな
るが、さらにIBにおいてキュー長を監視して輻輳を検
出した場合はEFCIをマークしたり、RMセルを書き
換えたりすることにより、より安全にトラヒックを制御
することが可能である。特にマルチキャストの場合は、
入力帯域が出力帯域より小さくとも過負荷となる可能性
があり、その場合はキュー長監視によるトラヒック制御
が重要になる。
Although the probability of congestion is reduced by this processing, when the queue length is further monitored in the IB and congestion is detected, EFCI is marked or the RM cell is rewritten to ensure more secure traffic. It is possible to control. Especially for multicast,
Even if the input band is smaller than the output band, there is a possibility of overload, and in that case, traffic control by queue length monitoring becomes important.

【0564】このように、第10の実施形態に係るカゴ
スイッチは、VC間公平キューイングを行なうため、キ
ュー長監視によるトラヒック制御においてもVC間で公
平な帯域分配を実現することが可能である。
As described above, since the car switch according to the tenth embodiment performs fair queuing between VCs, it is possible to realize fair band distribution among VCs even in traffic control by monitoring the queue length. .

【0565】[0565]

【発明の効果】以上説明したように、本発明のクラス間
の優先制御を行なうパケット転送装置(第1、第2の実
施形態(請求項1、2、3、4、))によれば、制御部
(クラス管理部)が複数の入力バッファ全体の状況を把
握して(少なくとも全体の状況を把握していればよい
が、個々の入力バッファ毎に把握していても構わない)
指示を出すため、各入力バッファのクラス毎の蓄積状況
の違いによりクラス間の優先関係が崩れてしまうことが
生じず、また、入力ポートの数すなわち入力バッファの
数が増えても容易にクラス間の優先制御を実現できる。
As described above, according to the packet transfer device (first and second embodiments (claims 1, 2, 3, 4)) for performing priority control between classes according to the present invention, The control unit (class management unit) grasps the status of the entire plurality of input buffers (at least the status of the whole is sufficient, but it may be known for each input buffer).
Because the instruction is issued, the priority relationship between classes does not collapse due to the difference in the accumulation status of each class of each input buffer, and even if the number of input ports, that is, the number of input buffers, increases The priority control of can be realized.

【0566】また、複数の入力バッファにまたがってV
C(フロー)間公平キューイングをするために、例え
ば、制御手段が全ての入力バッファの全てのVC(フロ
ー)について、その入力ポート番号とVC番号、パケッ
トの到着状況、出力状況等を把握してパケットの出力順
序を制御するのでは、装置構成が複雑になり、スループ
ットの向上が難しい。そこで、本発明のパケット転送装
置(第3、第4、第5の実施形態(請求項5、6))に
よれば、あるフェーズ(その時間的長さは不定)内で出
力されるべきパケット集合(カゴ)という概念を導入
し、このパケット集合に入れるパケットの選択と、この
パケット集合に入っているパケットのみを出力する(そ
の他のパケットは出力が許可されない)という処理を各
入力バッファが分担し、パケット集合に新たなパケット
を入れるタイミングを指示する処理をカゴ管理部が分担
することにより、例えば、入力バッファ方式のセルスイ
ッチにおいて、VC(フロー)間公平キューイングを容
易に実現できる。
Also, V is spread over a plurality of input buffers.
In order to perform fair queuing between Cs (flows), for example, the control means grasps the input port numbers and VC numbers, packet arrival states, output states, etc. of all VCs (flows) of all input buffers. If the output order of the packets is controlled by the above method, the device configuration becomes complicated and it is difficult to improve the throughput. Therefore, according to the packet transfer device of the present invention (third, fourth and fifth embodiments (claims 5 and 6)), a packet to be output within a certain phase (its time length is indefinite) Introducing the concept of a set (car), each input buffer is responsible for selecting packets to be included in this packet set and outputting only the packets in this packet set (other packets are not allowed to be output). However, since the basket management unit shares the processing for instructing the timing of inserting a new packet in the packet set, for example, fair cell queuing between VCs (flows) can be easily realized in the cell switch of the input buffer system.

【0567】また、本発明のパケット転送装置(第6、
第7の実施形態(請求項7、8))によれば、制御手段
(バッファポインタ管理部)がパケットが入力されたと
きに複数の集合への振り分けが行われており、パケット
を出力するときには1つの集合に属するポインタを出す
だけで済むので、例えば設定すべきVC数が増えても高
速にVC(フロー)間公平キューイングのための出力す
べきパケットの選択が実現できる。
Further, the packet transfer device of the present invention (sixth,
According to the seventh embodiment (claims 7 and 8), when the control means (buffer pointer management unit) inputs a packet, it is distributed to a plurality of sets, and when the packet is output. Since it is sufficient to output the pointers belonging to one set, for example, even if the number of VCs to be set increases, it is possible to realize high-speed selection of packets to be output for fair queuing between VCs (flows).

【0568】また、本発明のバックプレッシャ信号を考
慮するパケット転送装置(第8の実施形態(請求項
9))によれば、キュー長の監視結果が外部条件の影響
を受け難く、安定したキュー長の監視が容易である。
Further, according to the packet transfer device (8th embodiment (claim 9)) which considers the back pressure signal of the present invention, the queue length monitoring result is not easily influenced by the external condition and the stable queue is obtained. The length is easy to monitor.

【0569】また、本発明の遅延を考慮したセル数情報
の修正を行うパケット転送装置(第9の実施形態(請求
項10、11、12、13))によれば、転送指示を決
定する際に転送指示の履歴を用いて、バッファから伝送
されてきたセル数を、転送指示がバッファに作用する時
刻のセル数に修正するため、遅延時間を原因とした性能
の劣化が少ない。
Further, according to the packet transfer device for correcting the cell number information in consideration of the delay of the present invention (the ninth embodiment (claims 10, 11, 12, 13)), when determining the transfer instruction. Since the history of transfer instructions is used to correct the number of cells transmitted from the buffer to the number of cells at the time when the transfer instruction acts on the buffer, there is little deterioration in performance due to delay time.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施形態に係るクラス間の優先
制御を行なうセル多重化装置の構成例を示した図。
FIG. 1 is a diagram showing a configuration example of a cell multiplexer that performs priority control between classes according to a first embodiment of the present invention.

【図2】本発明の第2の実施形態に係るクラス間の優先
制御を行なうセル多重化装置の他の構成例を示した図。
FIG. 2 is a diagram showing another example of the configuration of a cell multiplexing device that performs priority control between classes according to the second embodiment of the present invention.

【図3】出力バッファの他の構成例を示した図。FIG. 3 is a diagram showing another configuration example of the output buffer.

【図4】出力バッファのさらに他の構成例を示した図。FIG. 4 is a diagram showing still another configuration example of the output buffer.

【図5】本発明の第3の実施形態に係るVC毎FIFO
を備えた出力バッファ型セル多重化装置の構成例を示し
た図。
FIG. 5 is a per-VC FIFO according to a third embodiment of the present invention.
The figure which showed the structural example of the output buffer type cell multiplexer provided with.

【図6】本発明の第4の実施形態に係る:VC間公平キ
ューイングを行なうセル多重化装置の構成例を示した
図。
FIG. 6 is a diagram showing an example of the configuration of a cell multiplexer that performs inter-VC fair queuing according to a fourth embodiment of the present invention.

【図7】本発明の第5の実施形態に係るVC間公平キュ
ーイングを行なうセル多重化装置の構成例を示した図。
FIG. 7 is a diagram showing a configuration example of a cell multiplexing device that performs fair queuing between VCs according to a fifth embodiment of the present invention.

【図8】本発明の第6の実施形態に係るセルグループF
IFOを用いるセルバッファ装置の構成例を示した図。
FIG. 8 is a cell group F according to a sixth embodiment of the present invention.
The figure which showed the structural example of the cell buffer apparatus which uses IFO.

【図9】本発明の第7の実施形態に係るセルグループF
IFOを用いるセルバッファ装置の構成例を示した図。
FIG. 9 is a cell group F according to a seventh embodiment of the present invention.
The figure which showed the structural example of the cell buffer apparatus which uses IFO.

【図10】第6の実施形態に係るセルグループFIFO
のポインタチェーンによるデータ構造例を説明するため
の図。
FIG. 10 is a cell group FIFO according to the sixth embodiment.
For explaining a data structure example by the pointer chain of FIG.

【図11】第6の実施形態に係るセルグループFIFO
のポインタチェーンによるデータ構造例を説明するため
の図で、空きセルグループチェーンの構成を示してい
る。
FIG. 11 is a cell group FIFO according to the sixth embodiment.
Is a diagram for explaining an example of the data structure by the pointer chain of FIG.

【図12】第7の実施形態に係るセルグループFIFO
のポインタチェーンによるデータ構造例を説明するため
の図。
FIG. 12 is a cell group FIFO according to the seventh embodiment.
For explaining a data structure example by the pointer chain of FIG.

【図13】第7の実施形態に係るセルグループFIFO
のポインタチェーンによるデータ構造例を説明するため
の図で、空きセルグループチェーンの構成を示してい
る。
FIG. 13 is a cell group FIFO according to the seventh embodiment.
Is a diagram for explaining an example of the data structure by the pointer chain of FIG.

【図14】パケットグループを用いたフロー間公平キュ
ーイングを説明するための図。
FIG. 14 is a diagram illustrating inter-flow fair queuing using packet groups.

【図15】パケットグループを用いたフロー間公平キュ
ーイングを用いたパケットバッファ装置の動作を説明す
るための図。
FIG. 15 is a diagram for explaining the operation of the packet buffer device using inter-flow fair queuing using packet groups.

【図16】本発明の第8の実施形態にかかるバックプレ
ッシャ考慮キュー監視を説明する図である。
FIG. 16 is a diagram illustrating back pressure consideration queue monitoring according to an eighth embodiment of the present invention.

【図17】第8の実施形態に係るバックプレッシャ考慮
キュー監視部を持つセルバッファ装置の構成例を示した
図。
FIG. 17 is a diagram showing a configuration example of a cell buffer device having a back pressure consideration queue monitoring unit according to an eighth embodiment.

【図18】第8の実施形態に係るバックプレッシャ考慮
キュー監視アルゴリズムを示したフローチャート。
FIG. 18 is a flowchart showing a back pressure consideration queue monitoring algorithm according to an eighth embodiment.

【図19】本発明の第9の実施形態に係る遅延を考慮し
たセルバッファ装置の構成例を示した図。
FIG. 19 is a diagram showing a configuration example of a cell buffer device considering delay according to a ninth embodiment of the present invention.

【図20】遅延を考慮したセル数情報の修正方法の基本
原理を説明するための図。
FIG. 20 is a diagram for explaining the basic principle of a correction method of cell number information in consideration of delay.

【図21】セル数修正方法の他の基本原理を説明するた
めの図。
FIG. 21 is a diagram for explaining another basic principle of the cell number correction method.

【図22】図21のセル数修正方法に用いる基本的な関
数f()を説明するための図。
22 is a view for explaining a basic function f () used in the cell number correction method of FIG.

【図23】図21のセル数修正方法に用いる基本的な関
数g()を説明するための図。
FIG. 23 is a view for explaining a basic function g () used in the cell number correction method of FIG. 21.

【図24】図21のセル数修正方法に用いる基本的な関
数Sc()を説明するための図。
24 is a diagram for explaining a basic function Sc () used in the cell number correction method of FIG.

【図25】本発明の第10の実施形態に係るカゴスイッ
チの全体の構成例を示した図。
FIG. 25 is a diagram showing an example of the overall configuration of a car switch according to a tenth embodiment of the invention.

【図26】図25の出力バッファの構成例を示した図。FIG. 26 is a diagram showing a configuration example of the output buffer of FIG. 25.

【図27】図25の1段目単位スイッチの構成例を示し
た図。
FIG. 27 is a diagram showing a configuration example of a first-stage unit switch shown in FIG. 25.

【図28】図25の2段目単位スイッチの構成例を示し
た図。
FIG. 28 is a diagram showing a configuration example of a second-stage unit switch shown in FIG. 25.

【図29】図25の入力バッファの構成例を示した図。FIG. 29 is a diagram showing a configuration example of the input buffer of FIG. 25.

【図30】入力バッファのキューイング処理を説明する
ための図。
FIG. 30 is a diagram for explaining queuing processing of an input buffer.

【図31】図25の入力バッファのカゴ管理部とのイン
タフェースを示した図。
FIG. 31 is a diagram showing an interface of the input buffer of FIG. 25 with a car management unit.

【図32】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 32 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図33】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 33 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図34】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 34 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図35】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 35 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図36】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 36 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図37】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 37 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図38】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 38 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図39】図29のクラス毎マルチキャストセル管理部
の動作を説明するための図。
FIG. 39 is a diagram for explaining the operation of the class-based multicast cell management unit of FIG. 29;

【図40】図29の出力ポート選択スケジューラの構成
例を示した図。
FIG. 40 is a diagram showing a configuration example of the output port selection scheduler of FIG. 29.

【図41】図25のカゴ管理部の構成例を示した図。FIG. 41 is a diagram showing a configuration example of the basket management unit in FIG. 25.

【図42】図41のカゴ管理部のクラス選択スケジュー
ラで実行する、最大帯域を制限し最小帯域を保証するス
ケジューリングアルゴリズムの具体例を示したフローチ
ャート。
42 is a flowchart showing a specific example of a scheduling algorithm executed by the class selection scheduler of the car management unit of FIG. 41 to limit the maximum bandwidth and guarantee the minimum bandwidth.

【図43】図41のカゴ管理部のクラス選択スケジュー
ラで実行する、最大帯域を制限し最小帯域を保証するス
ケジューリングアルゴリズムの具体例を示したフローチ
ャート。
43 is a flowchart showing a specific example of a scheduling algorithm executed by the class selection scheduler of the car management unit of FIG. 41 to limit the maximum bandwidth and guarantee the minimum bandwidth.

【図44】図41のカゴ管理部のクラス選択スケジュー
ラで実行する、最大帯域を制限し最小帯域を保証するス
ケジューリングアルゴリズムの具体例を示したフローチ
ャート。
FIG. 44 is a flowchart showing a specific example of a scheduling algorithm executed by the class selection scheduler of the car management unit of FIG. 41 to limit the maximum bandwidth and guarantee the minimum bandwidth.

【図45】セル数情報の修正方法の応用例であるカゴス
イッチの動作を説明するための図。
FIG. 45 is a diagram for explaining the operation of the cage switch that is an application example of the method for correcting cell number information.

【図46】図25の入力バッファとカゴ管理部との接続
の具体例を示した図。
FIG. 46 is a diagram showing a specific example of the connection between the input buffer of FIG. 25 and the basket management unit.

【図47】ABRサービスのための情報の経路の具体例
を示した図。
FIG. 47 is a diagram showing a specific example of an information path for an ABR service.

【図48】従来のUBRサービスにおける不公平な帯域
割り当てについて説明するための図。
FIG. 48 is a diagram for explaining unfair bandwidth allocation in the conventional UBR service.

【図49】従来のクラス間の優先制御を行うセル多重化
装置の構成を説明するための図。
FIG. 49 is a diagram for explaining the configuration of a conventional cell multiplexing apparatus that performs priority control between classes.

【図50】従来の入力バッファを持つセル多重化装置の
構成を説明するための図。
FIG. 50 is a diagram for explaining the configuration of a conventional cell multiplexer having an input buffer.

【図51】従来のVCテーブルの検索が必要なセルバッ
ファ装置の構成を説明するための図。
FIG. 51 is a diagram for explaining the configuration of a conventional cell buffer device that requires a VC table search.

【図52】図50に示すような従来の入力バッファを持
つセル多重化装置における入力バッファのキュー長の変
化について説明するための図。
52 is a diagram for explaining changes in the queue length of the input buffer in the cell multiplexer having the conventional input buffer as shown in FIG. 50. FIG.

【図53】従来の優先制御を行うセル多重化装置の構成
を説明するための図。
FIG. 53 is a diagram for explaining the configuration of a conventional cell multiplexing device that performs priority control.

【符号の説明】[Explanation of symbols]

10…入力バッファ、11…出力バッファ、12…クラ
ス管理部、212、222…カゴ管理部、230、24
0…バッファポインタ管理部、282…キュー監視部、
302…転送指示履歴、KM…カゴ管理部、400…バ
ックプレッシャ付きセルスイッチ。
10 ... Input buffer, 11 ... Output buffer, 12 ... Class management unit, 212, 222 ... Basket management unit, 230, 24
0 ... buffer pointer management unit, 282 ... queue monitoring unit,
302 ... Transfer instruction history, KM ... Basket management unit, 400 ... Cell switch with back pressure.

Claims (14)

【特許請求の範囲】[Claims] 【請求項1】 入力されたパケットを一時的に蓄積する
複数の入力バッファと、これら入力バッファを制御する
制御手段と、前記各入力バッファから出力されるパケッ
トを転送する少なくとも1つの出力ポートを具備したパ
ケット転送装置であって、 前記各入力バッファは、 入力したパケットを一時的にクラス毎に蓄積するクラス
毎の蓄積手段と、 前記制御手段から指示されたクラスのパケットを前記蓄
積手段から前記出力ポートへ向けて出力する出力手段と
を具備し、 前記制御手段は、 前記蓄積手段の複数の入力バッファ全体における蓄積状
況をクラス毎に把握し、この蓄積状況に基づいてパケッ
トを出力すべきクラスを決定し、この決定したクラスの
指定を含む指示を前記複数の入力バッファに送信するこ
とを特徴とするパケット転送装置。
1. A plurality of input buffers for temporarily storing input packets, control means for controlling these input buffers, and at least one output port for transferring packets output from each of the input buffers. In the packet transfer device, each of the input buffers stores a packet for each class for temporarily storing the input packet for each class, and outputs a packet of a class instructed by the control unit from the storage unit. Output means for outputting to the port, the control means grasps the accumulation status in the entire plurality of input buffers of the accumulation means for each class, and based on this accumulation status, determines the class to which the packet should be output. Packet transfer characterized by determining and transmitting an instruction including designation of the determined class to the plurality of input buffers Location.
【請求項2】 前記出力ポートは、前記入力バッファか
ら出力されたパケットを一時的に蓄積する出力バッファ
を具備し、 前記出力手段は、前記出力バッファ内部のパケットの蓄
積状況に応じてパケットを前記出力ポートへ向けて出力
することを特徴とすることを特徴とする請求項1記載の
パケット転送装置。
2. The output port comprises an output buffer for temporarily accumulating the packet output from the input buffer, and the output means stores the packet according to an accumulation state of the packet inside the output buffer. The packet transfer device according to claim 1, wherein the packet transfer device outputs the packet to an output port.
【請求項3】 前記出力手段は、前記蓄積手段から出力
されたパケットを多重化し、この多重化されたパケット
を前記出力ポートに出力する多重化手段を具備し、 前記制御手段は、前記蓄積状況に加えて、前記多重化手
段の複数の入力バッファ全体における多重化状況を把握
し、前記蓄積状況および前記多重化状況に基づいてパケ
ットを出力すべきクラスを決定することを特徴とする請
求項1記載のパケット転送装置。
3. The output means comprises a multiplexing means for multiplexing the packets output from the accumulating means and outputting the multiplexed packets to the output port, wherein the control means comprises the accumulating status. In addition to the above, in addition to grasping the multiplexing status in all of the plurality of input buffers of the multiplexing means, the class to output the packet is determined based on the storage status and the multiplexing status. The packet transfer device described.
【請求項4】 前記入力バッファは、複数の入力バッフ
ァにまたがる同一クラス内で、各パケットの属する各仮
想コネクション間でパケットの転送が公平になるように
前記蓄積手段から出力するパケットを選択することを特
徴とする請求項1記載のパケット転送装置。
4. The input buffer selects a packet to be output from the accumulating unit so that transfer of packets is fair among virtual connections to which each packet belongs in the same class that spans a plurality of input buffers. The packet transfer device according to claim 1, wherein
【請求項5】 入力されたパケットを一時的に蓄積する
複数の入力バッファと、これら入力バッファを制御する
制御手段と、前記各入力バッファから出力されるパケッ
トを転送する少なくとも1つの出力ポートを具備したパ
ケット転送装置であって、 前記各入力バッファは、 入力したパケットを一時的に蓄積する蓄積手段と、 前記制御手段からの指示を受けて、次のフェーズで前記
蓄積手段から前記出力ポートへ向けて出力すべきパケッ
トを選択する選択手段と、 この選択手段で選択されたパケットを前記出力ポートに
向けて出力する出力手段とを具備し、 前記制御手段は、 前記複数の入力バッファ全体における前記選択手段で選
択されたパケットの出力状況を把握し、この出力状況に
基づいて新たなパケットを選択するよう前記複数の入力
バッファに指示することを特徴とするパケット転送装
置。
5. A plurality of input buffers for temporarily storing input packets, control means for controlling these input buffers, and at least one output port for transferring packets output from each of the input buffers. In the next phase, each of the input buffers directs the input buffer from the storage means to the output port in response to an instruction from the control means. A packet to be output by the selection unit, and an output unit that outputs the packet selected by the selection unit to the output port, the control unit including the selection unit in the entire plurality of input buffers. The output status of the packet selected by the means is grasped, and based on this output status, a new packet is selected and the plurality of input packets are selected. A packet transfer device characterized by instructing a power buffer.
【請求項6】 前記各入力バッファの選択手段は、それ
ぞれ、 各パケットの属する各仮想コネクション間でパケットの
転送が公平になるように前記蓄積手段から出力するパケ
ットを選択することを特徴とする請求項5記載のパケッ
ト転送装置。
6. The selection means of each of the input buffers selects a packet to be output from the storage means so that packet transfer is fair among the virtual connections to which each packet belongs. Item 5. The packet transfer device according to item 5.
【請求項7】 入力したパケットを一時的に蓄積するバ
ッファと、このバッファを制御する制御手段と、前記バ
ッファから出力されたパケットを転送する少なくとも1
つの出力ポートを具備したパケット転送装置であって、 前記制御手段は、 前記バッファ内に蓄積されたパケットを複数の集合に分
けて管理する管理手段と、 前記バッファに入力したパケットを各パケットの属する
フロー間で公平になるように前記複数の集合のいずれか
1つに振り分ける振り分け手段と、 前記管理手段で管理されている前記複数の集合のうちの
1つの集合に属するパケットを前記出力ポートに向けて
出力するよう前記バッファに対し指示する指示手段と、
を具備したことを特徴とするパケット転送装置。
7. A buffer for temporarily storing an input packet, control means for controlling the buffer, and at least one for transferring the packet output from the buffer.
A packet transfer device having one output port, wherein the control means divides and manages the packets accumulated in the buffer into a plurality of sets, and the packet input to the buffer belongs to each packet. Distribution means for allocating to any one of the plurality of sets so as to be fair among the flows, and directing packets belonging to one set of the plurality of sets managed by the management means to the output port Instruction means for instructing the buffer to output
A packet transfer device comprising:
【請求項8】 前記振り分け手段は、前記バッファに入
力したパケットを、そのパケットの属するフローの識別
情報と、各フローに対して定められた重み及び入力した
パケットの長さの少なくとも一方とに基づいて前記複数
の集合のいずれか1つに振り分けることを特徴とする請
求項7記載のパケット転送装置。
8. The allocating means determines the packet input to the buffer based on identification information of a flow to which the packet belongs, and at least one of a weight defined for each flow and an input packet length. 8. The packet transfer apparatus according to claim 7, wherein the packet transfer apparatus allocates the packet to any one of the plurality of sets.
【請求項9】 入力したパケットを一時的に蓄積する複
数のバッファが直列に接続されて構成され、前段に接続
されたバッファは後段に接続されたバッファに向けて、
該後段のバッファ内部のパケットの蓄積状況に応じて定
められるパケット出力/禁止状態に従って、パケットを
出力するパケット転送装置であって、 前記前段のバッファが前記後段のバッファにパケットを
出力可能な状態から出力禁止状態に変化した後最初に前
段のバッファへパケットが入力された時の前段に接続さ
れたバッファの蓄積状況を監視する手段を具備すること
を特徴とするパケット転送装置。
9. A plurality of buffers for temporarily accumulating input packets are connected in series, and a buffer connected to a front stage is directed toward a buffer connected to a rear stage,
A packet transfer device for outputting a packet in accordance with a packet output / prohibition state determined according to a packet accumulation state inside the latter-stage buffer, wherein the former-stage buffer is capable of outputting the packet to the latter-stage buffer. A packet transfer apparatus comprising means for monitoring the storage status of a buffer connected to the preceding stage when a packet is first input to the preceding buffer after changing to the output prohibited state.
【請求項10】 監視した前記蓄積状況に応じて、前記
前段のバッファが輻輳状態であると判定する手段を更に
備えることを特徴とする請求項9記載のパケット転送装
10. The packet transfer apparatus according to claim 9, further comprising means for determining that the buffer at the preceding stage is in a congestion state according to the monitored storage status.
【請求項11】 監視した前記蓄積状況に応じて入力パ
ケットを廃棄する手段を更に備えることを特徴とする請
求項9記載のパケット転送装置。
11. The packet transfer apparatus according to claim 9, further comprising means for discarding an input packet according to the monitored storage status.
【請求項12】 入力されたパケットを一時的に蓄積す
る少なくとも1つのバッファと、このバッファのパケッ
トの転送を制御する制御手段とを具備したパケット転送
装置であって、 前記制御手段は、 前記バッファに対するパケットの転送指示の履歴と前記
バッファのパケットの蓄積状況を基に前記バッファに対
しパケットの転送指示を行うことを特徴とするパケット
転送装置。
12. A packet transfer device comprising: at least one buffer for temporarily storing an input packet; and control means for controlling transfer of the packet in the buffer, wherein the control means is the buffer. And a packet transfer instruction to the buffer based on a history of packet transfer instructions to the buffer and a storage status of the packet in the buffer.
【請求項13】 前記制御手段は、 前記バッファが前記制御手段にパケットの蓄積状況を通
知してから、それに対応したパケットの転送指示が前記
バッファに作用するまでに、前記転送指示の履歴をもと
に前記バッファに作用するパケットの転送指示の回数を
判断し、その判断された転送指示の回数をもとに、前記
バッファのパケットの蓄積状況を修正し、その修正され
たパケットの蓄積状況をもとに前記バッファに対しパケ
ットの転送指示を行うことを特徴とする請求項12記載
のパケット転送装置。
13. The control means also keeps a history of the transfer instructions from when the buffer notifies the control means of a packet accumulation state until a corresponding packet transfer instruction acts on the buffer. And the number of packet transfer instructions acting on the buffer is determined, and based on the determined number of transfer instructions, the storage status of the packets in the buffer is corrected, and the corrected storage status of the packets is calculated. 13. The packet transfer device according to claim 12, wherein a packet transfer instruction is issued to said buffer.
【請求項14】 前記制御手段は、 前記バッファのパケットの蓄積状況を履歴として記憶
し、前記バッファが前記制御手段にパケットの蓄積状況
を通知してから、それに対応したパケットの転送指示が
前記バッファに作用するまでに、前記転送指示の履歴と
蓄積状況の履歴をもとに、前記バッファの転送状況を判
断し、その判断された転送状況をもとに、前記バッファ
のパケットの蓄積状況を修正し、その修正されたパケッ
トの蓄積状況をもとに前記バッファに対しパケットの転
送指示を行うことを特徴とする請求項12記載のパケッ
ト転送装置。
14. The control means stores the accumulation status of packets in the buffer as a history, and after the buffer notifies the control means of the accumulation status of packets, a transfer instruction of a packet corresponding thereto is issued to the buffer. Before the action is taken, the transfer status of the buffer is judged based on the transfer instruction history and the storage status history, and the packet storage status of the buffer is corrected based on the judged transfer status. 13. The packet transfer device according to claim 12, wherein a packet transfer instruction is issued to the buffer based on the corrected packet storage status.
JP21356996A 1995-09-18 1996-08-13 Packet transfer device Expired - Fee Related JP3673025B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21356996A JP3673025B2 (en) 1995-09-18 1996-08-13 Packet transfer device
US10/190,577 US6934296B2 (en) 1995-09-18 2002-07-09 Packet transfer device and packet transfer method adaptive to a large number of input ports

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-238867 1995-09-18
JP23886795 1995-09-18
JP21356996A JP3673025B2 (en) 1995-09-18 1996-08-13 Packet transfer device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005089214A Division JP3906231B2 (en) 1995-09-18 2005-03-25 Packet transfer device

Publications (2)

Publication Number Publication Date
JPH09149051A true JPH09149051A (en) 1997-06-06
JP3673025B2 JP3673025B2 (en) 2005-07-20

Family

ID=26519867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21356996A Expired - Fee Related JP3673025B2 (en) 1995-09-18 1996-08-13 Packet transfer device

Country Status (1)

Country Link
JP (1) JP3673025B2 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000069023A (en) * 1998-08-20 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> Method and device for accommodating user network
WO2002001821A1 (en) * 2000-06-29 2002-01-03 Nec Corporation Packet scheduling apparatus
KR100332938B1 (en) * 1998-08-27 2002-04-20 가네꼬 히사시 Device and method of multiplexing atm cells
JP2003511909A (en) * 1999-10-06 2003-03-25 テノー ネットワークス, インコーポレイテッド Packet buffering system and method with output queued in a hierarchy
WO2003098883A1 (en) * 2002-05-15 2003-11-27 Mitsubishi Denki Kabushiki Kaisha Packet scheduling system and packet scheduling method
WO2003103234A1 (en) * 2002-05-30 2003-12-11 松下電器産業株式会社 Packet transfer circuit and packet transfer method
US6831922B1 (en) 1999-05-12 2004-12-14 Nec Corporation Contention priority control circuit
WO2005006672A1 (en) * 2003-07-10 2005-01-20 Mitsubishi Denki Kabushiki Kaisha Hierarchical scheduling device
WO2005060185A1 (en) * 2003-12-17 2005-06-30 Mitsubishi Denki Kabushiki Kaisha Data transferring apparatus, cell multiplexing apparatus, and cell switch
JPWO2005079016A1 (en) * 2004-02-18 2007-08-30 三菱電機株式会社 Switch device
JP2007243452A (en) * 2006-03-07 2007-09-20 Toshiba Corp Communication apparatus and method
JP2008054127A (en) * 2006-08-25 2008-03-06 Ntt Communications Kk Gateway device, data aggregating device, data aggregation system, data transmission method and program
JP2008219926A (en) * 2008-04-03 2008-09-18 Matsushita Electric Ind Co Ltd Data transfer apparatus
JP2009542113A (en) * 2006-06-19 2009-11-26 ハリス コーポレイション Method and system for fault tolerant QoS
WO2011049019A1 (en) 2009-10-19 2011-04-28 日本電気株式会社 Communication system, flow control apparatus, flow table updating method and program
US7990860B2 (en) 2006-06-16 2011-08-02 Harris Corporation Method and system for rule-based sequencing for QoS
US8064464B2 (en) 2006-06-16 2011-11-22 Harris Corporation Method and system for inbound content-based QoS
US8300653B2 (en) 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
US8516153B2 (en) 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US8730981B2 (en) 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000069023A (en) * 1998-08-20 2000-03-03 Nippon Telegr & Teleph Corp <Ntt> Method and device for accommodating user network
KR100332938B1 (en) * 1998-08-27 2002-04-20 가네꼬 히사시 Device and method of multiplexing atm cells
US6831922B1 (en) 1999-05-12 2004-12-14 Nec Corporation Contention priority control circuit
JP2003511909A (en) * 1999-10-06 2003-03-25 テノー ネットワークス, インコーポレイテッド Packet buffering system and method with output queued in a hierarchy
WO2002001821A1 (en) * 2000-06-29 2002-01-03 Nec Corporation Packet scheduling apparatus
US7613114B2 (en) 2000-06-29 2009-11-03 Nec Corporation Packet scheduling apparatus
WO2003098883A1 (en) * 2002-05-15 2003-11-27 Mitsubishi Denki Kabushiki Kaisha Packet scheduling system and packet scheduling method
WO2003103234A1 (en) * 2002-05-30 2003-12-11 松下電器産業株式会社 Packet transfer circuit and packet transfer method
WO2005006672A1 (en) * 2003-07-10 2005-01-20 Mitsubishi Denki Kabushiki Kaisha Hierarchical scheduling device
WO2005060185A1 (en) * 2003-12-17 2005-06-30 Mitsubishi Denki Kabushiki Kaisha Data transferring apparatus, cell multiplexing apparatus, and cell switch
JP4499042B2 (en) * 2004-02-18 2010-07-07 三菱電機株式会社 Switch device
JPWO2005079016A1 (en) * 2004-02-18 2007-08-30 三菱電機株式会社 Switch device
JP2007243452A (en) * 2006-03-07 2007-09-20 Toshiba Corp Communication apparatus and method
JP4557911B2 (en) * 2006-03-07 2010-10-06 株式会社東芝 Communication apparatus and communication method
US8516153B2 (en) 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US7990860B2 (en) 2006-06-16 2011-08-02 Harris Corporation Method and system for rule-based sequencing for QoS
US8064464B2 (en) 2006-06-16 2011-11-22 Harris Corporation Method and system for inbound content-based QoS
JP2009542113A (en) * 2006-06-19 2009-11-26 ハリス コーポレイション Method and system for fault tolerant QoS
JP4814376B2 (en) * 2006-06-19 2011-11-16 ハリス コーポレイション Method and system for fault tolerant QoS
US8730981B2 (en) 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service
US8300653B2 (en) 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
JP2008054127A (en) * 2006-08-25 2008-03-06 Ntt Communications Kk Gateway device, data aggregating device, data aggregation system, data transmission method and program
JP4574600B2 (en) * 2006-08-25 2010-11-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 Gateway device, data aggregation device, data aggregation system, data transmission method, and program
JP2008219926A (en) * 2008-04-03 2008-09-18 Matsushita Electric Ind Co Ltd Data transfer apparatus
JP4582180B2 (en) * 2008-04-03 2010-11-17 パナソニック株式会社 Data transmission equipment
WO2011049019A1 (en) 2009-10-19 2011-04-28 日本電気株式会社 Communication system, flow control apparatus, flow table updating method and program
US8837286B2 (en) 2009-10-19 2014-09-16 Nec Corporation Communication system, flow control device, flow table updating method, and program

Also Published As

Publication number Publication date
JP3673025B2 (en) 2005-07-20

Similar Documents

Publication Publication Date Title
US6490248B1 (en) Packet transfer device and packet transfer method adaptive to a large number of input ports
US5732087A (en) ATM local area network switch with dual queues
JP3673025B2 (en) Packet transfer device
US7027457B1 (en) Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
EP1329058B1 (en) Allocating priority levels in a data flow
US7230923B2 (en) Time based packet scheduling and sorting system
US7317727B2 (en) Method and systems for controlling ATM traffic using bandwidth allocation technology
US6795442B1 (en) System and method for scheduling message transmission and processing in a digital data network
EP1327335B1 (en) Prioritising data with flow control
US5949757A (en) Packet flow monitor and control system
US8098580B2 (en) Priority scheduling using per-priority memory structures
KR100328642B1 (en) Arrangement and method relating to packet flow control
US6717912B1 (en) Fair discard system
US20110019544A1 (en) Systems for scheduling the transmission of data in a network device
JPH1188374A (en) Large capacity multi-class core atm switch architecture
WO2002049286A1 (en) Apparatus and methods for scheduling packets in a broadband data stream
JPH11112527A (en) Node equipment
US6246687B1 (en) Network switching system supporting guaranteed data rates
US6947380B1 (en) Guaranteed bandwidth mechanism for a terabit multiservice switch
EP0973304A2 (en) Apparatus and method for bandwidth management
WO2002098047A2 (en) System and method for providing optimum bandwidth utilization
JP3906231B2 (en) Packet transfer device
US7079545B1 (en) System and method for simultaneous deficit round robin prioritization
US9363186B2 (en) Hierarchical shaping of network traffic
EP1327334B1 (en) Policing data based on data load profile

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050325

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: 20050419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050421

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080428

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees