USB4规范解读(一)一文看懂USB4数据的传输过程
本文以通俗的方式讲解USB4数据的传输过程。USB4只支持USB Type-C接口,不再支持传统的Type-A(Standard-A)接口和Type-B(Micro-B)接口了,因为这些接口无法支持10Gbps及以上的传输速度。USB4在功能上整合了USB 3.2,同时保持了USB 2.0数据,两者可以同时传输,互不干扰。可以说USB4兼容了USB 3.2和USB 2.0。
USB4和USB 3.2都是高速通信,区别在于USB4旨在将多个协议组合到一个物理接口上,从而可以动态共享USB4 结构的总速度和性能。USB数据传输时,USB4允许与其他专用于显示(DisplayPort),加载/存储(PCIe)的独立协议并行运行。USB4将带宽从USB 3.2的20Gbps(Gen 2x2)扩展到40Gbps(Gen3 x 2)。
USB4 Gen 3 x 2是全双工,双通道传输数据的,每个通道同时发送和接收数据,发送或接收数据的最大速度为20Gbps。下面正式讲解USB4数据的传输过程。
USB4结构传输数据
USB4的数据包含了USB 3.2、DisplayPort和PCIe。传输方式如下图所示:
这里“隧道”的概念和我们生活中常见的铁路隧道,海底隧道等的概念是不同的。隧道协议是一种将不同协议的数据包重新封装在一起传输的方式,数据包传递经过的路径叫做隧道。USB4规范中协议隧道分为USB 3.2隧道,DisplayPort隧道、PCIe隧道,三者可以统称为USB4隧道。 这里“路由器”的概念对应的是计算机网络这门课程中定义的概念,而不是我们常见家庭、企业等使用的分出wifi的路由器。路由器指的是用于选择两点之间传输数据的最佳路径的一种构成。路由器有两种类型:主机路由器和从机路由器。上图中,是路由器决定了两点间USB4数据包的路径。路由器将隧道协议通过USB4结构传输数据包。USB4传输过程总结如下:
1、通过隧道协议将USB 3.2、DisplayPort和PCIe数据封装成一个数据包;
2、主机路由器选择隧道协议发送路径,通过USB4结构来发送;
3、从机路由器选择隧道协议接收路径,通过USB4结构来接收;
4、解码隧道协议的数据包,分离出USB 3.2、DisplayPort和PCIe数据。
下面用车辆在车道上行驶来形象地说明USB4数据在USB4结构中的传输方式。如图:
前面关于”隧道”的说明提到,指的是多种协议封装在一起的数据包,统称为USB4隧道,由USB 3.2隧道,DisplayPort隧道和PCIe隧道组成。从图中看出USB 3.2隧道,DisplayPort隧道和PCIe隧道开始是同一条路线。然后,USB 3.2隧道和PCIe隧道代表的车辆需要先分开进入各自的车站,然后才行驶在目的地方向。而DisplayPort隧道则是直接分开了路线,没有进入车站。这是怎么回事呢?
一个USB4接口中,对于USB和PCIe协议,主机作为数据传输发起方,往往需要给多路接收应答方传输数据,所以需要确定到底是给哪一路传输,所以就需要USB集线器和PCIe交换机 来处理与协议相关的数据包,来确定需要传输的地址,同时也起到数据传输缓冲的作用。对于DisplayPort隧道,就只有一个接收方,所以不需要任何DP专用的中间逻辑,而是直接将DisplayPort隧道建立为端到端连接。
USB集线器
数据发起的一方称为下行端口(Downstream Facing Port),数据应答的一方称为上行端口(Upstream Facing Port)。在USB中,一个上行端口和多个下行端口之间传输数据的结构就叫做USB集线器。
PCIe交换机
在PCIe中,一个上行端口扩展出多个下行端口,并与这些端口传输数据的结构就叫做PCIe交换机。
USB4主机如果不传输上面3种数据中的USB 3.2数据,就是我们说的雷电3模式。
雷电3传输数据
雷电3的传输同样用车辆行驶路线来说明。雷电3由DisplayPort和PCIe两种数据包组成,和USB4相比少了USB 3.2数据。到达目的地前,PCIe分离需要先经过PCIe交换机,才能确定需要发送的地址。DisplayPort直接分离出来发送。这里没有USB 3.2数据的处理,但是雷电3主机是可以处理USB数据的,下面来说明。
同样的道理,雷电3中的DisplayPort数据包到达目的地之前,直接分离。PCIe数据包需要经过PCIe交换机才能确定需要发送的地址。然后,PCIe交换机可以连接USB主机控制器xHCI来管理USB 3.2的集线器,从而获得处理USB 3.2数据的能力。雷电3的基础上,现在新出了雷电4,下面看一下雷电4的数据传输情况。
雷电4的数据传输
雷电4相对于雷电3,带宽并没有增加,都是40Gbps。雷电4和雷电3的传输过程部分是一样的,都是DisplayPort数据包直接进入目的地,而PCIe数据包需要经过PCIe交换机才能确认发送地址。如果雷电4的设备接了雷电3的主机,就运行在雷电3模式,如果雷电4的设备接了USB4的主机,就运行在USB4模式。
如果雷电4的扩展坞连接了雷电3的主机,如何保持处理USB 3.2数据的能力呢?雷电4可以通过PCIe交换机来连接USB主机控制器xHCI来管理USB 3.2的集线器,从而传输USB 3.2的数据。
总之,USB4数据的传输过程就是主机先将USB 3.2数据、DisplayPort数据和PCIe数据一起打包成一个数据包,然后传输给设备。设备接收后,USB 3.2数据和PCIe数据分别需要经过USB 3.2集线器和PCIe交换机才能确定发送的地址,而DisplayPort数据是直接分离出来发送给接收方。以上就是USB4数据传输的大致过程。