通用串行总线连接的小型计算机系统接口(Universal Serial Bus Attached Small Computer System Interface),或者USB连接的SCSI (USB Attached SCSI,简称UAS) ,是一种用于USB存储设备(例如机械硬盘(HDD)、固态硬盘(SSD) 和闪存盘)之间传输数据的通信协议。 UAS基于USB 协议,并使用标准SCSI命令集。该协议与以前的USB 大容量存储批量传输 (BOT) 相比,可以提供更快的传输速度。
UAS 是USB 3.0标准的一部分,但在硬件、驱动程序和固件支持的情况下也可支持USB 2.0。 UAS 的开发是为了解决原始 USB 大容量存储批量传输协议的缺点:无法执行命令排队、无序命令完成。为了支持这些功能, USB3规范中增加了批量流协议 (Bulk Streaming Protocol),并且在 USB 主机控制器接口 (可扩展主机控制器接口) 中添加了流支持。
(2242) 固态硬盘 (SSD) 通过USB 3.0适配器连接到计算机。]]
概述
UAS 由两个标准定义,分别是T10“USB Attached SCSI”(T10/2095-D)即“UAS规范”,以及USB“Universal Serial Bus Mass Storage Class - USB Attached SCSI Protocol (UASP)”规范。国际信息技术标准委员会(INCITS)的T10技术委员会负责开发和维护UAS规范; SCSI贸易协会(SCSITA)负责推广UAS技术。 USB大容量存储设备(MSC) 工作组负责开发和维护 UASP 规范; USB开发者论坛公司 (USB-IF) 负责推广 UASP 技术。
UAS比USB大容量存储批量传输协议传输速度更快。 尽管 UAS 是在USB 3.0标准中添加的,但只要硬件兼容,它也能以USB 2.0的速度使用。
连接固态硬盘时,在相同的USB传输速率下,UAS 的随机读写速度比USB大容量存储批量传输快得多。不过,USB 3.0的速度(5 Gbps)实际低于SATA 3的速度(6 Gbps),但随着USB传输速率提高,USB4已达到 80 Gbps。此时SATA 3接口反而限制了实际传输速率。原生使用UAS的固态移动硬盘可以突破这一限制。
UAS标准实际有三代,第一代UAS标准(ANSI INCITS 471-2010 和 ISO/IEC 14776-251:2014),称为UAS-1,该标准已被取代。T10 启动了 UAS-2 项目,但后来被取消。最终该技术以UAS-3的形式重新出现,现已成为一项已发布的标准 (INCITS 572-2021)。除了基于其他 SCSI 标准的后续版本(例如 SAM-6 和 SPC-6(均在开发中))之外,技术作者还对 UAS-1 和 UAS-3 之间的变化进行了如下描述:“允许设备在当前命令完成之前将数据传输从一个命令切换到另一个命令”。
硬件支持
USB 控制器/集线器
SemiAccurate在 2010 年 7 月发布的一份简短的硬件综述中称,技嘉科技已经为其使用NEC/Renesas芯片的主板推出了可用的UAS驱动程序。 。Windows下相同的Renesas UAS 驱动程序也适用于 AMD 的A70M 和 A75 Fusion 控制器集线器, 其中 USB 部分由 AMD 和Renesas共同开发。 2011 年 10 月,ASMedia USB 控制器芯片也获得了驱动程序支持(之前它们在硬件方面有支持)。
至于英特尔平台控制器中枢(PCH) 的支持,MyCE 上的一篇文章指出:“原生英特尔 USB3 UASP 解决方案仅支持Windows 8。且并非所有Z77主板都支持 USB3 UASP,支持UASP需要许可证,而并非所有主板制造商都准备将此许可证的额外成本转嫁给最终用户。”
一些全志科技SoC 具有在Linux下通过USB 2.0支持UAS的功能。
存储设备
在 USB/SATA 桥接器中,“LucidPort USB300 和 USB302、 Symwave SW6315、德州仪器TUSB9261 和VLI VL700 控制器均支持 UASP,而ASMedia ASM1051 和 ASM1051E 以及富士通 MB86C30A 则不支持。” ASMedia 1053-s 和 1153 支持 UAS。 提供完整的 USB 3.2 UAS 性能,数据传输速度高达 2 GB/s。
操作系统支持
微软在Windows 8中添加了对UAS的原生支持 。支持UAS的驱动器会加载 Uaspstor.sys,而不是旧的Usbstor.sys 。Windows 8也支持USB 2.0下使用UAS。 UAS 驱动程序和产品已通过微软的Windows 硬件认证工具包认证。
Apple 在OS X 10.8 Mountain Lion 中添加了对UAS的原生支持;使用UAS的驱动器在系统信息→ 软件 → Extensions as IOUSBAttachedSCSI(或IOUSBMassStorageUASDriver,取决于操作系统版本)“已加载:是” 。若显示“已加载:否”则采用旧的USB大容量存储批量传输协议。
Linux 内核从2014年6月8日发布3.15版本开始支持 UAS 。但以Ubuntu为例(从 v11.xx 开始)的一些Linux发行版反馈了一些硬件行为异常的问题 。内核有一个内置的黑名单可以定义设备 。可以通过 procfs 或内核命令行 ( ) 临时添加额外设备。
自 2018 年 8 月起, FreeBSD不再支持 UAS
在不支持 UAS 类的旧操作系统上,UAS 设备可以在USB 大容量存储批量传输模式下运行以实现兼容性。
目标
- 旨在直接解决 USB 大容量存储设备类批量传输 (BOT) 的缺陷
** 为 USB 大容量存储设备启用命令排队和无序完成
** 消除SCSI命令阶段的软件开销
** 为 SSD 启用TRIM (SCSI 术语中为 UNMAP)操作
- 最多可排队 64K 条命令
- 符合SCSI 架构模型(SAM-4)
- USB 3.0 超高速和 USB 2.0 高速版本定义
** USB 3.0 超高速 - 主机控制器 (xHCI) 硬件支持,无序命令无需软件开销
** USB 2.0 高速 – 启用 USB 2.0 驱动器中的命令排队
- 在 USB 3.0 SuperSpeed 协议中添加了流,以支持 UAS 无序完成
** USB 3.0 主机控制器 (xHCI) 为流提供硬件支持
参见
- SCSI/ATA 转换
参考
评论 (0)