Race free data transfer algorithm using hardware based polling
OwnerDavid Poisner, Karthi Vadiveluinventors
Life of this patent
Estimating the term…
Abstract
A method and apparatus for a race free data transfer algorithm using hardware based polling. One disclosed method transfers information between a target device and a buffer which is one of a set of buffers. The buffer is pointed to by a current buffer value stored in a controller. The current buffer value is adjusted to point to a next buffer if the current buffer value is different than a last buffer value. One of the set of buffers is serviced utilizing either the current buffer value or the last buffer value from the controller.
Claims18
A method comprising:
- transferring information between a target device and one of a plurality of buffers based on a current buffer value stored in a controller, wherein the current buffer value is a first index into a buffer descriptor table and wherein the current buffer value points to the one of the plurality of buffers by pointing to a buffer descriptor offset by the first index from a buffer descriptor table base location;
- and
- prefetching a next buffer descriptor from the buffer descriptor table.
A bus agent comprising:
- a current buffer register for storing a first value indicating a first memory location for a current buffer;
- a last buffer register for storing a second value indicating a second memory location for a last buffer ready for processing;
- and
- control logic coupled to transfer data to or from the current buffer and to update the current buffer register to point to a next buffer unless the first value from the current buffer register is equivalent to the second value from the last buffer register.
An article comprising a machine readable medium having stored thereon a plurality of instructions which, if executed by the machine, cause the machine to perform:
- transferring information between a direct memory access (DMA) controller and a first buffer which is one of a plurality of buffers, the first buffer being pointed to by a current buffer register in the DMA controller;
- adjusting the current buffer register to point to a next buffer if the current buffer register contains a different value than a last buffer register;
- and
- servicing one of the plurality of buffers utilizing information contained in one of the current buffer register and the last buffer register.
Dependencies are inferred from the claim text.