Slow-start packet scheduling particularly applicable to systems including a non-blocking switching fabric and homogeneous or heterogeneous line card interfaces
First Claim
1. A method, comprising:
- identifying a set of requests corresponding to packets desired to be sent from a plurality of inputs across a packet switch to a particular output, the set of requests including j requests from a particular source with the ability to send k packets during a particular packet time and having a saturation level of s packets;
slow-start adjusting the value of said j to a slow-start value, wherein the slow-start value is less than said k when a number of packets corresponding to the particular source is less than said s;
maintaining a grant starting position;
determining a grant advancement position;
identifying a first n requests in a predetermined sequence starting from the grant starting position, where n is less than or equal to the maximum number of packets that can be sent in a single packet time to the particular output; and
wherein the first n requests include the slow-start value number of requests from the particular source; and
updating the grant starting position in response to the first n grants including a particular grant corresponding to the grant advancement position.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are disclosed for slow-start scheduling packets, such as in systems having a non-blocking switching fabric and homogeneous or heterogeneous line card interfaces. In one implementation, multiple request generators, grant arbiters, and acceptance arbiters work in conjunction to determine the scheduling of packets. A set of requests for sending packets from a particular input is identified. The number of requests is possibly reduced to a value less than the number of packets that can be sent from the particular source if the particular input is not saturated. Otherwise, when the particular input is saturated, the number of requests remains the same or is reduced to the maximum number of packets that can be sent during a packet time.
-
Citations
14 Claims
-
1. A method, comprising:
-
identifying a set of requests corresponding to packets desired to be sent from a plurality of inputs across a packet switch to a particular output, the set of requests including j requests from a particular source with the ability to send k packets during a particular packet time and having a saturation level of s packets; slow-start adjusting the value of said j to a slow-start value, wherein the slow-start value is less than said k when a number of packets corresponding to the particular source is less than said s; maintaining a grant starting position; determining a grant advancement position; identifying a first n requests in a predetermined sequence starting from the grant starting position, where n is less than or equal to the maximum number of packets that can be sent in a single packet time to the particular output; and
wherein the first n requests include the slow-start value number of requests from the particular source; andupdating the grant starting position in response to the first n grants including a particular grant corresponding to the grant advancement position. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus, comprising:
-
a plurality of request generators; a plurality of grant arbiters coupled to the plurality of request generators; a plurality of acceptance arbiters coupled to the plurality of grant arbiters; wherein each of the plurality of request generators is configured for generating requests for its associated input of a plurality of inputs of a switch, wherein said requests include j requests from a particular source with the ability to send k packets during a particular packet time and having a saturation level of s packets, and a request generator corresponding to the particular source of the plurality of request generators is configured to slow-start adjust the value of said j to a slow-start value, wherein the slow-start value is less than said k when a number of packets corresponding to the particular source is less than said s; wherein each of the plurality of grant arbiters is configured for generating grants based on one or more received requests, said grants corresponding to authorization to send to its associated output of a plurality of outputs of the switch, where said generating grants includes maintaining a grant starting position, determining a grant advancement position, identifying a first n requests in a predetermined sequence starting from the grant starting position, where n is less than or equal to the maximum number of packets that can be sent in a single packet time to said associated output; and
updating the grant starting position in response to the first n grants including a particular grant corresponding to the grant advancement position; andwherein each of the plurality of acceptance arbiters is configured for generating acceptances based on one or more received grants, said acceptances corresponding to its associated input of the plurality of inputs. - View Dependent Claims (6)
-
-
7. A computer-readable medium tangibly storing thereon computer-executable instructions for performing steps when executed by a computer, said steps comprising:
-
identifying a set of requests corresponding to packets desired to be sent from a plurality of inputs across a packet switch to a particular output, the set of requests including i requests from a particular source with the ability to send k packets during a particular packet time and having a saturation level of s packets; slow-start adjusting the value of said j to a slow-start value, wherein the slow-start value is less than said k when a number of packets corresponding to the particular source is less than said s; maintaining a grant starting position; determining a grant advancement position; identifying a first n requests in a predetermined sequence starting from the grant starting position, where n is less than or equal to the maximum number of packets that can be sent in a single packet time to the particular output; and
wherein the first n requests include the slow-start value number of requests from the particular source; andupdating the grant starting position in response to the first n grants including a particular grant corresponding to the grant advancement position. - View Dependent Claims (8, 9, 10)
-
-
11. An apparatus, comprising:
-
means for identifying a set of requests corresponding to packets desired to be sent from a plurality of inputs across a packet switch to a particular output, the set of requests including j requests from a particular source with the ability to send k packets during a particular packet time and having a saturation level of s packets; means for slow-start adjusting the value of said j to a slow-start value, wherein the slow-start value is less than said k when a number of packets corresponding to the particular source is less than said s; means for maintaining a grant starting position; means for determining a grant advancement position; means for identifying a first n requests in a predetermined sequence starting from the grant starting position, where n is less than or equal to the maximum number of packets that can be sent in a single packet time to the particular output; and
wherein the first n requests include the slow-start value number of requests from the particular source; andmeans for updating the grant starting position in response to the first n grants including a particular grant corresponding to the grant advancement position. - View Dependent Claims (12, 13, 14)
-
Specification