电子工程专辑
UBM China

使用USB 3.0软硬件设计问题之探讨

上网日期: 2011年09月26日 ?? 我来评论 字号:放大 | 缩小 分享到:sina weibo tencent weibo tencent weibo


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友

关键字:USB 3.0? USB 2.0? 数据流?

数据流

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延时,则需要通过更有效地系统设计来管理。

点击下一页: