• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Home
  • About
    • Stephen Foskett
      • My Publications
        • Urban Forms in Suburbia: The Rise of the Edge City
      • Storage Magazine Columns
      • Whitepapers
      • Multimedia
      • Speaking Engagements
    • Services
    • Disclosures
  • Categories
    • Apple
    • Ask a Pack Rat
    • Computer History
    • Deals
    • Enterprise storage
    • Events
    • Personal
    • Photography
    • Terabyte home
    • Virtual Storage
  • Guides
    • The iPhone Exchange ActiveSync Guide
      • The iPhone Exchange ActiveSync Troubleshooting Guide
    • The iPad Exchange ActiveSync Guide
      • iPad Exchange ActiveSync Troubleshooting Guide
    • Toolbox
      • Power Over Ethernet Calculator
      • EMC Symmetrix WWN Calculator
      • EMC Symmetrix TimeFinder DOS Batch File
    • Linux Logical Volume Manager Walkthrough
  • Calendar

Stephen Foskett, Pack Rat

Understanding the accumulation of data

You are here: Home / Everything / Apple / What Is A UASP Storage Enclosure?

What Is A UASP Storage Enclosure?

December 7, 2015 By Stephen Leave a Comment

It can be hard to keep up to date with the latest storage jargon, so some interesting technologies can be overlooked. When it comes to home storage, the advent of USB 3 has changed the game for external storage. Suddenly, enclosures can deliver multi-gigabit performance. Or they could, if only the storage stack could handle all this new speed! That’s where a new external drive protocol, USB Attached SCSI Protocol (UASP or UAS) comes in: It allows USB-attached storage to reach its maximum potential.

Non-Queueing BOT

Back in USB 1 days, performance wasn’t really an option. Limited to 12 Mbps at “full-speed”, the bus was always the bottleneck. Plus, there really weren’t any high-speed storage devices to connect, since consumer SSD’s hadn’t yet been invented! So the designers of the USB storage stack stuck with a simple protocol for external storage devices: Bulk-Only Transport (BOT), introduced in 1999.

BOT worked well enough, given the other limitations of USB, that it remained unchanged with the advent of USB 2 in 2000. Although some devices could exceed the 480 Mbps of theoretical performance offered by “high-speed” USB 2, BOT was good enough for the simple external hard drives and thumb drives in use at the time.

But the limitations of BOT were starting to show: Since it lacked native queueing, commands were sent sequentially, causing the computer to wait for each read or write to complete before issuing another. Faster computers and faster devices meant a lot of waiting: Sometimes, the round-trip time of a storage operation was longer than it took the actual command to complete, reducing overall throughput by half or more. This is one reason that even the fastest USB 2 device has trouble exceeding 25 or 30 MB/s in real-world use.

UASP Brings SCSI to USB

Just about every operating system supports, SCSI, a full-featured and flexible storage protocol stack, but this was not available for USB devices. UASP changes that, allowing devices to use the SCSI protocol over USB. This improves performance, thanks to native command queueing, and also adds lots of other storage features like inquiry (INQ), multi-LUN configuration, and more. UASP was designed for USB 3, but it can even work with over a USB 2 connection for improved performance.

Here’s a great technical overview of UASP from usb.org: USB Attached SCSI Protocol (UASP)

For most users, UASP is all about performance. A UASP device can come much closer to the theoretical maximum throughput of the USB bus since commands no longer have to wait in a single queue. UASP separates commands, status, input, and output into four separate I/O “pipes”, eliminating the old “command, wait, response, I/O, wait, status response” cycle of BOT.

UASP is supported in the following operating systems today:

  • Microsoft Windows 8 and newer “prefers” UASP if available over both USB 3 and USB 2
  • Mac OS X added UASP support in OS X 10.8 “Mountain Lion” though it seems not to work reliably, especially when connected through USB hubs1
  • Linux has had a UASP driver since 2.6.37 but it has been problematic and is disabled for certain hardware2

On the hardware side, UASP has been embraced by higher-end USB 3 storage controllers used by most major device manufacturers but it’s sorely lacking in low-end devices. Intel added native UASP to their Z77 motherboard PCH, but support requires an extra-cost license so some manufacturers have not enabled it.

UASP devices can be made backwards-compatible with BOT, and this new capability is auto-detected by most current operating systems, so users don’t have to worry about configuring it.

Stephen’s Stance

UASP has a lot of promise, bringing SCSI performance and features to the ever-expanding world of USB storage devices. But support has been haphazard, especially for Mac OS X and Linux, and this limits its impact. It would be nice if storage vendors could work with operating system developers to better support this storage protocol.

  1. It’s very difficult to check if Mac OS X is using UASP. One way is to look for “Loaded: yes” for the “IOUSBAttachedSCSI”  line item under Software/Extensions in System Information. ↩
  2. To check if Linux is using UASP or BOT, run lsusb -t and look for “driver=uas” as opposed to “driver=usb-storage” ↩

You might also want to read these other posts...

  • Electric Car Over the Internet: My Experience Buying From…
  • Tortoise or Hare? Nvidia Jetson TK1
  • Running Rabbits: More About My Cloud NUCs
  • Introducing Rabbit: I Bought a Cloud!
  • How To Connect Everything From Everywhere with ZeroTier

Filed Under: Apple, Terabyte home Tagged With: BOT, Linux, Mac OS X, native command queueing, performance, SCSI, UAS, UASP, USB 2.0, USB 3.0, Windows 8

Primary Sidebar

Don’t start an argument with somebody who has a microphone when you don’t. They’ll make you look like chopped liver.

Harlan Ellison

Subscribe via Email

Subscribe via email and you will receive my latest blog posts in your inbox. No ads or spam, just the same great content you find on my site!
 New posts (daily)
 Where's Stephen? (weekly)

Download My Book


Download my free e-book:
Essential Enterprise Storage Concepts!

Recent Posts

How To Install ZeroTier on TrueNAS 12

February 3, 2022

Scam Alert: Fake DMCA Takedown for Link Insertion

January 24, 2022

How To Connect Everything From Everywhere with ZeroTier

January 14, 2022

Electric Car Over the Internet: My Experience Buying From Vroom

November 28, 2020

Powering Rabbits: The Mean Well LRS-350-12 Power Supply

October 18, 2020

Tortoise or Hare? Nvidia Jetson TK1

September 22, 2020

Running Rabbits: More About My Cloud NUCs

September 21, 2020

Introducing Rabbit: I Bought a Cloud!

September 10, 2020

Remove ROM To Use LSI SAS Cards in HPE Servers

August 23, 2020

Test Your Wi-Fi with iPerf for iOS

July 9, 2020

Symbolic Links

    Featured Posts

    Replacing Google Reader With Feedbin and Reeder

    May 5, 2013

    Introducing Rabbit: I Bought a Cloud!

    September 10, 2020

    What’s the Difference Between a Jailbroken and an Unlocked Phone?

    May 5, 2012

    Thoughts on the Modern Miracle of 3D Printing

    July 28, 2015

    Frequent Flier Kung Fu for Novices

    March 12, 2012

    10 Mysteries The Lost Finale Definitively Settled

    May 25, 2010

    What’s the Deal with Containers?

    October 21, 2016

    How Smart Is the Mondaine Helvetica Smart Watch?

    December 30, 2015

    Follow the Yellow Brick Road to the Software-Defined Future

    November 29, 2012

    How To Sync Your iPad With Your Exchange Server

    April 3, 2010

    Footer

    Legalese

    Copyright © 2022 · Log in