UASP(USB Attached SCSI Protocol)简介
UASP全称USB Attached SCSI Protocol,中文译名USB附加SCSI协议。
UAS是一种计算机协议,用于将数据从USB存储设备写入和读出,例如硬盘驱动器(HDD)、固态驱动器(SSD) 和拇指驱动器。UAS 依赖于 USB 协议,并使用标准的SCSI命令集。与较旧的USB 大容量仅批量传输(BOT) 驱动程序 相比,使用 UAS 通常可以提供更快的传输速度。
UASP是作为USB3.0标准的一部分引入的,但如果使用兼容的硬件、固件和驱动程序,也可以与符合较慢 USB 2.0 标准的设备一起使用。
UAS概述
UAS其实定义了两个规范,分别为: UAS规范- T10 “USB Attached SCSI” (T10/2095-D)和UASP规范- USB “Universal Serial Bus Mass Storage Class - USB Attached SCSI Protocol (UASP)”.
国际信息技术标准委员会(INCITS)的 T10 技术委员会开发和维护 UAS 规范;SCSI贸易协会(SCSITA) 推广 UAS 技术。
USB大容量存储设备类(MSC) 工作组开发和维护 UASP 规范;USB Implementers Forum , Inc. (USB-IF) 推广 UASP 技术。
与较旧的 USB 大容量仅批量传输 (BOT) 协议驱动程序相比,UAS 驱动程序通常提供更快的传输速度。尽管 UAS 已添加到USB 3.0标准中,但如果硬件兼容,也可以在 USB 2.0 速度下使用。
与 SSD 一起使用时,UAS 在随机读写方面比 BOT 快得多,但在某些写入任务方面仍远低于原生SATA 3接口的速度。
许多NVMe到USB适配器是 USB 连接的 SCSI 设备
硬件支持
SemiAccurate在 2010 年 7 月的一次简短硬件综述发现,技嘉科技已经为他们的主板引入了使用NEC / Renesas芯片的工作 UAS 驱动程序,并且至少在硬件层面上,“LucidPort USB 300 和 USB302、Symwave SW6315、德州仪器TUSB9260 和VLI VL700 控制器都支持 UASP,而据我们所知, ASMedia ASM1051和 ASM1051E 以及富士通 MB86C30A 不支持。”
VR-Zone 在 2011 年 8 月进行的比较性能评估得出的结论是,只有 NEC/Renesas 芯片具有 UAS 工作驱动程序。相同的瑞萨 UAS 驱动程序(适用于 Windows)也适用于 AMD 的A70M 和 A75 Fusion Controller Hub,其中 USB 部分由 AMD 和瑞萨共同开发。2011 年 10 月,ASMedia 芯片也获得了驱动支持(他们之前在硬件方面有支持)。富士通列出了一些支持 UAS 的高端芯片,例如 MB86C311A。
至于 Intel Platform Controller Hub (PCH) 的支持,MyCE 中的一篇文章指出:“原生 Intel USB3 UASP 解决方案仅在 Windows 8 下支持。更复杂的是,并非所有Z77主板都支持 USB3 UASP。需要许可证才能实施 UASP,并不是所有的主板制造商都准备将这个许可证的额外成本转嫁给最终用户。”
操作系统支持
Microsoft在Windows 8中添加了对 UAS 的本机支持。支持 UAS 的驱动器加载 Uaspstor.sys 而不是旧的 Usbstor.sys。默认情况下,Windows 8也通过 USB2.0 支持 UAS。 UAS 驱动程序和产品由 Microsoft 使用Windows 硬件认证工具包进行认证。
Apple 在OS X 10.8 Mountain Lion中添加了对 UAS 的原生支持;使用 UAS 的驱动器显示在(Apple 菜单 -> 关于本机)-> 系统信息 -> 软件 -> 扩展为 IOUSBAttachedSCSI(或 IOUSBMassStorageUASDriver,取决于 OS X 的版本)“已加载:是”。列出“已加载:否”的驱动器默认为较旧、较慢的仅批量传输 (BOT) 模式。如果驱动器的 USB 控制器、Mac 的 USB 端口或任何连接的 USB 集线器不支持 UASP 模式,则可能会发生这种情况。
自2014年6月8日版本3.15 发布以来,Linux 内核已支持 UAS。 然而,一些Linux发行版,例如Ubuntu(从 v11.xx 开始)在 UAS 协议的实现方面遇到了问题。在某些不支持 UAS 的 USB HDD 驱动器中,该驱动器不能被操作系统挂载。报告的解决方法是将modprobe中的 UAS 模块列入黑名单。
FreeBSD自 2018 年 8 月起不支持 UAS
UASP目标
- 旨在直接解决 USB 大容量存储设备类仅批量传输 (BOT) 的故障
- 为 USB 大容量存储设备启用命令队列和乱序完成
- 消除SCSI命令阶段的软件开销
- 为 SSD启用TRIM(SCSI 术语中的 UNMAP)操作
- 最多可以排队 64K 命令
- SCSI SAM-4 兼容
- 定义了 USB 3.0 SuperSpeed 和 USB 2.0 High-Speed 版本
- USB 3.0 SuperSpeed – 主机控制器 (xHCI) 硬件支持,无乱序命令的软件开销
- USB 2.0 高速 – 在 USB 2.0 驱动器中启用命令队列
- 流被添加到 USB 3.0 SuperSpeed 协议以支持 UAS 乱序完成
- USB 3.0 主机控制器 (xHCI) 为流提供硬件支持