Patent ID: 8291125

Claim:
A data storage device controller comprising: at least one processor operably coupled to memory and to interface circuitry enabling communication with a host device and a data storage device, the at least one processor configured to, at least: receive, from the host device via the interface circuitry, a first command comprising one or more parameters; transmit, to the data storage device, the first command; speculatively produce, based upon the first command, one or more commands for the data storage device, wherein each of the one or more commands corresponds to a command identified as likely to be received next from the host device, wherein speculatively producing one or more commands for the data storage device comprises: determining an amount of time taken by the host device to generate a command; and setting one or more parameters in a command for the data storage device based upon the amount of time; receive, from the host device via the interface circuitry after the first command, a second command, after fulfillment of the first command; determine whether any of the one or more commands for the data storage device corresponds to the second command; transmit, to the data storage device, one command of the one or more commands corresponding to the second command, if any of the one or more commands for the data storage device correspond to the second command; and produce and transmit to the data storage device, a command corresponding to the second command, if none of the one or more commands for the data storage device correspond to the second command.