Patent ID: 8244962

Claim:
An apparatus, including a non-transitory storage medium storing instructions for queuing and ordering commands for a data storage device, comprising: a slot tracker module that is arranged and configured to track available slots for commands from a host, wherein each of the available slots is associated with a global slot identifier (ID); a command transfer module that is operably coupled to the slot tracker module and that is arranged and configured to retrieve commands from the host based on both a number of the available slots and a number of available commands at the host using a command tail pointer and a command head pointer to indicate the number of available commands at the host, wherein the slot tracker module assigns each of the commands the global slot ID associated with an available slot such that the global slot ID remains associated with the command until processing of the command is complete; a pending command module that is operably coupled to the command transfer module and that is arranged and configured to queue and order the commands from the host for processing using an ordered list that is based on an age of the commands; and a task dispatch module that is operably coupled to the pending command module and that is arranged and configured to dispatch the commands for processing using the ordered list from the pending command module and an availability of storage locations.