为什么USB设备的速度低于480 MBit / s
动机 信号速率为480 MBit / s时,USB 2.0设备应能够以高达60 MB / s的速度传输数据。但是,今天的设备在阅读[ Wiki:USB ]时似乎被限制为30-42 MB / s 。那是30%的开销。 十多年来,USB 2.0已经成为外部设备的事实上的标准。早期以来,USB接口最重要的应用之一就是便携式存储。不幸的是,USB 2.0迅速成为了这些带宽要求较高的应用程序的速度限制瓶颈,例如,当今的HDD能够以90 MB / s的顺序读取速度。考虑到长期的市场占有率以及对更高带宽的持续需求,我们应该期望USB 2.0 eco系统经过多年的优化,其读取性能已接近理论极限。 在我们的案例中,理论上的最大带宽是多少?每个协议包括USB都有开销,根据官方USB 2.0标准,它为53.248 MB / s [ 2,表5-10]。从理论上讲,这意味着今天的USB 2.0设备可以快25%。 分析 为了深入探究此问题的根源,以下分析将演示在从存储设备读取顺序数据时总线上正在发生的情况。该协议是逐层分解的,我们特别对以下问题感兴趣:为什么53.248 MB / s是批量上游设备的最大理论数量。最后,我们将讨论分析的局限性,这可能会给我们带来一些额外开销的提示。 笔记 在整个问题中,仅使用十进制前缀。 USB 2.0主机能够处理多个设备(通过集线器),每个设备可以处理多个端点。端点可以在不同的传输模式下运行。我们将分析限制在直接连接到主机并且能够在高速模式下通过上游批量端点连续发送完整数据包的单个设备上。 构图 USB高速通信以固定帧结构同步。每个帧长125 us,并以帧起始数据包(SOF)开始,并受帧结束序列(EOF)限制。每个数据包均以SYNC开头,并以和数据包结尾(EOF)结尾。为了清楚起见,这些序列已添加到图中。EOP的大小是可变的,并且取决于分组数据,对于SOF,它始终为5个字节。 在新标签页中打开图片可查看大图。 交易次数 USB是主驱动协议,每个事务都由主机启动。SOF和EOF之间的时隙可用于USB事务。但是,SOF和EOF的时间安排非常严格,并且主机仅启动可以在空闲时隙内完全完成的事务。 我们感兴趣的事务是成功的批量IN事务。事务从令牌包IN开始,然后主机等待数据包DATA0 / DATA1,并通过握手包ACK确认传输。所有这些数据包的EOP都是1到8位,具体取决于数据包数据,在此我们假定了最坏的情况。 在这三个数据包之间,我们必须考虑等待时间。它们位于主机的IN数据包的最后一位与设备的DATA0数据包的首位之间,以及DATA0数据包的最后一位与ACK数据包的第一位之间。我们不必考虑任何进一步的延迟,因为主机可以在发送ACK之后立即开始发送下一个IN。电缆传输时间定义为最大18 …