Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 14776-381:2002, also known as SCSI Primary Commands-3 (SPC-3), defines the primary command set for SCSI devices. This standard is part of the larger ISO/IEC 14776 series that specifies the Small Computer System Interface (SCSI) protocol family. SPC-3 establishes a common set of mandatory and optional commands applicable to all SCSI device types, regardless of the specific peripheral device class (e.g., direct‑access block devices, sequential‑access devices, media changers).
The standard covers command transport between an initiator and a target across any SCSI transport protocol (e.g., Parallel SCSI, Fibre Channel, SAS, iSCSI). It specifies the command descriptor block (CDB) formats, parameter data, status codes, sense data structure, and task management functions. SPC-3 replaces SPC-2 (ISO/IEC 14776-382) and introduces enhancements such as expanded sense key codes, persistent reservations, and improved power management commands.
Every SCSI target device must implement the following mandatory commands as defined in SPC-3:
| Command | CDB Opcode | Description |
|---|---|---|
| INQUIRY | 12h | Returns device identification, manufacturer, and global standard compliance information. |
| TEST UNIT READY | 00h | Indicates whether the logical unit is ready to accept further commands. |
| REQUEST SENSE | 03h | Retrieves sense data describing the last check condition. |
| SEND DIAGNOSTIC | 1Dh | Initiates diagnostics or self‑tests on the device. |
| RECEIVE DIAGNOSTIC RESULTS | 1Ch | Returns the results of a preceding SEND DIAGNOSTIC command. |
SPC-3 mandates that an INQUIRY command shall return at least the Supported VPD Pages vital product data (VPD) page (0x00). Additional VPD pages define unit serial numbers, device identification descriptors, and extended block limits. The standard also introduces the Extended INQUIRY Data VPD page (0x86) and the ATA Pass‑Through VPD page (0x89). The mode sense and mode select commands expose mode pages that control device behaviour. Key mode pages defined in SPC-3 include the Control Mode Page and the Power Conditions Mode Page.
A major enhancement in SPC-3 is the introduction of Persistent Reservations. This mechanism allows an initiator to reserve a logical unit across resets and power cycles using the RESERVE and RELEASE commands with a service action field. The standard defines three key elements: reservation key (6 bytes), service action (e.g., REGISTER, RESERVE, RELEASE, PREEMPT), and the specified scope (e.g., L_UNIT, UNIQUE_ID).
SPC-3 specifies the structure of sense data in two formats: the fixed format (common in earlier SCSI) and the descriptor format (introduced for extensibility). The descriptor format includes a sense key, additional sense code (ASC), additional sense code qualifier (ASCQ), and optional common descriptors. Error handling is defined through the check condition status and the autosense mechanism.
When implementing an SPC-3-compliant SCSI device, developers should note the following key areas:
Compliance with ISO/IEC 14776-381:2002 is declared by a device’s INQUIRY response data. The SCSI standard identifier field in the INQUIRY response shall indicate the version of SPC that the device implements. For SPC-3, the version descriptor should be set to 0x04 (SPC-3).
Manufacturers must ensure that all mandatory commands are correctly implemented. A compliance test should cover:
| Compliance Item | Requirement | Verification Method |
|---|---|---|
| Mandatory Commands | All six commands (INQUIRY, TEST UNIT READY, REQUEST SENSE, SEND DIAGNOSTIC, RECEIVE DIAGNOSTIC RESULTS, REPORT LUNS) must be present. | Send each command with valid CDB and confirm non‑invalid response. |
| Persistent Reservations | RESERVE/RELEASE with service actions REGISTER, RESERVE, RELEASE, CLEAR, PREEMPT, PREEMPT_AND_ABORT must be supported. | Test reservation conflicts and pre‑emption across power cycles. |
| VPD Pages | Correct response for Supported VPD Pages (0x00) and Device Identification (0x83) pages. | INQUIRY command with EVPD=1 and page code. |
Additionally, note that SPC-3 has been superseded by SPC-4 (ISO/IEC 14776-391) and later revisions. However, many deployed devices still conform to SPC-3, and this standard remains the baseline for legacy SCSI interoperability.