Flexible scheduler in an asynchronous transfer mode (ATM) switch
First Claim
1. A method of processing a sequence of cells forming a frame in a switch, said method comprising the step of:
- (a) receiving said sequence of cells including a head cell, a plurality of intermediate cells and a last cell, wherein step (a) comprises the step of receiving said sequence of cells on a connection;
(b) storing said sequence of cells in said switch, wherein step (b) comprises the step of storing said sequence of cells in a connection queue;
(c) placing said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve an output port of said switch; and
(d) forwarding said sequence of cells on a port of said switch only after said last cell is received in said switch, wherein said sequence of cells are sent for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said sequence of buckets is reached, wherein said sequence of buckets serve a plurality of connections including said connection, storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly.
3 Assignments
0 Petitions
Accused Products
Abstract
A flexible scheduler in an ATM switch. The scheduler enables each connection to be served fairly according to associated quality of service parameters, while enabling several other features. A connection can be shaped while minimizing additional memory and processing requirements. Specifically, the conformance time of cells of a connections need not be stored when significant backlog exists in the transmission of the cells. The shaping rate can be dynamically varied. Sequence of cells forming a frame are buffered in the ATM switch until the end of frame cell is received. All the cells of a frame are then sent in quick succession.
57 Citations
25 Claims
-
1. A method of processing a sequence of cells forming a frame in a switch, said method comprising the step of:
-
(a) receiving said sequence of cells including a head cell, a plurality of intermediate cells and a last cell, wherein step (a) comprises the step of receiving said sequence of cells on a connection;
(b) storing said sequence of cells in said switch, wherein step (b) comprises the step of storing said sequence of cells in a connection queue;
(c) placing said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve an output port of said switch; and
(d) forwarding said sequence of cells on a port of said switch only after said last cell is received in said switch, wherein said sequence of cells are sent for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said sequence of buckets is reached, wherein said sequence of buckets serve a plurality of connections including said connection, storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A switch for processing a sequence of cells forming a frame in a switch, said switch comprising:
-
means for receiving said sequence of cells including a head cell, a plurality of intermediate cells and a last cell, wherein said means for receiving comprises means for receiving said sequence of cells on a connection;
means for storing said sequence of cells in said switch, wherein said means for storing comprises means for buffering said sequence of cells in a connection queue;
means for placing said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve an output port of said switch; and
means for forwarding said sequence of cells on a port of said switch only after said last cell is received in said switch, where said sequence of cells are sent for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said plurality of buckets is reached, wherein said sequence of buckets serve a plurality of connections including said connection, wherein said switch further comprises;
means for storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
means for placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A switch for processing a sequence of cells forming a frame in a switch, said switch comprising:
-
an ingress processor for receiving said sequence of cells including a head cell, a plurality of intermediate cells and a last cell, wherein said ingress processor receives said sequence of cells on a connection;
a queue manager for storing said sequence of cells in said switch, wherein said queue manager stores said sequence of cells in a connection queue;
an output port for transmitting said sequence of cells; and
a scheduler for forwarding said sequence of cells on said output port only after said last cell is received in said switch, wherein said scheduler places said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve said output port, and wherein said scheduler forwards said sequence of cells for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said plurality of buckets is reached, said queue manager storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly. - View Dependent Claims (15, 16, 17)
-
-
18. A method of processing a sequence of unicast cells forming a unicast frame in a switch, said method comprises:
-
receiving said sequence of unicast cells on a unicast virtual connection, said sequence of unicast cells including a head cell, a plurality of intermediate cells and a last cell, said unicast virtual connection comprising a connection;
storing said sequence of unicast cells in a connection queue in said switch;
placing said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve an output port of said switch, wherein said sequence of buckets serve a plurality of connections including said connection;
forwarding said sequence of unicast cells on a port of said switch only after said last cell is received in said switch, said sequence of unicast cells being forwarded on the same unicast virtual connection as said unicast virtual connection on which said sequence of unicast cells are received such that said unicast virtual connection is not merged with other unicast virtual connections when said sequence of unicast cells are transmitted from said switch, wherein said sequence of unicast cells are sent for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said sequence of buckets is reached;
storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly. - View Dependent Claims (19, 20)
-
-
21. A switch for processing a sequence of unicast cells forming a unicast frame, wherein said switch comprises:
-
means for receiving said sequence of unicast cells on a unicast virtual connection, said sequence of unicast cells including a head cell, a plurality of intermediate cells and a last cell, said unicast virtual connection comprising a connection;
means for storing said sequence of unicast cells in a connection queue in said switch;
means for placing said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve an output port of said switch, wherein said sequence of buckets serve a plurality of connections including said connection;
means for forwarding said sequence of unicast cells on a port of said switch only after said last cell is received in said switch, said sequence of unicast cells being forwarded on the same unicast virtual connection as said unicast virtual connection on which said sequence of unicast cells are received such that said unicast virtual connection is not merged with other unicast virtual connections when said sequence of unicast cells are transmitted from said switch, wherein said sequence of unicast cells are sent for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said sequence of buckets is reached;
means for storing in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection; and
means for placing said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly. - View Dependent Claims (22, 23, 24)
-
-
25. A switch for processing a sequence of unicast cells forming a frame in a switch, said switch comprising:
-
an ingress processor receiving said sequence of unicast cells including a head cell, a plurality of intermediate cells and a last cell;
a queue manager storing said sequence ;
of unicast cells in said switch;
an output port transmitting said sequence of unicast cells; and
a scheduler forwarding said sequence of unicast cells on a port of said switch only after said last cell is received in said switch, said sequence of unicast cells being forwarded on the same unicast virtual connection as said unicast virtual connection on which said sequence of unicast cells are received such that said unicast virtual connection is not merged with other unicast virtual connections when said sequence of unicast cells are transmitted from said switch, wherein said ingress processor receives said sequence of unicast cells on a connection, wherein said queue manager stores said sequence of unicast cells in a connection queue, and wherein said scheduler places said head cell in one of a sequence of buckets of a group, wherein a plurality of groups are provided to serve said output port, and wherein said scheduler forwards said sequence of unicast cells for transmission in successive turns allocated to said group immediately after the turn of said head cell in said one of said plurality of buckets is reached; and
wherein said queue manager stores in said connection queue a next unicast frame including a head cell, a last cell, and a plurality of intermediate cells on said connection, and places said head cell of said next unicast frame in a bucket which is away from said one of said sequence of buckets storing said head cell of said frame by a number of buckets inversely proportional to the desired bandwidth for said connection such that said plurality of connections are scheduled fairly.
-
Specification