Method and apparatus for managing data transportation
First Claim
1. A method for managing transportation of data, the method comprises the steps of:
- a) polling a plurality of local memory entities for transportation of data, wherein the polling is based on a linked list;
b) when a currently polled local memory entity of the plurality of local memory entities has data to transport, obtaining channel status of a logical channel associated with the currently polled local memory entity, wherein the data to transport is contained within a data word having a data portion and a tag;
c) determining data block status based on the data word; and
d) providing the data portion to non-local memory based on at least one of;
the channel status, the data word, and the data block status.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for managing transportation of data include processing that begins by polling a plurality of local memory entities for transportation of data, wherein the polling is based on a linked list. When a currently polled local memory entity has data to transport, the processing obtains channels status of a logical channel associated with the currently polled memory entity. Note that the data to transport is contained within a data word that includes a data portion and a tag. Regardless of whether the data to transport is to be transported from local memory to non-local memory or from the non-local memory to local memory, the processing determines data block status based on the data word, wherein the data block is stored in non-local memory. Next, the processing provides, or retrieves, the data portion of the data word to, or from, the non-local memory based on at least one of the channel status, the data word, and the data block status.
26 Citations
33 Claims
-
1. A method for managing transportation of data, the method comprises the steps of:
-
a) polling a plurality of local memory entities for transportation of data, wherein the polling is based on a linked list;
b) when a currently polled local memory entity of the plurality of local memory entities has data to transport, obtaining channel status of a logical channel associated with the currently polled local memory entity, wherein the data to transport is contained within a data word having a data portion and a tag;
c) determining data block status based on the data word; and
d) providing the data portion to non-local memory based on at least one of;
the channel status, the data word, and the data block status.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
interpreting the tag;
when the tag indicates that the data word corresponds to a first data word of a data block, wherein the data block corresponds to data extracted from a data packet;
setting the data block status to be indicative of a new data block;
allocating one of a plurality of memory blocks of the non-local memory, when the one of the plurality of memory blocks is available; and
updating the channel status to include packetizing protocol of the data packet.
-
-
3. The method of claim 2 further comprises determining that the one of the plurality of memory blocks is available based on a queuing scheme associated with the non-local memory.
-
4. The method of claim 1 further comprises:
-
interpreting the tag;
when the tag indicates that the data word corresponds to valid data of a data block, wherein the data block corresponds to data extracted from a data packet;
addressing one of a plurality of memory blocks based on a queuing scheme and memory block status; and
transporting the data to the one of the plurality of memory blocks based on the memory block status.
-
-
5. The method of claim 4 further comprises:
-
monitoring amount of data transported to the one of the plurality of memory blocks;
allocating another one of the plurality of memory blocks when the amount of data exceeds capacity of the one of the plurality of memory blocks;
linking the one of the plurality of memory blocks and the another one of the memory blocks; and
updating the memory block status with the linking.
-
-
6. The method of claim 5 further comprises:
-
determining whether the amount of data exceeds a data block size threshold; and
flagging the data packet as invalid when the amount of data exceeds the data block size threshold.
-
-
7. The method of claim 6 further comprises ceasing to provide the data to the another one of the memory blocks when the amount of data exceeds the data block size threshold.
-
8. The method of claim 1 further comprises:
-
interpreting the tag;
when the tag indicates that the data word corresponds to an end of a data block, wherein the data block corresponds to data extracted from a data packet;
addressing one of a plurality of memory blocks based on a queuing scheme and memory block status;
transporting at most a portion of the data to the one of the plurality of memory blocks based on the memory block status; and
setting data block parameters regarding the data block.
-
-
9. The method of claim 8 further comprises:
-
storing the data block parameters in a first one of linked memory blocks;
releasing a pointer to the first one of the linked memory blocks via a queuing scheme; and
updating the channel status to be indicative of seeking a data packet.
-
-
10. The method of claim 1, wherein the channel status comprises at least one of:
seeking a data packet, processing a valid data packet, end of a data packet, amount of data transferred, and current packet status.
-
11. The method of claim 1, wherein step (a) further comprises generating a polling sequence in accordance with affiliations of logical channels to local memory segments, wherein the linked list maintains the affiliations of the logic channels to the local memory segments.
-
12. The method of claim 11 further comprises weighting the logical channels within the polling sequence based on at least one of:
-
number of local memory segments assigned to the to a logical channel;
predetermined priority of a logical channel; and
user-defined weighting.
-
-
13. A method for managing the transportation of data, the method comprises the steps of:
-
a) polling a plurality of local memory entities for available memory space, wherein the polling is based on a linked list;
b) when a currently polled local memory entity of the plurality of local memory entities has available memory space, obtaining channel status associated with a logical channel associated with the currently polled local memory entity;
c) determining whether non-local memory contains a data block associated with the logical channel;
d) determining data block status of the data block when the non-local memory contains the data block; and
e) providing a data word of the data block to the currently polled local memory entity based on at least one of;
the channel status and data block status.- View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
interpreting the data block status; and
setting the channel status to be indicative of a new data block when the data block indicates that the data word corresponds to a first data word of the data block.
-
-
16. The method of claim 13 further comprises:
-
interpreting the data block status;
when the data block status indicates that the data word corresponds to valid data of the data block;
addressing one of a plurality of memory blocks based on a queuing scheme and memory block status; and
transporting the data from the one of the plurality of memory blocks to the currently polled local memory entity based on the channel status.
-
-
17. The method of claim 13 further comprises:
-
interpreting the data block status;
when the data block status indicates that the data word corresponds to an end of the data block;
addressing one of a plurality of memory blocks based on a queuing scheme and memory block status;
transporting at most a portion of the data word from the one of the plurality of memory blocks to the currently polled local memory entity based on the channel status; and
updating the channel status to reflect the end of the data block.
-
-
18. The method of claim 13, wherein the channel status comprises at least one of:
seeking a data packet, processing a valid data packet, end of a data packet, amount of data transferred, and current packet status.
-
19. The method of claim 13, wherein step (a) further comprises generating a polling sequence in accordance with affiliations of logical channels to local memory segments, wherein the linked list maintains the affiliations of the logic channels to the local memory segments.
-
20. The method of claim 19 further comprises weighting the logical channels within the polling sequence based on at least one of:
-
number of local memory segments assigned to the to a logical channel;
predetermined priority of a logical channel; and
user-defined weighting.
-
-
21. A data transport managing module comprises:
-
a processing module; and
memory operably coupled to the processing module, wherein the memory includes operating instructions that cause the processing module to (a) poll a plurality of local memory entities for transportation of data, wherein the polling is based on a linked list;
(b) obtain channel status of a logical channel associated with the currently polled local memory entity when a currently polled local memory entity of the plurality of local memory entities has data to transport, wherein the data to transport is contained within a data word having a data portion and a tag;
(c) determine data block status based on the data word; and
(d) provide the data portion to non-local memory based on at least one of;
the channel status, the data word, and the data block status.- View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
interpret the tag;
when the tag indicates that the data word corresponds to a first data word of a data block, wherein the data block corresponds to data extracted from a data packet;
set the data block status to be indicative of a new data block;
allocate one of a plurality of memory blocks of the non-local memory, when the one of the plurality of memory blocks is available; and
update the channel status to include packetizing protocol of the data packet.
-
-
23. The data transport managing module of claim 21, wherein the memory further comprises operating instructions that cause the processing module to:
-
interpret the tag;
when the tag indicates that the data word corresponds to valid data of a data block, wherein the data block corresponds to data extracted from a data packet;
address one of a plurality of memory blocks based on a queuing scheme and memory block status; and
transport the data to the one of the plurality of memory blocks based on the memory block status.
-
-
24. The data transport managing module of claim 23, wherein the memory further comprises operating instructions that cause the processing module to:
-
monitor amount of data transported to the one of the plurality of memory blocks;
allocate another one of the plurality of memory blocks when the amount of data exceeds capacity of the one of the plurality of memory blocks;
link the one of the plurality of memory blocks and the another one of the memory blocks; and
update the memory block status with the linking.
-
-
25. The data transport managing module of claim 21, wherein the memory further comprises operating instructions that cause the processing module to:
-
interpret the tag;
when the tag indicates that the data word corresponds to an end of a data block, wherein the data block corresponds to data extracted from a data packet;
address one of a plurality of memory blocks based on a queuing scheme and memory block status;
transport at most a portion of the data to the one of the plurality of memory blocks based on the memory block status; and
set data block parameters regarding the data block.
-
-
26. The data transport managing module of claim 25, wherein the memory further comprises operating instructions that cause the processing module to:
-
store the data block parameters in a first one of linked memory blocks;
release a pointer to the first one of the linked memory blocks via a queuing scheme; and
update the channel status to be indicative of seeking a data packet.
-
-
27. The data transport managing module of claim 21, wherein the memory further comprises operating instructions that cause the processing module to:
- generate a polling sequence in accordance with affiliations of logical channels to local memory segments, wherein the linked list maintains the affiliations of the logic channels to the local memory segments.
-
28. The data transport managing module of claim 27, wherein the memory further comprises operating instructions that cause the processing module to:
-
number of local memory segments assigned to the to a logical channel;
predetermined priority of a logical channel; and
user-defined weighting.
-
-
29. A data transport managing module comprises:
-
a processing module; and
memory operably coupled to the processing module, wherein the memory includes operating instructions that cause the processing module to (a) poll a plurality of local memory entities for available memory space, wherein the polling is based on a linked list;
(b) obtain channel status associated with a logical channel associated with the currently polled local memory entity when a currently polled local memory entity of the plurality of local memory entities has available memory space;
(c) determine whether non-local memory contains a data block associated with the logical channel;
(d) determine data block status of the data block when the non-local memory contains the data block; and
(e) provide a data word of the data block to the currently polled local memory entity based on at least one of;
the channel status and data block status.- View Dependent Claims (30, 31, 32, 33)
interpret the data block status; and
set the channel status to be indicative of a new data block when the data block indicates that the data word corresponds to a first data word of the data block.
-
-
31. The data transport managing module of claim 29, wherein the memory further comprises operating instructions that cause the processing module to:
-
interpret the data block status;
when the data block status indicates that the data word corresponds to valid data of the data block;
address one of a plurality of memory blocks based on a queuing scheme and memory block status; and
transport the data from the one of the plurality of memory blocks to the currently polled local memory entity based on the channel status.
-
-
32. The data transport managing module of claim 29, wherein the memory further comprises operating instructions that cause the processing module to:
-
interpret the data block status;
when the data block status indicates that the data word corresponds to an end of the data block;
address one of a plurality of memory blocks based on a queuing scheme and memory block status;
transport at most a portion of the data word from the one of the plurality of memory blocks to the currently polled local memory entity based on the channel status; and
update the channel status to reflect the end of the data block.
-
-
33. The data transport managing module of claim 29, wherein the memory further comprises operating instructions that cause the processing module to:
- generate a polling sequence in accordance with affiliations of logical channels to local memory segments, wherein the linked list maintains the affiliations of the logic channels to the local memory segments.
Specification