Technical information
HGST Ultrastar C15K600 Hard Disk Drive Specification
300
20
Additional information
This chapter provides additional information or descriptions of various functions, features, or operating models
supported by the Target that are not fully described in previous chapters.
20.1
SCSI Protocol
There are various operating conditions that prevent the Target from executing a SCSI command. This section
describes each of these operating conditions and their relative priority.
20.1.1
Priority of SCSI Status Byte Reporting
After establishing the I_T_L nexus or I_T_L_Q nexus the Target must first determine whether command execution is
allowed. Execution is deferred until a later time if the command must be added to the command queue. Execution
may also be prevented by an internal Target condition that requires the reporting of a Check Condition, Queue Full,
Busy, or Reservation Conflict Status. There are several different internal conditions to be active at the same time.
The order in which the Target checks for each of these conditions determines their priority (highest priority first) as
follows:
1. Check Condition status for invalid Logical Unit Number. (See Section 20.1.2 "Invalid LUN Processing")
2. Check Condition status for Incorrect Initiator Connection (See Section 20.1.3 "Overlapped Commands")
3. Check Condition status for Unit Attention Condition (See Section 20.1.5 "Unit Attention Condition")
4. Busy Status or Queue Full Status (See 20.1.4 "Command Processing During Execution of Active I/O
Process")
5. Check Condition status for Deferred Error Condition (See Section 20.1.8 “Deferred Error Condition”)
6. Check Condition status during Startup and Format operations (See Section 20.1.6 “Command Processing
During Startup and Format Operations”)
7. Reservation Conflict status (See Section 20.1.10 “Command Processing while Reserved")
8. Check Condition status for invalid command op code
9. Check Condition status for invalid command descriptor block
The highest priority internal condition that prevents command execution is reported by the Target provided there is
no bus error.
For all Check Conditions Sense data is built by the target provided a valid LUN address is known. Sense data is
cleared by the Target upon receipt of any subsequent command to the LUN from the initiator receiving the Check
Condition.
20.1.2
Invalid LUN Processing
Any value other than zero is invalid.
The target's response to an invalid LUN varies with the command, as follows:
Inquiry: Execute the command, return the INQUIRY data that indicates unknown device type (byte 0 = 7Fh), and
return GOOD status. All other bytes are valid (see 18.5 "INQUIRY (12)").
Request Sense: Execute the command, return the sense data with the Sense Key set to Illegal Request and the
Additional Sense Code and Additional Sense Code Qualifier set to LOGICAL UNIT NOT SUPPORTED, and return
GOOD status (see also 18.36 "REQUEST SENSE (03)").
All Others: Do not execute the command and return CHECK CONDITION status, along with the auto-sense data
with the Sense Key set to Illegal Request and the Additional Sense Code and Additional Sense Code Qualifier set to
LOGICAL UNIT NOT SUPPORTED.
In all cases, the target's response to the command for an invalid LUN does not affect the current execution of a
command on the valid LUN for this initiator or any other initiator.