Patent ID: 7461183

Claim:
A method in a data storage device that includes a data controller, said method comprising the steps of: receiving within said data storage device, from a peripheral device that is coupled to said data storage device, a direct memory access (DMA) command that requests a data transfer of a first amount of data; in response to said receiving of said direct access memory (DMA) command, performing each of steps (i)-(vii) independently of feedback from any DMA data movement block: (i) determining a current location in a buffer utilizing a host address pointer that points to said current location; (ii) determining a current capacity of said buffer for transferring data; (iii) determining whether said current capacity exceeds a threshold; (iv) generating an instruction, by said method in said data storage device, to transfer a second amount of data to complete at least a portion of said DMA command if it is determined that said current capacity exceeds said threshold; (v) adjusting said current capacity by said second amount of data; (vi) asserting said instruction; and (vii) adjusting said host address pointer by said second amount of data to point to a new current location.