USB Attached SCSI

Short description: Computer protocol for running the SCSI command set over USB for storage drives

USB Attached SCSI (UAS) or USB Attached SCSI Protocol (UASP) is a computer protocol used to move data to and from USB storage devices such as hard drives (HDDs), solid-state drives (SSDs), and thumb drives. UAS depends on the USB protocol, and uses the standard SCSI command set. Use of UAS generally provides faster transfers compared to the older USB Mass Storage Bulk-Only Transport (BOT) drivers.

UAS was introduced as part of the USB 3.0 standard, but can also be used with devices complying with the slower USB 2.0 standard, assuming use of compatible hardware, firmware and drivers. UAS was developed to address the shortcomings of the original USB Mass Storage Bulk-Only Transport protocol, i.e., an inability to perform command queueing or out-of-order command completions. To support these features, the Bulk Streaming Protocol was added to the USB3 specification, and Streams support was added to the USB host controller interface (Extensible Host Controller Interface).

An M.2 (2242) solid-state drive (SSD) in a USB 3.0 UAS adapter connected to computer USB port

## Contents

* 1 Overview
* 2 Hardware support
* 2.1 USB controller/hub
* 2.2 Storage devices
* 3 Operating system support
* 4 Goals
* 5 See also
* 6 References
* 7 External links

## Overview

UAS is defined across two standards, the T10 "USB Attached SCSI" (T10/2095-D) referred to as the "UAS" specification, and the USB "Universal Serial Bus Mass Storage Class - USB Attached SCSI Protocol (UASP)" specification. The T10 technical committee of the International Committee for Information Technology Standards (INCITS) develops and maintains the UAS specification; the SCSI Trade Association (SCSITA) promotes the UAS technology. The USB mass-storage device class (MSC) Working Group develops and maintains the UASP specification; the USB Implementers Forum, Inc. (USB-IF) promotes the UASP technology.

UAS drivers generally provide faster transfers when compared to the older USB Mass Storage Bulk-Only Transport (BOT) protocol drivers.[1][2][3] Although UAS was added in the USB 3.0 standard, it can also be used at USB 2.0 speeds, assuming compatible hardware.[4]

When used with an SSD, UAS is considerably faster than BOT for random reads and writes given the same USB transfer rate. The speed of a native SATA 3 interface is 6.0 Gbit/s. When using a USB 3.0 link (5.0 Gbit/s), which is slower than a SATA 3 link, the performance is limited by the USB link. However, later USB protocols have higher transfer rates, with USB4 allowing 80 Gbit/s. A UAS drive can be implemented using a SATA 3 drive attached through a SATA–UAS bridge with the SATA transfer rate limiting throughput, however, a native UAS SSD can take full advantage of higher USB transfer rates.

The original UAS standard (ANSI INCITS 471-2010 and ISO/IEC 14776-251:2014) can be referred to as UAS-1. A UAS-2 project was started by T10 but cancelled. That effort was resurrected as UAS-3, which is now a published standard (INCITS 572-2021). Apart from being based on later versions of other SCSI standards (e.g. SAM-6 and SPC-6, both under development) the technical author described the changes between UAS-1 and UAS-3 as follows: "allow the device to switch data transfers from one command to another before the current command is complete".

## Hardware support

### USB controller/hub

In July 2010 SemiAccurate reported that Gigabyte Technology had introduced working UAS drivers for their hardware using NEC/Renesas chips.[1]

A comparative performance review by VR-Zone in August 2011 concluded that only the NEC/Renesas chips had working UAS drivers.[5] The same Renesas UAS driver (for Windows) also works with AMD's A70M and A75 Fusion Controller Hubs,[6] the USB part of which was co-developed by AMD and Renesas.[7] In October 2011, ASMedia USB controllers chips had gained driver support as well (they had support on the hardware side before).[8]

As for support by Intel Platform Controller Hub (PCH), an article in MyCE notes: "The native Intel USB3 UASP solution is only supported under Windows 8. To further complicate matters, not all Z77 motherboards support USB3 UASP. A license is required to implement UASP, and not all motherboard manufacturers are prepared to pass on the extra cost of this license to the end user."[9]

A few Allwinner Technology SoCs feature UAS support over USB 2.0 in Linux.[10]

### Storage devices

