Management of received data within host device using linked lists
First Claim
1. A method for routing data within a host device comprising:
- receiving a data block at a receiver of the host device;
storing the data block in a receiver buffer;
determining an input virtual channel corresponding to the data block;
updating an input virtual channel linked list corresponding to the input virtual channel to include the data block;
determining an output virtual channel for the data block;
transferring the data block from the input virtual channel linked list of the receiver buffer to a destination within the host device via the output virtual channel; and
updating the input virtual channel linked list to remove the data block.
4 Assignments
0 Petitions
Accused Products
Abstract
A received data processing and storage system includes an input that receives data blocks corresponding to a plurality of input virtual channels. A routing module inspects the received data blocks and determines an output virtual channel for the data blocks based upon their respective input virtual channels. A receiver buffer instantiates input virtual channel linked lists, output virtual channel linked lists, and a free list. A linked list control module uses input virtual channel linked list registers, output virtual channel linked list registers, and free linked list registers to manage the linked lists instantiated by the receiver buffer. An output transmits data blocks corresponding to the plurality of output virtual channels. Data blocks are stored in the receiver buffer in both input virtual channel link lists and output virtual channel linked lists.
-
Citations
29 Claims
-
1. A method for routing data within a host device comprising:
-
receiving a data block at a receiver of the host device;
storing the data block in a receiver buffer;
determining an input virtual channel corresponding to the data block;
updating an input virtual channel linked list corresponding to the input virtual channel to include the data block;
determining an output virtual channel for the data block;
transferring the data block from the input virtual channel linked list of the receiver buffer to a destination within the host device via the output virtual channel; and
updating the input virtual channel linked list to remove the data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for routing data within a host device comprising:
-
receiving a data block at a receiver of the host device, the data block received via an input virtual channel;
storing the data block in a receiver buffer;
when the input virtual channel has identified therewith an output virtual channel updating an output virtual channel linked list corresponding to the output virtual channel to include the data block; and
when the input virtual channel has not identified therewith an output virtual channel;
updating an input virtual channel linked list corresponding to the input virtual channel to include the data block;
processing the data block to determine an output virtual channel for the data block;
updating an output virtual channel linked list corresponding to the output virtual channel to include the data block; and
updating the input virtual channel linked list to remove the data block. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
12. The method of claim 12, further comprising:
-
transferring the data block from the receiver buffer to a destination within the host device based upon a corresponding output virtual channel; and
updating the output virtual channel linked list to remove the data block.
-
-
20. A received data processing and storage system comprising:
-
an input that receives data blocks corresponding to a plurality of input virtual channels;
a routing module that determines an output virtual channel for data blocks based upon their respective input virtual channels;
a receiver buffer operable to instantiate an input virtual channel linked list for storing data blocks on an input virtual channel basis and to instantiate a free list that identifies free data locations;
a linked list control module operably coupled to the receiver buffer;
input virtual channel linked list registers operably coupled to the linked list control module; and
free linked list registers operably coupled to the linked list control module. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification