1.4 Command Queuing Function
C141-E167 1 - 17
When a command is in the queued state, if a RESET condition occurs, or if the IDD receives a
TARGET RESET message from any INIT, it clears all the commands in the queue. At this time, the
IDD generates on UNIT ATTENTION condition for all the INITs.
When an ABORT message is sent from an INIT that has issued a command which is in the queue, if
the correct LUN (0) is specified, only the command issued by that INIT is cleared and the other
commands in the queue are not effected. If the LUN is not identified, an ABORT message which
specifies an illegal LUN (1 to 7) does not effect the commands in the queue.
Untagged queuing exception processing (events and operations executed by the IDD) is shown
below.
• If the TEST UNIT READY, REQUEST SENSE or INQUIRY command is received.
When one of these commands is received, if there is no link instruction in that command, the IDD
executes that command immediately without queuing the command or executing disconnect
processing. At this time, there is no effect on the commands from other INITs which are currently
being executed, or on the commands in the queue.
If these commands contain link instructions, they are queued.
• If disconnect processing is impossible.
If disconnect processing is impossible because the INIT which issued the command does not meet the
conditions for permitting a disconnect (see Section 1.3.3), or if the DISCONNECT message is
rejected by the INIT even though it meets the conditions for permitting a disconnect, the IDD
responds with a BUSY status without queuing the received command except the case described in
item 1) in following Note during executing or queuing command already. If this is not the case, the
received command is executed immediately.
• If the IDD is reserved
If the IDD has been reserved by an INIT using the RESERVE command and receives a TEST UNIT
READY command after that, when that command conflicts with the reserved state, it responds with a
RESERVATION CONFLICT status. Commands after that are queued, and the reserved state is
checked when a command is fetched from the queue. Conflicts with the reserved state are explained
in the description of the RESERVE command (Section 3.1.11).
Note:
Through the operation of the command queuing function, except for exceptions described on this
page, the IDD does not respond to commands issued by the INIT with a BUSY status. This
function is applied under the multi-initiator environment, and overhead for re-issuing commands
caused by the BUSY status is unnecessary. Normally, the INIT does not have to be aware of the
existence of a queuing function, but it is necessary to exercise caution in the following items
when controlling input/output processing.
1) When a command is queued, the time from the queuing of the command to its actual
execution will vary depending on the commands already in the queue, or on the content of
the processing currently being executed. Particularly in cases where the FORMAT UNIT
command and START/STOP UNIT command (Immed = 0), and data access commands
which specify large processing block counts, are already queued or being executed, the
newly queued command will be forced to wait a long time until it is executed.
2) In the following cases, a command may not be executed even after it has been queued.