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和usb 3.0的基本区别对比分析
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
这次传输的时间结构
usb 2.0和usb 3.0的基本区别对比分析
这里,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只是当整个序列完成时产生中断。
usb 2.0和usb 3.0的基本区别对比分析
西桥器件是专为这种操作设计的,可以显著提高性能。由于数据传输的总延迟依赖于处理延迟,当使用西桥结构后会大大降低这种延迟。
影响通用处理器性能的主要因素取决于中断的频率。简而言之,每次gp收到中断,内容都需要切换,执行isr,从而增加了其他运行程序的时间。当使用西桥器件时,大部分usb相关中断由它处理,从而提高了gp的性能。
下面是一个15.1 gb的嵌入式多媒体卡(emmc) 使用海量存储类驱动枚举的性能测试。没有西桥时gp不得不处理很多中断。下图描绘了系统的各项任务处理结果。中断数量为log2单位。
usb 2.0和usb 3.0的基本区别对比分析
蒸汽回收机是什么,它的特点以及原理是什么
vivo X21魅夜紫图片赏析:张扬个性 极致魅惑
基于无人机影像的北部湾红树林生态系统净初级生产力估算
AI落地智慧社区会产生哪些新兴应用
神舟十二号宣传片发布
USB 2.0和USB 3.0的性能对比分析
智能家居企业转型考验的是战略智慧和把握关键节奏
人工智能的冬天要来了?
区块链的未来方向朝哪里
腾讯ROG游戏手机新机曝光!散热架构大幅升级
移动办公时代引领者:英特尔vPro平台
特斯拉在中国上线两座超级充电站
Waymo发布第五代自动驾驶系统 最远可识别到500米以外的停车标志
笙科电子推新一代蓝牙低功耗芯片A8115 强化语音处理功能
乐视影业更名乐创文娱_乐视控股股份将转让
TOREX推出附带电压检测功能且耐压为28V的电压调整器
大部分AI公司靠AI应用赚钱依旧艰难
骁龙855为手机拍照和视频录制设定了全新标准
传苹果挖走华为荣耀53人AI团队_十论中国芯未来之路
系统演示平台的使用方法的演示