Of USB–SATA bridges, "the LucidPort USB300 and USB302, Symwave SW6315, Texas Instruments TUSB9261 and the VLI VL700 controllers all support UASP, while the ASMedia ASM1051 and ASM1051E as well as the Fujitsu MB86C30A doesn't."[1]

Fujitsu lists some higher-end chips like the MB86C311A that do support UAS.[11] ASMedia 1053-s and 1153 support UAS.[10]

Silicon Motion's SM232x family of USB Flash Drive (UFD) controllers[12] offers full USB 3.2 UAS performance, reaching data transfer speeds of up to 2 Gbyte/s.

## Operating system support

Microsoft added native support for UAS to Windows 8.[13] Drives supporting UAS load Uaspstor.sys instead of the older Usbstor.sys.[14] Windows 8 supports UAS by default over USB 2.0 as well.[15] UAS drivers and products are certified by Microsoft using the Windows Hardware Certification Kit.[16]

Apple added native support for UAS to OS X 10.8 Mountain Lion; drives using UAS show up in System Information → Software → Extensions as IOUSBAttachedSCSI (or IOUSBMassStorageUASDriver, depending on the version of OS X) "Loaded: Yes".[17] Drives listed with "Loaded: No" are defaulting to the older, slower Bulk Only Transport (BOT) mode. This may occur if the drive's USB controller, the Mac's USB port, or any attached USB hub doesn't support UASP mode.

The Linux kernel has supported UAS since 8 June 2014 when the version 3.15 was released.[18] However, some distributions of Linux such as Ubuntu (from v11.xx onwards) have reported issues with some misbehaving hardware.[19] The kernel has a built-in blocklist for devices with "quirks" defined in `unusual_uas.h`.[20] Temporary additional quirks can be added via procfs or kernel command line (`usb-storage.quirks`).[21]

FreeBSD does not support UAS as of August 2018.[22]

On older operating systems that do not support UAS class, a UAS device may be run in USB Mass Storage Bulk-Only Transport mode for compatibility.

## Goals

* Designed to directly address the failings of the USB mass-storage device class bulk-only transports (BOT)
* Enables command queuing and out-of-order completions for USB mass-storage devices
* Eliminates software overhead for SCSI command phases
* Enables TRIM (UNMAP in SCSI terminology) operation for SSDs[23]
* Up to 64K commands may be queued
* SCSI Architectural Model (SAM-4) compliant
* USB 3.0 SuperSpeed and USB 2.0 High-Speed versions defined
* USB 3.0 SuperSpeed – host controller (xHCI) hardware support, no software overhead for out-of-order commands
* USB 2.0 High-speed – enables command queuing in USB 2.0 drives
* Streams were added to the USB 3.0 SuperSpeed protocol for supporting UAS out-of-order completions
* USB 3.0 host controller (xHCI) provides hardware support for streams

## See also

* SCSI / ATA Translation

## References

