Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 14776-351-07 等同采用 ISO/IEC 14776-351:2007《信息技术 — 小型计算机系统接口(SCSI)— 第351部分:主命令集-3(SPC-3)》。该标准由国际电工委员会(IEC)和国际标准化组织(ISO)联合发布,属于 SCSI 系列标准的核心组成部分,定义了 SCSI 设备必须实现的基本命令集与协议规则。
IEC 14776-351-07 是基于 2007 年发布的 SPC-3 标准,替代了早期的 SPC-2(ISO/IEC 14776-352)。SPC-3 对 SCSI 命令集进行了重要修订,引入了更灵活的扩展机制和增强的数据保护功能。2026 年该标准仍被广泛引用为 SCSI 设备的基础规范,并被其他 SCSI 标准(如 SBC-3、SSC-3)引用为命令定义的基础。
该标准适用于所有使用 SCSI 命令集的设备,包括硬盘、磁带机、光存储、固态盘等存储设备,以及适配器、桥接器、虚拟化设备等。它不依赖具体的传输层协议(如 SAS、FC、iSCSI),而是提供与传输无关的命令语义定义,确保不同实现间的互操作性。主要定义内容:
所有 SCSI 命令都通过 CDB 发起,CDB 头部的操作码(Opcode)区分命令类别。SPC-3 定义了 6 字节、10 字节、12 字节及变长(Variable Length)CDB 格式,并规定了操作码分配范围。核心命令涵盖设备控制、数据读写、模式管理、状态报告等。以下为 SPC-3 定义的关键命令及其描述:
| 命令名称 | 操作码(六字节) | 类别 | 简要描述 |
|---|---|---|---|
| TEST UNIT READY | 0x00 | 设备控制 | 检查设备是否可访问 |
| INQUIRY | 0x12 | 设备控制 | 获取设备标识与能力信息 |
| MODE SENSE | 0x1A | 模式管理 | 读取设备模式参数(如缓存策略、电源管理) |
| MODE SELECT | 0x15 | 模式管理 | 设置设备模式参数 |
| READ (10) | 0x28 | 数据访问 | 读取逻辑块数据(10字节CDB) |
| WRITE (10) | 0x2A | 数据访问 | 写入逻辑块数据(10字节CDB) |
| REQUEST SENSE | 0x03 | 错误报告 | 获取上次命令的感知数据 |
| REPORT LUNS | 0xA0 | 设备控制 | 查询目标设备上所有逻辑单元号 |
命令完成后,目标设备返回状态码。SPC-3 定义了 GOOD、CHECK CONDITION、BUSY、RESERVATION CONFLICT 等状态。CHECK CONDITION 状态时,发起设备应发送 REQUEST SENSE 获取感知数据。感知数据格式严格按标准发布格式(Fixed Format)或描述符格式(Descriptor Format)填充,包含感知键、附加感知码(ASC)及字段。
SPC-3 支持命令排队(Tagged Command Queuing)和任务管理功能(如 ABORT TASK、TARGET RESET),要求设备能够保持命令队列、处理冲突、超时及优先级。标准也定义了 Autosense 机制,减少错误处理开销。
厂商应声明设备实现的 SPC-3 符合性级别,列举支持的命令及扩展功能。标准附件提供了符合性检查清单,用于初步验证。
建议使用 SCSI 测试套件(如 UNH-IOL 的 SCSI 测试平台)验证命令行为。重点测试边界条件(如大块数据传送、全队列深度、无效操作码响应)。还需检查模式页中保留字段的写保护。
SPC-3 与以下标准共同构成 SCSI 体系:
SPC-3 命令通过不同传输层承载,例如 SAS (SPL-4)、FC (FCP-4)、iSCSI (RFC 7143),每个传输层需要映射命令序列、数据传送和状态响应。但命令语义保持一致,实现跨协议透明交互。
SPC-3 的命令集思想也影响了 ATA/ATAPI、NVMe 等存储协议,例如 INQUIRY 命令类似 NVMe 的 Identify 机制。理解 SPC-3 有助于深入掌握现代存储命令设计哲学。
本文更新于2026年,基于 IEC 14776-351-07 正式版本编写。如需追溯最新修订,请查阅 IEC 或 ISO 官网。