USB 3.0 在数据量较多且零碎传输时,效能的表现会较差,主要原因是在于传输技术所造成的状况。
USB 采用半双工传输模式与 BOT (Bluk Only Transfer) 传输协议,半双工传输模式就像是再讲对讲机一样,一方说完另一方才能继续对话,也就是说数据的传输方向仅有单向传输功能。
BOT 传输协议则是一种单线程的传输架构,这个架构就像马路上只能行使一台车子,不管路有多宽,都必须等待这量车子行驶过后下一部车子才能继续通行。
USB 的加速方式
提升为全双工模式
当 USB 升级到 USB 3.0 时,将原来的半双工传输模式,改为全双工模式,并且提升十倍的带宽,不过其架构还是在 BOT 之下。
BOT 加速模式
这个方式虽然还是在 BOT 的架构之下,但是是将原来在路上行使的轿车,换一台更大一点的公交车,将一次传送的数据量加大,就可以减少来回的次数,来达到加速的目的。
UASP 加速模式
BOT加速模式虽然可以有效的增加传输速度,不过还是没有在根本上解决无法多任务处理的问题,所以 USB-IF (USB Implementers Forum) 一个为开发 USB 规格的企业共同成立的非营利性机构,为了让传输效能更好,制定了UASP(USB Attached SCSI Protocol)传输架构,让 USB3.0 也能像 SCSI 传输协议的方式传输数据,不需等待上一笔数据传输完成后再进行传输数据的动作,并改善了在 CPU 的使用率、数据延迟及等待时间。
要达到 UASP 加速功能,请先确认您计算机端是否同样有支持 UASP 功能。
目前支持 UASP 的系统有 WIN 8 、Mac OS 8 & 9 ,除了以上系统,您也可以询问您购买的计算机公司,是否有提供相关的驱动程序。
如果需要检查当前插入的设备是否正在使用UASP,则执行如下命令
1 2 3 4 5 6 |
$ lsusb -t ... /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M |__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M ... |
在启用的情况下,您可以看到Driver=uas
驱动程序。
如果没有使用UAS,您会看到Driver=usb-storage
参考链接
- 如何检查Linux中是否启用了USB3.0 UASP(USB附加SCSI协议)模式?
- How can I check whether USB3.0 UASP (USB Attached SCSI Protocol) mode is enabled in Linux?
- 如何实现Linux下的U盘(USB Mass Storage)驱动
- Verify USB/UASP mode in Mac OS X
- USB/UAS
- USB 3.0 支持 UASP 有什么功用呢?
- Faster USB 3.0 Performance: Examining UASP And Turbo Mode
- Ubuntu 16.04 USB 3.0 UAS support