IEC 14776-154-19: SCSI Primary Commands – 4 (SPC-4) – Technical Overview and Compliance

A comprehensive guide to the scope, technical requirements, and implementation considerations of the IEC 14776-154-19 standard for SCSI primary commands

Scope of IEC 14776-154-19

The standard IEC 14776-154-19 (adopted as CSA ISO/IEC 14776-154:2019) defines the SCSI Primary Commands – 4 (SPC-4) command set. It specifies the behavioural and protocol requirements for SCSI devices that implement the primary command set, which serves as the foundation for all SCSI device types. This includes:

  • Command descriptor block (CDB) structures and mandatory commands
  • Status codes and sense data formats
  • Mode pages and log parameters
  • Self-test and diagnostic procedures
  • Reservation and persistent reservation mechanisms

IEC 14776-154-19 is protocol‑neutral and applies to all SCSI transport protocols (e.g., SAS, Fibre Channel, iSCSI). It is intended for device designers, system integrators, and compliance testers who need a single reference for the commands common to all SCSI logical units.

Note: IEC 14776-154-19 replaces earlier SPC‑3 (IEC 14776‑153) and builds upon the command architecture defined in SAM‑5 (SCSI Architecture Model – 5).

Technical Requirements

Command Descriptor Block (CDB) Structure

The standard mandates a consistent CDB layout. Every command begins with a one‑byte operation code followed by a variable‑length parameter field. The total CDB length is either 6, 10, 12, 16, or 32 bytes.
Key mandatory commands include:

  • INQUIRY – Returns device identification and supported features.
  • TEST UNIT READY – Checks unit readiness without accessing media.
  • REQUEST SENSE – Retrieves sense data describing the last error or exception.
  • READ CAPACITY(16) – Returns logical block addressing (LBA) capacity.

Sense Data and Status

Status codes follow SAM‑5 rules. The standard defines a hierarchy of sense keys, additional sense codes (ASC), and additional sense code qualifiers (ASCQ). A common mapping is shown in Table 1.

Sense Key Description Typical ASC/ASCQ
ILLEGAL REQUEST (0x05) Invalid CDB field or parameter 0x20/0x00 – INVALID COMMAND OPERATION CODE
UNIT ATTENTION (0x06) Device state change (e.g., mode page altered) 0x2F/0x00 – COMMANDS CLEARED BY ANOTHER INITIATOR
HARDWARE ERROR (0x04) Non‑recoverable hardware failure 0x3E/0x00 – LOGICAL UNIT FAILURE
MEDIUM ERROR (0x03) Error while accessing the storage medium 0x11/0x00 – UNRECOVERED READ ERROR
Important: Implementations must adhere to the mandatory ASC/ASCQ assignments; vendor‑specific codes are allowed only in ranges reserved by the standard (80h‑FFh).

Mode Pages and Log Parameters

The standard prescribes a page‑based mechanism for device configuration and telemetry. At minimum, devices must support the Control Mode Page and the Informational Exceptions Control Mode Page. For diagnostics, log pages such as Self‑Test Log and Supported Log Pages are mandatory.

Reservations

IEC 14776-154-19 specifies both simple and persistent reservation models. Persistent reservations support registrants, holders, and preempting actions that are vital for clustering and failover.

Implementation Highlights

  • Protocol interoperability: The standard is transport‑agnostic. An initiator using Fibre Channel can communicate with a SAS target as long as both adhere to SPC‑4.
  • Backward compatibility: Devices may implement SPC‑3 commands, but any new designs must include the SPC‑4 mandatory commands (e.g., REPORT SUPPORTED OPERATION CODES).
  • Error handling: The unified sense data model simplifies driver development. Multi‑initiator environments rely on the reservation framework to prevent data corruption.
  • Self‑test improvements: Short and extended self‑tests are defined; an implementation may defer the background self‑test but must report progress via the Self‑Test Results log.
Best practice: During development validate all mandatory commands against an approved conformance test suite (e.g., the UNH‑IOL SCSI test platform) to identify deviations early.

Compliance Notes

Conformity to IEC 14776-154-19 is typically verified through:

  1. Protocol compliance testing – Demonstrates correct CDB parsing and response generation.
  2. Functional testing – Coverage of all mandatory commands, mode pages, and log pages.
  3. Interoperability testing – Exchange of data and control information with other SPC‑4–compliant devices.

Certifying bodies (e.g., CSA Group in Canada, or IECEE) may require submission of a test report from an accredited laboratory. The standard also calls out a set of “shall” and “should” clauses; mandatory requirements (marked “shall”) must be implemented without deviation for a claim of compliance.

Caution: Using vendor‑specific ASC/ASCQ in mandatory contexts can lead to interoperability failures. Always check the reserved ranges defined in Annex C of the standard.

The standard includes an annex on compliance with SCSI Architecture Model (SAM‑5) requirements, which helps designers ensure that their implementation is architecture‑complete.

Frequently Asked Questions

Q: What is the relationship between IEC 14776-154-19 and ISO/IEC 14776-154:2019?
A: IEC 14776-154-19 is the Canadian adoption (published by CSA Group) of the international standard ISO/IEC 14776-154:2019. The technical content is identical; only administrative status and country‑specific forewords differ.
Q: Does IEC 14776-154-19 replace SPC‑3?
A: Yes. SPC‑4 updates and extends the primary command set. Devices that claim SPC‑4 compliance must implement the commands and features that were optional in SPC‑3 (like REPORT SUPPORTED OPERATION CODES) as mandatory, unless the standard explicitly allows legacy behaviour.
Q: Is the standard transport‑specific?
A: No. IEC 14776-154-19 is transport‑independent. The companion standards for each SCSI transport (e.g., SAS, Fibre Channel, iSCSI) define how the commands are framed and delivered.
Q: How do I verify that my device complies with this standard?
A: Use a recognised SCSI conformance test tool (such as the UNH‑IOL suite) that covers all mandatory commands, mode pages, and sense codes. Additionally, interoperability testing with at least two different initiator models is strongly recommended.
Footer note: This article was prepared in 2026.

— This article is for informational purposes. Always refer to the official published standard for complete compliance requirements.

📥 Standard Documents Download

🔒
Please wait 10 seconds, the download links will appear after the ad loads

Leave a Reply

Your email address will not be published. Required fields are marked *