Data packet scheduler
First Claim
Patent Images
1. In a system for switching a plurality of data packets, a method comprising:
- (a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute;
(b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value in a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot;
(c) assigning different assignment numbers to each member of the vector list;
(d) shuffling the different assignment numbers among members of the vector list;
(e) selecting a vector from the vector list in accordance with a numerical ordering of the different assignment numbers; and
(f) transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
3 Assignments
0 Petitions
Accused Products
Abstract
Data switching systems for use in ATM and other packet and cell switching networks can more smoothly switch data if incoming data packets to be switched are re-ordered to avoid overwhelming an output port with too many consecutive packets to a particular destination. An apparatus and method for simply re-ordering data samples in a non-consecutive manner is computationally efficient and effective.
14 Citations
17 Claims
-
1. In a system for switching a plurality of data packets, a method comprising:
-
(a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value in a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) shuffling the different assignment numbers among members of the vector list; (e) selecting a vector from the vector list in accordance with a numerical ordering of the different assignment numbers; and (f) transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a system for switching a plurality of packets, a method comprising:
-
(a) queuing the plurality of data packets into a plurality of data queses, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute, (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queries, the remaining vector value is a null-vector indicating that none of the plurality of packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) assigning different assignment numbers to each member of a timeslot list, wherein each member of the timeslot list corresponds to an assigned timeslot for transporting one of the plurality of data packets; (e) defining a one-to-one correspondence between the different assignment numbers in the vector list and the different assignment numbers in the timeslot list; (f) selecting a vector from the vector list comprising; (i) accessing a member of the timeslot list in accordance with a next timeslot for transport to the switching fabric; (ii) determining an assignment number associated with the member of the timeslot list; and (iii) obtaining a vector from a member of the vector list, wherein the assignment number associated with the member of the timeslot list maps to an assignment number associated with the member of the vector list in accordance with the one-to-one correspondence; and (g) transferring into the switching fabric the one of the plurality of packets from a data queue corresponding to the vector. - View Dependent Claims (13)
-
-
14. In a system for switching a plurality of data packets, a method comprising:
-
(a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) associating second assignment numbers to the different assignment numbers, wherein an ordering of the second assignment numbers is a shuffling of an ordering of the different assignment numbers; (e) selecting a vector from the vector list in accordance with the ordering of the second assignment numbers; and (f) transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
-
-
15. A switching system for switching a plurality of data packets, comprising:
-
a data buffer that queues the plurality of data packets into a plurality of data queues, each of the plurality of data queues corresponding to a value of at least one attribute and each of the plurality of data packets being associated with the at least one attribute; a switching fabric; a memory device that stores a vector list, each vector being chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queries, the remaining vector value being a null-vector indicating that none of the plurality of data packets is sent into the switching fabric during a corresponding time slot; and a scheduler that; assigns different assignment numbers to each member of the vector list; shuffles the different assignment numbers among members of the vector list; selects a vector from the vector list in accordance with a numerical ordering of the different assignment numbers; and transfers into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
-
-
16. A switching system for switching a plurality of data packets, comprising:
-
a data buffer that queues the plurality of data packets into a plurality of data queues, each of the plurality of data queues corresponding to a value of at least one attribute and each of the plurality of data packets being associated with the at least one attribute; a switching fabric; a memory device that stores a vector list, each vector being chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queries, the remaining vector value being a null-vector indicating that none of the plurality of packets is sent into the switching fabric during a corresponding time slot; and a scheduler that; assigns different assignment numbers to each member of the vector list; assigns different assignment numbers to each member of a timeslot list, each member of the timeslot list corresponding to an assigned timeslot for transporting one of the plurality of data packets; defines a one-to-one correspondence between the different assignment numbers in the vector list and the different assignment numbers in the timeslot list; selects a vector from the vector list by; (i) accessing a member of the timeslot list in accordance with a next timeslot for transport to the switching fabric; (ii) determining an assignment number associated with the member of the timeslot list; and (iii) obtaining a vector from a member of the vector list the assignment number being associated with the member of the timeslot list mapping to an assignment number associated with the member of the vector list in accordance with the one-to-one correspondence; and
transfers into the switching fabric the one of the plurality of packets from a data queue corresponding to the vector.
-
-
17. A switching system for switching a plurality of data packets, comprising:
-
a data buffer that queues the plurality of data packets into a plurality of data queues, each of the plurality of data queues corresponding to a value of at least one attribute and each of the plurality of data packets being associated with the at least one attribute; a switching fabric; a memory device that stores a vector list, each vector being chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queries, the remaining vector value being a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding timeslot; and a scheduler that; assigns different assignment numbers to each member of the vector list; associates second assignment numbers to the different assignment numbers, wherein an ordering of the second assignment numbers is a shuffling of an ordering of the different assignment numbers; selects a vector from the vector list in accordance with the ordering of the second assignment numbers; and transfers into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
-
Specification