Methods and apparatus for reduced overhead data transfer with a shared ring buffer
First Claim
Patent Images
1. A method for requesting a data transfer, comprising:
- determining a transfer size associated with a data payload;
andwhen the transfer size does not exceed a minimum threshold;
creating a null transfer data structure;
allocating memory for a completion transfer data structure, the completion transfer data structure comprising a dynamically enabled or disabled footer that is sized for the transfer size of the data payload; and
providing the null transfer data structure to the processor, the providing of the null transfer data structure causing transfer of the data payload via the footer of the completion transfer data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for reducing bus overhead with virtualized transfer rings. The Inter-Processor Communications (IPC) bus uses a ring buffer (e.g., a so-called Transfer Ring (TR)) to provide Direct Memory Access (DMA)-like memory access between processors. However, performing small transactions within the TR inefficiently uses bus overhead. A Virtualized Transfer Ring (VTR) is a null data structure that doesn'"'"'t require any backing memory allocation. A processor servicing a VTR data transfer includes the data payload as part of an optional header/footer data structure within a completion ring (CR).
180 Citations
20 Claims
-
1. A method for requesting a data transfer, comprising:
-
determining a transfer size associated with a data payload; and when the transfer size does not exceed a minimum threshold; creating a null transfer data structure; allocating memory for a completion transfer data structure, the completion transfer data structure comprising a dynamically enabled or disabled footer that is sized for the transfer size of the data payload; and providing the null transfer data structure to the processor, the providing of the null transfer data structure causing transfer of the data payload via the footer of the completion transfer data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for servicing a data transfer, comprising:
-
retrieving a data structure; determining a data type of the retrieved data structure; when the retrieved data structure is a reference data structure, writing a payload to a backing memory identified by the reference data structure; and otherwise when the retrieved data structure is a null data structure, writing the payload to a footer of a completion data structure, the footer comprising a dynamically enabled or disabled footer that is sized for a payload transfer size that does not exceed a prescribed threshold, and causing transfer of the payload via the footer of the completion data structure. - View Dependent Claims (10, 11, 12, 13, 14, 20)
-
-
15. A multi-processor apparatus, comprising:
-
a plurality of processors coupled to a shared non-transitory computer-readable medium; the shared non-transitory computer-readable medium comprising a transfer data buffer; logic configured to determine a plurality of transfer sizes associated with a plurality of data payloads; and logic configured to; for each of the plurality of data payloads; when a first data payload has a transfer size that exceeds a minimum threshold size, allocate a memory allocation within the transfer data buffer for the first data payload, provide a transfer descriptor to a first processor of the plurality of processors that identifies the memory allocation; and otherwise, when the first data payload has a transfer size that does not exceed the minimum threshold size, provide a null transfer descriptor to the first processor of the plurality of processors, wherein the null transfer descriptor is configured to cause the first processor to generate a completion descriptor that includes the first data payload within a dynamically enabled or disabled footer that is sized for the transfer size of the first data payload that does not exceed the minimum threshold size. - View Dependent Claims (16, 17, 18, 19)
-
Specification