Claims
- 1. A method of shaping a plurality of connections in a switch, wherein a sequence of cells are received on one of said plurality of connections, said method comprising the steps of:
(a) storing a current cell and a next cell received on said one of said plurality of connections in a connection queue, wherein said sequence of cells include said current cell and said next cell; (b) placing cells received on said plurality of connections including said current cell in one of a plurality of buckets according to a conformance time of said current cell, wherein a bucket interval is associated with each of said plurality of buckets with each bucket interval having a start time coordinate and an end time coordinate, and wherein said bucket interval of said one of said plurality of buckets includes said conformance time of said current cell; (c) providing a memory for storing said conformance time of said current cell; (d) sending for transmission any cells present in said plurality of buckets, wherein each cell in said plurality of buckets is sent for transmission at or after a present time reaches a corresponding conformance time, whereby said plurality of connections are shaped; and (e) computing a conformance time of said next cell, wherein said conformance time of said next cell is computed to be equal to said conformance time of said current cell plus an intercell time of said one of said plurality of connections if said current cell is sent for transmission within said intercell time prior to said present time, wherein said intercell time is inversely proportional to a shaping rate of said one of said plurality of connections, and wherein said conformance time of said current cell is not used in computing said conformance time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time, whereby said conformance time of said current cell is not stored in said memory if said current cell is not sent for transmission within said intercell time prior to said present time.
- 2. The method of claim 1, wherein step (e) further comprises the step of setting the conformance time of said next cell to an arrival time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time.
- 3. The method of claim 2, further comprising the step of placing said next cell in one of said plurality of buckets after said current cell is sent for transmission.
- 4. The method of claim 3, wherein said arrival time is measured by a time said next cell is placed in one of said plurality of buckets.
- 5. The method of claim 1, wherein an intercell time is associated with each of said plurality of connections and wherein said plurality of intercell times include a maximum intercell time, and wherein said method further comprises the steps of:
(f) determining whether said bucket interval associated with each of said plurality of buckets is prior at least by said maximum intercell time from said present time; (g) forming a frozen queue comprising those of said plurality of buckets having bucket intervals prior at least by said maximum intercell time from said present time; and (h) computing a conformance time of a subsequent cell of each of any cells in said frozen queue without using the conformance time of any cells in said frozen queue, whereby conformance times of any cells in said frozen queue need not be stored in said memory.
- 6. The method of claim 1, further comprising the step of dynamically changing the shaping rate of said one of said plurality of connections.
- 7. The method of claim 6, wherein said step of dynamically changing the shaping rate of said one of said one of said plurality of connections further comprises the steps:
determining a new intercell arrival time corresponding to the changed shaping rate; computing conformance time of any subsequently received cells according to said new intercell arrival time; placing each of said subsequently received cells in one of said plurality of buckets according to said computed conformance time and bucket intervals of said plurality of buckets; and sending for transmission each of said subsequently received cells only at or after a corresponding conformance time is reached.
- 8. The method of claim 2, wherein cells received on said plurality of connections are assigned to be transmitted on an output port of said switch, said method comprising the further step of:
computing the conformance time of each cell received on any of said plurality of connections according to step (e); placing each of said cells received on said connections in a bucket with a bucket interval including the corresponding conformance time; and sending for transmission all cells in a current bucket before considering cells in a next bucket for transmission, such that each of said connections are fairly scheduled.
- 9. The method of claim 8, further comprising the steps of:
storing cells of each connection in a corresponding one of a plurality of connection queues, wherein said connection queue of step (a) is included in said plurality of connection queues; and transferring only a head cell in each of said connection queues to one of said sequence of buckets according to the corresponding conformance time.
- 10. The method of claim 9, further comprising the step of implementing each of said sequence of buckets as a FIFO such that a cell placed first in a bucket is transmitted first irrespective of whether the conformance time of the first cell in the FIFO order is earlier or later than the conformance times of cells later in the FIFO order.
- 11. The method of claim 10, further comprising the step of scheduling cells received on said plurality of connections using a hierarchical scheme, wherein said sequence of buckets form one of a plurality of groups, and wherein said hierarchical scheme further comprises the step of:
selecting one of said plurality of groups; and selecting the next cell from said plurality of buckets for transmission if the group containing said plurality of buckets is selected.
- 12. 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; (b) storing said sequence of cells in said switch; and (c) forwarding said sequence of cells on a port of said switch only after said last cell is received in said switch.
- 13. The method of claim 12, wherein step (a) comprises the step of receiving said sequence of cells on a connection, wherein step (b) comprises the step of storing said sequence of cells in a connection queue, and wherein the method comprises the further step of:
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 sending 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.
- 14. The method of claim 13, wherein said sequence of buckets serve a plurality of connections including said connection, wherein said method comprises the further steps of:
storing in said connection queue a next 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 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.
- 15. The method of claim 14, wherein said plurality of buckets form a group serving only connections transmitting frames, and each of said plurality of connections transmits only cells forming frames.
- 16. The method of claim 14, further comprising the step of placing the head cell of said next frame in said bucket only after said head cell of said transmitted frame is scheduled for transmission.
- 17. A switch for shaping a plurality of connections in a switch, wherein a sequence of cells are received on one of said plurality of connections, said switch comprising:
means for storing a current cell and a next cell received on said one of said plurality of connections in a connection queue, wherein said sequence of cells include said current cell and said next cell; means for placing cells received on said plurality of connections including said current cell in one of a plurality of buckets according to a conformance time of said current cell, wherein a bucket interval is associated with each of said plurality of buckets with each bucket interval having a start time coordinate and an end time coordinate, and wherein said bucket interval of said one of said plurality of buckets includes said conformance time of said current cell; means for providing a memory for storing said conformance time of said current cell; means for sending for transmission any cells present in said plurality of buckets, wherein each cell in said plurality of buckets is sent for transmission at or after a present time reaches a corresponding conformance time, whereby said plurality of connections are shaped; and means for computing a conformance time of said next cell, wherein said conformance time of said next cell is computed to be equal to said conformance time of said current cell plus an intercell time of said one of said plurality of connections if said current cell is sent for transmission within said intercell time prior to said present time, wherein said intercell time is inversely proportional to a shaping rate of said one of said plurality of connections, and wherein said conformance time of said current cell is not used in computing said conformance time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time, whereby said conformance time of said current cell is not stored in said memory if said current cell is not sent for transmission within said intercell time prior to said present time.
- 18. The switch of claim 17, wherein said means for computing comprises means for setting the conformance time of said next cell to an arrival time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time.
- 19. The switch of claim 18, further comprising means for placing said next cell in one of said plurality of buckets after said current cell is sent for transmission.
- 20. The switch of claim 19, wherein said arrival time is measured by a time said next cell is placed in one of said plurality of buckets.
- 21. The switch of claim 17, wherein an intercell time is associated with each of said plurality of connections and wherein said plurality of intercell times include a maximum intercell time, and wherein said switch further comprises:
means for determining whether said bucket interval associated with each of said plurality of buckets is prior at least by said maximum intercell time from said present time; means for forming a frozen queue comprising those of said plurality of buckets having bucket intervals prior at least by said maximum intercell time from said present time; and means for computing a conformance time of a subsequent cell of each of any cells in said frozen queue without using the conformance time of any cells in said frozen queue, whereby conformance times of any cells in said frozen queue need not be stored in said memory.
- 22. The switch of claim 17, further comprising means for dynamically changing the shaping rate of said one of said plurality of connections.
- 23. The switch of claim 22, wherein said means for dynamically changing the shaping rate of said one of said one of said plurality of connections further comprises:
means for determining a new intercell arrival time corresponding to the changed shaping rate; means for computing conformance time of any subsequently received cells according to said new intercell arrival time; means for placing each of said subsequently received cells in one of said plurality of buckets according to said computed conformance time and bucket intervals of said plurality of buckets; and means for sending for transmission each of said subsequently received cells only at or after a corresponding conformance time is reached.
- 24. The switch of claim 18, wherein cells received on said plurality of connections are assigned to be transmitted on an output port of said switch, said switch further comprising:
means for computing the conformance time of each cell received on any of said plurality of connections; means for placing each of said cells received on said connections in a bucket with a bucket interval including the corresponding conformance time; and means for sending for transmission all cells in a current bucket before considering cells in a next bucket for transmission, such that each of said connections are fairly scheduled.
- 25. The switch of claim 24, further comprising:
means for storing cells of each connection in a corresponding one of a plurality of connection queues, wherein said connection queue is included in said plurality of connection queues; and means for transferring only a head cell in each of said connection queues to one of said sequence of buckets according to the corresponding conformance time.
- 26. The switch of claim 25, further comprising means for implementing each of said sequence of buckets as a FIFO such that a cell placed first in a bucket is transmitted first irrespective of whether the conformance time of the first cell in the FIFO order is earlier or later than the conformance times of cells later in the FIFO order.
- 27. The switch of claim 26, further comprising means for scheduling cells received on said plurality of connections using a hierarchical scheme, wherein said sequence of buckets form one of a plurality of groups, and said switch further comprises:
means for selecting one of said plurality of groups; and means for selecting the next cell from said plurality of buckets for transmission if the group containing said plurality of buckets is selected.
- 28. 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; means for storing said sequence of cells in 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.
- 29. The switch of claim 28, wherein said means for receiving comprises means for receiving said sequence of cells on a connection, wherein said means for storing comprises means for buffering said sequence of cells in a connection queue, and wherein the switch further comprises:
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 sending 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.
- 30. The switch of claim 29, 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 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 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.
- 31. The switch of claim 30, wherein said number of buckets is also directly proportional to the number of cells in said frame.
- 32. The switch of claim 30, wherein said plurality of buckets form a group serving only connections transmitting frames, and each of said plurality of connections transmits only cells forming frames.
- 33. The switch of claim 30, further comprising means for placing the head cell of said next frame in said bucket only after said head cell of said transmitted frame is scheduled for transmission.
- 34. A switch for shaping a plurality of connections in a switch, wherein a sequence of cells are received on one of said plurality of connections, said switch comprising:
a queue manager for storing a current cell and a next cell received on said one of said plurality of connections in a connection queue, wherein said sequence of cells include said current cell and said next cell; a memory; an output port for transmitting said sequence of cells; a scheduler for computing a conformance time for each of said sequence of cells, said scheduler placing each of said sequence of cells in one of a plurality of buckets according to the conformance time of the corresponding cell, wherein a bucket interval is associated with each of said plurality of buckets with each bucket interval having a start time coordinate and an end time coordinate, and wherein each of said sequence of cells is placed in a bucket with a bucket interval which includes the conformance time of the corresponding cell; said scheduler sending for transmission on said output port cells present in said plurality of buckets, wherein each cell in said plurality of buckets is sent for transmission at or after a present time reaches a corresponding conformance time, whereby said plurality of connections are shaped; and said scheduler computing a conformance time of said next cell to equal the conformance time of said current cell plus an intercell time of the connection on which said current cell is received if said current cell is sent for transmission within said intercell time prior to said present time, wherein said intercell time is inversely proportional to a shaping rate of said connection on which said current cell is received, and wherein said scheduler does not use the conformance time of said current cell in computing said conformance time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time, whereby said conformance time of said current cell is not stored in said memory if said current cell is not sent for transmission within said intercell time prior to said present time.
- 35. The switch of claim 34, wherein said scheduler sets the conformance time of said next cell to an arrival time of said next cell if said current cell is not sent for transmission within said intercell time prior to said present time.
- 36. The switch of claim 35, wherein said scheduler places said next cell in one of said plurality of buckets after said current cell is sent for transmission.
- 37. The switch of claim 34, wherein an intercell time is associated with each of said plurality of connections and wherein said plurality of intercell times include a maximum intercell time, and wherein said scheduler determines whether said bucket interval associated with each of said plurality of buckets is prior at least by said maximum intercell time from said present time, and forms a frozen queue comprising those of said plurality of buckets having bucket intervals prior at least by said maximum intercell time from said present time, said scheduler computing the conformance time of a subsequent cell of each of any cells in said frozen queue without using the conformance time of any cells in said frozen queue, whereby conformance times of any cells in said frozen queue need not be stored in said memory.
- 38. The switch of claim 34, wherein the scheduler provides for dynamically changing the shaping rate associated with one of said plurality of connections.
- 39. The switch of claim 38, wherein said scheduler determines a new intercell arrival time corresponding to the changed shaping rate, computes the conformance time of any subsequently received cells according to said new intercell arrival time, and places each of said subsequently received cells in one of said plurality of buckets according to said computed conformance time and bucket intervals of said plurality of buckets.
- 40. 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; a queue manager for storing said sequence of cells in said switch; 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.
- 41. The switch of claim 39, wherein said ingress processor receives said sequence of cells on a connection, wherein said queue manager stores said sequence of 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 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.
RELATED APPLICATIONS
[0001] The present application is related to the co-pending United States Patent Application Entitled, “Queue Management with Support for Multicasts in an Asynchronous Transfer Mode (ATM) Switch”, Filed on even date herewith, Serial Number UNASSIGNED, and attorney docket No.: CSIZ-0001, (hereafter “RELATED APPLICATION 1”) and is incorporated by reference in its entirety herewith.
Continuations (1)
|
Number |
Date |
Country |
Parent |
08976686 |
Nov 1997 |
US |
Child |
10103912 |
Mar 2002 |
US |