A method allowing a device or controller to process commands received from a device driver out of order. It requires that the device driver attaches a tag to each command which the controller or device can later use to identify the response to the command. Tagged queueing can speed up processing considerably if a controller serves devices of very different speeds, such as an SCSI controller serving a mix of CD-ROMs and high-speed disks. In such cases if a request to fetch data from the CD-ROM is shortly followed by a request to read from the disk, the controller doesn't have to wait for the CD-ROM to fetch the data, it can instead instruct the disk to fetch the data and return the value to the device driver, while the CD-ROM is probably still seeking. |