USB 附加 SCSI(UAS)或 USB 附加 SCSI 协议(UASP)是一种计算机协议,用于在 USB 存储设备(如硬盘(HDD)、固态硬盘(SSD)和优盘)之间传输数据。UAS 依赖于 USB 协议,并使用标准 SCSI 命令集。与老式的 USB 大容量存储批量传输 (BOT) 驱动程序相比,使用 UAS 通常能提供更快的传输速度。
UAS 是作为 USB 3.0 标准的一部分引入的,但也可用于符合较慢的 USB 2.0 标准的设备,前提是使用兼容的硬件、固件和驱动程序。UAS 的开发是为了解决原始 USB 大容量存储批量传输协议的不足,即无法执行命令队列或无序命令完成。为了支持这些功能,在 USB3 规范中增加了批量流协议,并在 USB 主机控制器接口(可扩展主机控制器接口)中增加了流支持。
UAS 由两个标准定义,一个是 T10 "USB 附加 SCSI"(T10/2095-D)(简称 "UAS "规范),另一个是 USB "通用串行总线大容量存储类 - USB 附加 SCSI 协议(UASP)"规范。国际信息技术标准委员会 (INCITS) 的 T10 技术委员会负责开发和维护 UAS 规范;SCSI 贸易协会 (SCSITA) 负责推广 UAS 技术。USB 海量存储设备类 (MSC) 工作组制定并维护 UASP 规范;USB 实施者论坛公司 (USB-IF) 推广 UASP 技术。
与旧版 USB 大容量存储只传输(BOT)协议驱动程序相比,UAS 驱动程序的传输速度通常更快。[1][2][3] 虽然 UAS 是在 USB 3.0 标准中添加的,但如果硬件兼容,它也能以 USB 2.0 的速度使用。
与固态硬盘一起使用时,在 USB 传输速率相同的情况下,UAS 的随机读写速度要比 BOT 快得多。本地 SATA 3 接口的速度为 6.0 Gbit/s。当使用比 SATA3 链接速度慢的 USB 3.0 链接(5.0 Gbit/s)时,性能将受到 USB 链接的限制。不过,USB 的传输速率在不断提高,USB4 已达到 80 Gbit/s。许多 UAS 硬盘是通过 SATA 到 UAS 桥接器连接 SATA 3 硬盘实现的,这限制了 UAS 硬盘的原始 SATA 传输速率,但原始 USB UAS SSD 可以充分利用更高的 USB 传输速率。
Linux 内核自 2014 年 6 月 8 日发布 3.15 版以来一直支持 UAS。[18] 不过,一些 Linux 发行版(如 Ubuntu(v11.xx 起))报告了一些行为不端硬件的问题。[19] 内核有一个内置黑名单,用于列出在 unusual_uas.h 中定义了 "怪癖 "的设备。[20] 可通过 procfs 或内核命令行(usb-storage.quirks)添加临时附加怪癖。
截至 2018 年 8 月,FreeBSD 不支持 UAS。
在不支持 UAS 类的旧版操作系统上,为兼容起见,UAS 设备可在仅 USB 大容量存储批量传输模式下运行。
bot和uasp的差异
BOT传输协议和UASP传输协议有什么区别? - USB中文网