Maintaining packet order using hash-based linked-list queues
First Claim
Patent Images
1. A device comprising:
- a first memory to store a plurality of groups of entries,each group of entries, of the plurality of groups of entries, corresponding to a different one of a plurality of data flows, andeach group of entries, of the plurality of groups of entries, identifying an order of data units of a corresponding one of the plurality of data flows;
a second memory to store information identifying a head data unit of each of the plurality of data flows;
a third memory to store data units of a particular data flow of the plurality of data flows; and
an output unit to transmit the data units, of the particular data flow, based on;
a group of entries, of the plurality of groups of entries, corresponding to the particular data flow, andthe information, stored in the second memory, associated with the particular data flow,a particular address of a first entry, of the group of entries corresponding to the particular data flow, corresponding to a processing unit that processes information related to a particular data unit of the data units of the particular data flow, andthe first entry identifying another processing unit that processes information related to another data unit of the data units of the particular data flow,the particular data unit preceding the other data unit in the particular data flow.
0 Assignments
0 Petitions
Accused Products
Abstract
Ordering logic ensures that data items being processed by a number of parallel processing units are unloaded from the processing units in the original per-flow order that the data items were loaded into the parallel processing units. The ordering logic includes a pointer memory, a tail vector, and a head vector. Through these three elements, the ordering logic keeps track of a number of “virtual queues” corresponding to the data flows. A round robin arbiter unloads data items from the processing units only when a data item is at the head of its virtual queue.
19 Citations
20 Claims
-
1. A device comprising:
-
a first memory to store a plurality of groups of entries, each group of entries, of the plurality of groups of entries, corresponding to a different one of a plurality of data flows, and each group of entries, of the plurality of groups of entries, identifying an order of data units of a corresponding one of the plurality of data flows; a second memory to store information identifying a head data unit of each of the plurality of data flows; a third memory to store data units of a particular data flow of the plurality of data flows; and an output unit to transmit the data units, of the particular data flow, based on; a group of entries, of the plurality of groups of entries, corresponding to the particular data flow, and the information, stored in the second memory, associated with the particular data flow, a particular address of a first entry, of the group of entries corresponding to the particular data flow, corresponding to a processing unit that processes information related to a particular data unit of the data units of the particular data flow, and the first entry identifying another processing unit that processes information related to another data unit of the data units of the particular data flow, the particular data unit preceding the other data unit in the particular data flow. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
storing, by a device and in a first memory, a plurality of groups of entries, each group of entries, of the plurality of groups of entries, corresponding to a different one of a plurality of data flows, and each group of entries, of the plurality of groups of entries, identifying an order of data units of a corresponding one of the plurality of data flows; storing, by the device and in a second memory, information identifying a head data unit of each of the plurality of data flows; and transmitting, by the device, data units of a particular data flow of the plurality of data flows, the data units, of the particular data flow, being transmitted based on; a group of entries, of the plurality of groups of entries, corresponding to the particular data flow, and the information, stored in the second memory, identifying the head data unit of the particular data flow, a particular address of a first entry, of the group of entries corresponding to the particular data flow, corresponding to a processing unit that processes information related to a particular data unit of the data units of the particular data flow, and the first entry identifying a processing unit that processes information related to another data unit of the data units of the particular data flow,
the particular data unit preceding the other data unit in the particular data flow. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
a device comprising; a first memory to store a plurality of groups of entries, each group of entries, of the plurality of groups of entries, corresponding to a different one of a plurality of data flows, each group of entries, of the plurality of groups of entries, identifying an order of data units of a corresponding one of the plurality of data flows; and a second memory to store information identifying a head data unit of each of the plurality of data flows, the device transmitting data units, of a particular data flow of the plurality of data flows, based on; a group of entries, of the plurality of groups of entries, corresponding to the particular data flow, and the information, stored in the second memory, identifying the head data unit of the particular data flow, a particular address of a first entry, of the group of entries corresponding to the particular data flow, corresponding to a processing unit that processes information related to a particular data unit of the data units of the particular data flow, and the first entry identifying a processing unit that processes information related to another data unit of the data units of the particular data flow,
the particular data unit preceding the other data unit in the particular data flow.- View Dependent Claims (15, 16, 17, 18, 19, 20)
Specification