USB 2.0与USB 3.0功能特性对比分析
简介
USB由于具备简单、成熟、即插即用特征,所以在市场上很流行。然而,USB 2.0 480 Mbps的速度无法支持新一代存储和视频。因此,移植到一个更快标准的时机已经成熟,这就导致了USB 3.0新协议的开发。对于开发商而言,挑战是如何充分利用USB 3.0的潜能。本文将探讨使用USB 3.0硬件软件设计问题,本文主要介绍的是手持产品。首先,我们将比较USB 2.0和USB 3.0的性能,以及过渡到USB 3.0模块影响到的器件。
在一个普通的场景中,在device端,处理器直接连接到USB、存储器和外设。记住这种结构,由High-Speed过渡到SuperSpeed,处理器的影响可以概括如下:
USB 2.0 VS USB 3.0
数据速率
USB 2.0和USB 3.0的基本区别是带宽。USB 2.0所提供的理论带宽是480Mbps。事实上,收到的最大吞吐量约为320Mbps (40MBps),它大致是理论值的三分之二。使用USB3.0,数据吞吐量为4.8Gbps。如果我们用相同的比例,那么预期的数据速率是3.2Gbps (400MBps)。然而,许多开发人员希望能提供更高的吞吐量。图1显示了USB 3.0 和USB 2.0用于Buffalo外部存储磁盘进行不同大小文件传输的数据率差异。应该指出的是,USB 3.0数据速率受储存设备约束,否则400 Mbps的数据速率很容易达到。
图1可以看出,单个请求传输大小增大了,数据传输速率也随之增加了。这是因为当请求传输大小增加时,请求数量和因此MSC设备要处理中断减少,那么整体性能就更好了。64 KB传输过后,数据速率达到饱和(因为Windows驱动在一个SCSI请求中不能请求超过64 KB的数据)。这些数据显示了中断在整个系统性能的重要性和影响。
高数据率增加了中断速率和数据请求速率,这使处理器负荷显著提高。当处理器忙于处理USB相关的实时请求时,增加了延时,用户会看到应用处理慢了下来,这并不是一个满意的结果。
数据流
USB 2.0数据请求一次只能是一个方向,与USB 2.0标准不同,USB 3.0支持同时读和写。这是因为USB 2.0是半双工协议,而USB 3.0是全双工协议。全双工通信是通过增加更多连接来支持同时传输数据的。它同时也带来了成本的增加和软件的复杂性。使用USB 2.0,处理器一次只参与传输,并且数据结构和请求处理非常简单。但随着全双工USB 3.0的到来,现在的数据结构需要加倍的信息。USB软件模块还需要能够处理同时的数据操作。
电源管理
封包传输协议改变了(例如,广播定向),设备polling消除了,link的定义和功能级中间状态,使USB3.0电源管理要很不错。我们将讨论USB设备处理器必须要做的事情,因为第三种降低功耗改变了,例如多种中间状态。
在USB 2.0中,状态只有ACTIVE 和SUSPEND。SuperSpeed中有两个以上的状态:FAST EXIT IDLE 和SLOW EXIT IDL。状态越多意味着硬件和软件两个方面都更复杂。外设可以使用link级电源管理发起省电模式。要获得实际利益,处理器需要跟踪USB接口的空闲时间,智能采取行动。对于一个设备来说电源连接状态的入口和出口速率可能很频繁。例如,同步传输允许外设在服务间隔进入低功耗状态。这可以显著增加处理器负载运行时间。
流支持
USB3.0拓展了批量传输模式,支持流模式。批量流提供了同频带信号传输,通过一个标准批量传送支持多路多个独立逻辑数据流协议。这种作法简化了USB设计复杂的类协议。例如,USB SCSI (UAS)海量存储类使用批量流代替简单的BOT协议。在BOT中,一次只有一个pending请求,而在UAS中,一次可能有n-1个请求,这里n是批量端点中支持的流数。实现和维护一个复杂的类协议也可能使处理器一直很忙。对于BOT来说单个平面数据结构就够了,UAS协议要求基于优先级的数据结构用于实现外设端固件。
常用USB设备结构分析
考虑到海量存储设备是市场上最常见的高性能USB外设,我们会举一个海量存储设备的例子,来精确的分析其性能。
我们将讨论数据方面,这是因为大部分时间里接口将涉及数据包传输而不是控制包。
数据传输步骤:
1.处理器收到一个USB请求。
2.处理器处理这个请求。
3.处理器依次存储读/写请求。
4.处理器等待传输完成。
5.处理器发送完成情况到USB host
这次传输的时间结构
总延时 = X Y Z
这里,X,Y和Z是主要的延时构成,解释如下:
1.延时X是传输请求数据包在主机和处理器之间所花的时间。这取决于USB协议和USB设备硬件处理效率。请求数据包大小只有几十个字节,所以延时只有几纳秒。
2.延时Y代表的是处理器处理USB请求和建立直接存储器存取所需要的时间。这取决于处理器类型,线程/过程数目,软件架构。对于通用处理器处理大量的过程和任务来说,操作系统处理延迟可能很大程度取决于中断延时,内容切换延迟,队列延迟等。最坏的情况下,延时Y可能达到数百微秒。
3.延迟Z是指数据在USB和存储设备之间传输所需的时间,这取决于请求类型。还取决于直接存储器存取结构和存储设备类型,并不取决于USB速度,因为这里瓶颈会是存储速度而不是USB速度(如SuperSpeed)。延迟Z可能在几毫秒和数微秒之间,取决于存储设备类型和数据大小。
虽然USB速度快了十倍(从480Mbps 到 5Gbps),但是真正的吞吐量将远远低于理论值,因为USB延时(X)比操作系统处理延迟(Y)和存储传输延迟(Z)都小得多,其相对于总延时可以忽略不计。Z延时可以通过选择更好的存储设备来改进,但是Y延时,则需要通过更有效地系统设计来管理。
效率
要发挥USB 3.0的全部潜力,需进行以下变化:
高性能处理器:处理器由于USB 3.0引起的复杂性和任务处理的数量都将大幅上升。如果希望其他应用性能不受影响,就需要一个功能强大的处理器。
影响:这不仅会增加产品成本,而且还会增加功耗,对于手持设备来说,这是很不利的。
必须改变现有的系统架构来适应USB 3.0。同时,如果USB 3.0的全部潜能都可以实现,就需要大容量和高性能的存储设备。
影响:这将增加系统的复杂度,因此影响了推向市场的时间和项目风险。
重新设计来提高性能
不需要将USB控制器连接到通用处理器(GP),可以连接到一个I/O模块。这种I/O模块类型叫做I/O通道,这里I/O模块增强为一个独立的处理器。GP指挥I/O通道在主存储器中执行程序。I/O通道拿到这些指令并执行他们,并不需要GP干预。GP只是当整个序列完成时产生中断。
如果I/O模块有自己的本地存储器,那么就称为I/O处理器。这种设置减少了通用处理器的参与。使用这种方式,可以避免需要使用高性能处理器和结构的变化,从而可以减少系统成本和量产风险。西桥就是这样一个智能I/O处理器,它把外设控制器增强了并模块化到了一个嵌入式计算机结构。南桥也是用很类似的方式来提高数据在PC的吞吐量,西桥结构提高了吞吐量,可以用于USB,通用处理器,存储器,及其他外设之间的高吞吐量数据传输。
西桥器件是专为这种操作设计的,可以显著提高性能。由于数据传输的总延迟依赖于处理延迟,当使用西桥结构后会大大降低这种延迟。
影响通用处理器性能的主要因素取决于中断的频率。简而言之,每次GP收到中断,内容都需要切换,执行ISR,从而增加了其他运行程序的时间。当使用西桥器件时,大部分USB相关中断由它处理,从而提高了GP的性能。
下面是一个15.1 GB的嵌入式多媒体卡(eMMC) 使用海量存储类驱动枚举的性能测试。没有西桥时GP不得不处理很多中断。下图描绘了系统的各项任务处理结果。中断数量为log2单位。
上表反映了使用特定应用的I/O处理器(如西桥)时,GP必须处理的中断减少的数目。没有西桥,GP要处理大量的中断,产生‘super speed’迫使GP要很长时间保持空闲状态(由于次要的内容切换)。相反,GP可以把这些任务释放给西桥,保持其处理其他实时任务的效率,充分发挥USB 3.0的潜力。西桥结构不仅可以简化整体系统平台结构,它还可以提高整体性能并降低项目风险。