Patent ID: 6968409

Claim:
An interface controller for communicating commands and data to at least one target device attached to the interface controller; the interface controller comprising: a command queue having a command buffer in which the commands are recorded; a data mover for transferring commands to a target device and receiving responses from the target device in response to commands; and a queue processor connected to the command queue and the data mover, the queue processor operatively applying selected commands from the command buffer to the data mover to be transferred to the target device for completion, the queue processor including programmed logic functionality which: applies a first read command from the command buffer to the data mover for transfer to a target device for completion; recognizes a response from the target device indicating a delay in completion of the first read command; determines that the command in the command buffer following the first read command is a second read command; sets a loop start pointer to identify the first read command; sets a loop end pointer to identify the second read command; applies the second read command from the command buffer to the data mover for transfer to a target device for completion; recognizes a response from the target device indicating a delay in completion of the second read command; determines that the command in the command buffer following the second read command is a third read command; advances the loop end pointer to identify the third read command; applies the third read command from the command buffer to the data mover for transfer to a target device for completion; and advances the loop end pointer to the next subsequent read command in the command buffer upon recognizing the first delay in completing the preceding read command.