Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 14776‑222:2006(加拿大采纳版为CAN/CSA‑ISO/IEC 14776‑222:06),正式名称为《信息技术 — 小型计算机系统接口(SCSI) — 块命令 — 2》,业界常简称为SBC‑2。本标准是SCSI协议族中专门针对块设备命令集的核心规范,定义了块设备(如硬盘驱动器、固态驱动器、光盘等)应遵循的命令格式、操作参数、数据传输机制以及错误处理要求。
SBC‑2 适用于所有采用SCSI指令集进行数据存取的块设备,涵盖传统并行SCSI、串行连接SCSI(SAS)、光纤通道(FC)以及iSCSI等传输层。其主旨在于确保不同厂商设备间的互操作性,并为操作系统存储栈提供统一的命令接口。
SBC‑2 将块设备命令分为强制(Mandatory)和可选(Optional)两类。所有宣称符合本标准的设备必须支持强制命令,而可选命令可根据功能需求实现。命令通过操作码(OpCode)唯一标识,并在CDB(命令描述块)中携带参数。
标准采用逻辑块地址(LBA)进行数据寻址,支持固定逻辑块大小(默认为512字节,亦支持4K等尺寸)。命令中通常使用6字节、10字节或12字节的CDB格式,分别对应不同的LBA范围与传输长度。
SBC‑2 定义了数据保护信息(Protection Information, PI)的可选支持,允许在每逻辑块后附加校验信息(如引用标签、应用标签、CRC校验),实现端到端数据完整性保护。
| 命令名称 | 操作码(Hex) | 简要说明 | 强制/可选 |
|---|---|---|---|
| INQUIRY | 12h | 查询设备基本信息(厂商、产品、版本等) | 强制 |
| READ(10) | 28h | 读取指定LBA起始的数据块 | 强制 |
| WRITE(10) | 2Ah | 将数据写入指定LBA起始的块 | 强制 |
| READ CAPACITY(10) | 25h | 返回设备总容量(LBA数 + 块大小) | 强制 |
| VERIFY(10) | 2Fh | 验证介质上的数据与缓存数据是否一致 | 可选 |
| SYNCHRONIZE CACHE(10) | 35h | 将写缓存刷入非易失介质 | 可选(对写缓存设备为强制) |
SBC‑2 通过模式页面(Mode Pages)管理设备的行为参数,例如读写错误恢复页面(01h)、断开/重连页面(02h)、缓存页面(08h)等。每个模式页面包含可调字段,允许系统按需配置。
在固件或驱动层面实现SBC‑2时需特别注意以下几点:
SBC‑2 并非孤立存在,它依赖于SCSI体系中的以下标准:
理解这些关联有助于在全局上把握SCSI生态系统,避免仅关注命令集而忽略底层传输与任务管理的影响。
总之,IEC 14776‑222:2006 (SBC‑2) 是块存储领域的基础性标准,其严谨的命令定义和参数体系为现代存储互操作性奠定了基石。