System and method for ordering of data transferred over multiple channels
First Claim
Patent Images
1. A method for ordering data transferred over multiple channels, comprising:
- receiving a plurality of data packets of a particular packet flow over different ones of a plurality of channels, each data packet including a respective sequence number, the plurality of data packets being received in a non-sequential order;
storing each of the plurality of data packets in a buffer according to its respective sequence number;
reading a first one of the plurality of data packets from the buffer according to its respective sequence number in response to storing in the buffer a second one of the plurality of data packets having an adjacent subsequent sequence number, in order to read the plurality of data packets in a sequential order;
setting a valid bit associated with data packets of the plurality of data packets in response to the data packets being stored in the buffer, wherein the valid bit is the next sequential valid bit relative to an immediately preceding valid bit; and
clearing the immediately preceding valid bit in response to data packets associated with the immediately preceding valid bit being read from the buffer.
8 Assignments
0 Petitions
Accused Products
Abstract
A multiple channel data transfer system (10) includes a source (12) that generates data packets with sequence numbers for transfer over multiple request channels (14). Data packets are transferred over the multiple request channels (14) through a network (16) to a destination (18). The destination (18) re-orders the data packets received over the multiple request channels (14) into a proper sequence in response to the sequence numbers to facilitate data processing. The destination (18) provides appropriate reply packets to the source (12) over multiple response channels (20) to control the flow of data packets from the source (12).
20 Citations
17 Claims
-
1. A method for ordering data transferred over multiple channels, comprising:
-
receiving a plurality of data packets of a particular packet flow over different ones of a plurality of channels, each data packet including a respective sequence number, the plurality of data packets being received in a non-sequential order; storing each of the plurality of data packets in a buffer according to its respective sequence number; reading a first one of the plurality of data packets from the buffer according to its respective sequence number in response to storing in the buffer a second one of the plurality of data packets having an adjacent subsequent sequence number, in order to read the plurality of data packets in a sequential order; setting a valid bit associated with data packets of the plurality of data packets in response to the data packets being stored in the buffer, wherein the valid bit is the next sequential valid bit relative to an immediately preceding valid bit; and clearing the immediately preceding valid bit in response to data packets associated with the immediately preceding valid bit being read from the buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable medium having embodied thereon a program executable by a processor for ordering data transferred over multiple channels, the executable code operable to cause one or more processors to:
-
receive a plurality of data packets of a particular packet flow over different ones of a plurality of channels, each data packet including a respective sequence number, the plurality of data packets being received in a non-sequential order; store each of the plurality of data packets in a buffer according to its respective sequence number; read a first one of the plurality of data packets from the buffer according to its respective sequence number in response to storing in the buffer a second one of the plurality of data packets having an adjacent subsequent sequence number, in order to read the plurality of data packets in a sequential order; set a valid bit associated with data packets in response to the data packets associated with an immediately preceding valid bit being stored in the buffer, wherein the valid bit is the next sequential valid bit relative to the immediately preceding valid bit; and clear the immediately preceding valid bit in response to the data packets associated with the immediately preceding valid bit being read from the buffer. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for ordering data transferred over multiple channels, the system comprising:
-
a processor; a buffer; and a memory for storing instructions which when executed from the memory cause the processor to; receive a plurality of data packets of a particular packet flow in a non-sequential order over different ones of a plurality of channels, each data packet including a respective sequence number, store each of the plurality of data packets according to its respective sequence number in the buffer, read a first one of the plurality of data packets stored in the buffer according to its respective sequence number in response to storing in the buffer a second one of the plurality of data packets having an adjacent subsequent sequence number, in order to read the plurality of data packets in a sequential order, set a valid bit associated with data packets in response to the data packets associated with an immediately preceding valid bit being stored in the buffer, wherein the valid bit is the next sequential valid bit relative to the immediately preceding valid bit, and clear the immediately preceding valid bit in response to the data packets associated with the immediately preceding valid bit being read from the buffer. - View Dependent Claims (15, 16, 17)
-
Specification