可利用SAS全双工连接的SCSI命令及SAS双向传输疑问
关于SAS全双工链路与SCSI双向命令的疑问解答
一、支持双向数据传输的罕见SCSI命令
这类命令允许单条命令执行期间,主机与设备同时进行双向数据传输,实际场景中使用率极低的主要有以下几种:
WRITE AND VERIFY:执行时主机向设备写入数据,同时设备将刚写入的数据回传至主机做校验,全程依赖双向链路同时传输。COMPARE AND WRITE:主机先将待写入数据与设备目标位置的现有数据做对比,对比过程中双向传输数据,仅当数据不匹配时才执行写入操作。READ MODIFY WRITE:从设备读取数据到主机,主机修改后再写回设备;部分实现会在链路层面优化为双向传输,但实际应用中极少用到。
此外还有针对特定外设(如部分存储控制器)的小众命令,比如RECEIVE AND TRANSMIT,但应用范围非常有限。
二、SAS驱动器能否同时处理双向读写请求?
这并不意味着SAS驱动器无法同时处理读写请求,需从两个层面区分:
- 单命令的双向传输:SAS传输层本身确实支持双向全速传输,但由于支持该模式的SCSI命令极少,且SAS链路同一时间仅能绑定到单个命令,单命令场景下这个特性几乎无法发挥优势。
- 多命令的并发调度:SAS驱动器普遍支持原生命令队列(NCQ),主机可同时向驱动器发送多个读、写命令,驱动器内部会对这些命令进行优化调度(比如重新排序以提升磁盘访问效率)。虽然同一时刻链路只能服务一个命令,但通过队列的轮转调度,实际表现上可以同时处理多个读写请求,达到类“并行”的处理效果。
内容的提问来源于stack exchange,提问作者Vitaly Isaev
相关产品推荐
相关产品推荐

