通过 USB 3 进行串行通信——理论速度?

通过 USB 3 进行串行通信——理论速度?

USB 3 的理论速度为 640Mbps 或每秒 80 兆字节。

这是否意味着(理论上)我每秒可以通过串行端口从我的计算机向通过 USB 3 连接的设备发送 80 兆字节的信息?

4k 视频的比特率通常为 35Mbps。USB3 的理论带宽为 640Mbps。假设有一台显示器接受 USB3 而不是 HDMI,USB3(理论上)是否可以支持“视频输出”?既然 USB3 有足够的带宽来处理 4k 视频,为什么还要使用 HDMI 电缆?

答案1

首先,USB3 超高速模式的波特率为 5Gbps,即 640MBps,而不是 640Mbps。

其次,虽然这是 USB 传输信息时可以使用的波特率(每秒线路转换次数),但每个字节序列都有开销,具体开销取决于数据包大小,但通常不会超过 1024 字节数据包中的十几个字节。不过这里有几个主要的理论瓶颈。

一个是总线的带宽使用情况,也就是说,虽然 USB3 收发器可以以 5 千兆波特的速率发送或接收,但它不能无限期地这样做,它必须将这些信息写入存储寄存器,并等待 DMA 调用将数据从这些寄存器复制到系统内存中。由于 CPU 和其他外设(如显卡)使用总线进行自己的 DMA,DMA 调用可能会不可预测地延迟。

第二个是传播延迟,从 USB 从属设备读取的所有数据都必须由主设备(主机)请求,此请求以下行数据包的形式从主机到设备。并且此数据包需要时间才能沿着电线的长度传播。如果我没记错的话,铜中的光速大约是真空中的 85%,根据经验法则,该速度大约为每纳秒 1 英尺,因此对于 1 英尺的 USB 电缆,该信号必须传播 1 纳秒,收发器才能开始接收它(在 5Gbps 下,1 纳秒足以传输 5 个整位数据)。并且您必须对每个数据包都执行​​此操作(实际上,每个数据包序列都必须发送几个握手数据包)。

另一方面,一旦设备从主机接收到读取请求包,它就必须触发中断,用其数据加载收发器,然后让收发器将其发送出去,因此也有相当多的周转时间。

至于使用 USB3 来驱动视频,你当然可以,市面上有许多适配器可以做到这一点,而且 USB3 的速度仍然足够快。有些有自己的板载显卡,有些只是通过串行从帧缓冲设备转发数据。你可以在这里看到一些新蛋

答案2

您的计算有误。USB 3.0 SuperSpeed Gen1 接口的比特率为 5Gbits/s。由于所有数据均采用 8b/10b 编码,因此每个字节需要 10 个单位间隔才能传输。因此,USB3.0 的最高理论吞吐量为 500 MBytes/s。

实际上,每个 SS 链路段都有一些开销。一个是链路管理开销,当两个方向必须定期传输 LUP 和 LDN 数据包(链路启动和链路关闭)时。然后是 ITP - 异步时间戳数据包,相当于 USB2 中的 SOF。然后是流量控制数据包,如信用交换和 LGOOD。然后是物理层协议开销(IN-OUT 事务数据包等)。赛普拉斯已报告在人工测试环境下吞吐量可达450Mbytes/s,且无应用级开销。

因此,里程可能会有所不同。

是的,许多笔记本电脑扩展坞使用单个 USB3.0 端口,通过 USB-HDMI 转换器为两到三台显示器提供不错的视频分辨率。参见戴尔 D3100例如。

相关内容