A system for reordering commands to achieve an optimal command sequence based on a target response restriction that determines an optimal slot for a data transfer between an initiator controller and a target subsystem by prohibiting an issuance of a command that would cause a data conflict, comprising:
- a command queue arranged to store commands to be issued, a time indicating when the data transfer appears on a data bus between the controller and the target device after the command was issued to the target, a burst-bit indicating data burst transfer and a read/write bit (r/w);
- a data queue coupled to the command queue arranged to store a time indicating when the data transfer will appear on the data bus between the controller for an already issued request to the target device as well as arranged to store the burst bit and the read/write bit (r/w);
- a collision detector coupled to the data queue and the command queue arranged to detect the possible collisions on the data bus between the issued command that is stored in the command queue and already issued commands that are stored in the data queue;
- a target subsystem characterization data base for storing target subsystem characterization data;
- and
- a queues and link controller coupled to the collision detector and the data queue and the command queue arranged to store and reorder commands to be issued wherein the controller calculates the new issue time of commands as well as a time when the data appears on the data bus, wherein the new issue time is based at least in part on the target subsystem characterization data.