1. ↑ 1.0 1.1 1.2 Lars-Göran Nilsson (2010-07-30). "Gigabyte adds UASP support to its USB 3.0 motherboards". SemiAccurate. http://www.semiaccurate.com/2010/07/30/gigabyte-adds-uasp-support-its-usb-30-motherboards/.
2. ↑ Andrew Ku (2012-06-19). "USB Attached SCSI (UAS): Enabling Even Better USB 3.0 Performance – Faster USB 3.0 Performance: Examining UASP And Turbo Mode". Tomshardware.com. http://www.tomshardware.com/reviews/usb-3-uas-turbo,3215-4.html.
3. ↑ Sandler, Steve (2012-03-18). "What's the Difference Between USB UASP And BOT | Embedded content from". Electronic Design. http://electronicdesign.com/embedded/whats-difference-between-usb-uasp-and-bot?page=2.
4. ↑ Lars-Göran Nilsson (2010-08-11). "Gigabyte's UASP USB 3.0 Driver Boosts USB 2.0 Performance". SemiAccurate. http://www.semiaccurate.com/2010/08/11/gigabytes-uasp-usb-30-driver-boosts-usb-20-performance/.
5. ↑ TeamVR (August 23, 2011). "USB 3.0 Speed Tests: 7-Way Host Controllers Roundup – Page 1 of 11". Vr-zone.com. http://vr-zone.com/articles/usb-3-0-speed-tests-7-way-host-controllers-roundup/13358.html.
6. ↑ "USB to SATA3 bridge supports UASP". Electronics Eetimes. 4 September 2011. http://www.electronics-eetimes.com/en/usb-to-sata3-bridge-supports-uasp.html?cmp_id=7&news_id=222908986.
7. ↑ Lars-Göran Nilsson (2011-03-23). "AMD's A75 and A70M FCH gains USB-IF approval". SemiAccurate. http://www.semiaccurate.com/2011/03/23/amds-a75-and-a70m-fch-gains-usb-if-approval/.
8. ↑ TeamVR on October 14, 2011 1:23 am (2014-01-10). "Asus launches USB 3.0 speed booster, UASP support for ASMedia". Vr-zone.com. http://vr-zone.com/articles/asus-launches-usb-3-0-speed-booster-uasp-support-for-asmedia/13732.html.
9. ↑ "Beyond USB3, with UASP". Myce.com. http://www.myce.com/review/beyond-usb3-with-uasp-67035/Introduction-1/.
10. ↑ 10.0 10.1 "USB/UAS". https://linux-sunxi.org/USB/UAS.
11. ↑ "USB 3.0-SATA Bridge ICs : Fujitsu Global". Fujitsu.com. http://www.fujitsu.com/global/services/microelectronics/product/assp/usb30/.
12. ↑ "Silicon Motion Launches World's Fastest Single Chip Controller For External Portable SSDs". ir.siliconmotion.com. https://ir.siliconmotion.com/news-releases/news-release-details/silicon-motion-launches-worlds-fastest-single-chip-controller-0.
13. ↑ Jerome Myers (2012-10-25). "New USB 3.0 Support Built-In to Windows 8". Plugable. http://plugable.com/2012/10/25/usb-3-0-support-on-windows-8.
14. ↑ "USB in Windows – FAQ (Windows Drivers)". Msdn.microsoft.com. 2013-11-16. http://msdn.microsoft.com/en-us/library/windows/hardware/dn423379(v=vs.85).aspx#loadeddriver.
15. ↑ USB Attached SCSI (UAS) Best Practices for Windows 8, page 6
16. ↑ "USB 2.0 & 3.0 SCSI Compliance test for UAS on EHCI (LOGO)". Msdn.microsoft.com. 2013-07-26. http://msdn.microsoft.com/en-us/library/windows/hardware/hh998035.aspx.
17. ↑ fortysomethinggeek (2013-04-03). "Fortysomething Geek: OSX Mountain Lion 10.8 UAS UASP USB Attach SCSI drivers". Fortysomethinggeek.blogspot.com. http://fortysomethinggeek.blogspot.com/2013/04/osx-mountain-lion-108-uas-uasp-usb.html.
18. ↑ "Phoronix: USB Attached SCSI (UAS) Is Now Working Under Linux". https://www.phoronix.com/scan.php?page=news_item&px=MTcyMTk.
19. ↑ "UAS Ubuntu Bug-Report". bugs.launchpad.net. 2011-10-05. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/868233.
20. ↑ Torvalds, Linus (28 May 2023). "torvalds/linux: unusual_uas.h". https://github.com/torvalds/linux/blob/v6.3/drivers/usb/storage/unusual_uas.h.
21. ↑ "The kernel's command-line parameters — The Linux Kernel documentation". https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html.
22. ↑ "Is FreeBSD-current XHCI 1.1 compliant?". lists.freebsd.org. 2018-08-28. https://lists.freebsd.org/pipermail/freebsd-usb/2018-August/015431.html.
23. ↑ New API allows apps to send "TRIM and Unmap" hints to storage media

## External links

* USB Attached SCSI - 3 (UAS-3)
* USB Attached SCSI Protocol (UASP) v1.0 and Adopters Agreement, 2009-06-24
* USB Mass Storage Class Specification for UASP Bootability v1.0 and Adopters Agreement, 2013-03-04
* USB Attached SCSI (UAS) (data on t10.org)
* USB Attached SCSI Protocol (UASP) (PDF)

* v
* t
* e

USB

USB-IF specifications|

* USB 3.0
* USB-C
* USB On-The-Go

USB device classes|

* Mass storage
* Flash drive
* FlashCard
* Human interface
* Video
* Communications

Other|

* Enhanced mini-USB
* Ethernet over USB
* USB decoration
* USB hardware
* USB hub
* USB adapter
* PoweredUSB
* WebUSB

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/USB Attached SCSI. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Engineering:USB_Attached_SCSI&oldid=4209236"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template