USB4规范解读(九):USB4系统结构的架构之协议隧道
协议隧
传输隧道技术处理的数据包的通道叫做隧道。隧道技术指的是数据包封装技术,它将原始数据包转换成本机支持的数据包形式来进行传输。使用隧道是为了兼容不同协议的数据的传输。
本文要讲的协议隧道指的是USB3、DisplayPort和PCIe这3种协议传输的隧道。分别称为USB3隧道、DisplayPort隧道和PCIe隧道。另外还有主机到主机的隧道,可以采用PCIe接口和其他接口。USB3指的是USB3.0及以上版本。USB4系统包括USB4主机、USB4集线器和USB4功能设备,它们对于这4种隧道并不一定都支持。
对于USB4主机
USB4主机支持USB3隧道,DisplayPort隧道和主机到主机的隧道。 USB4主机可以选择支持或者不支持PCIe隧道。
对于USB4集线器
USB4集线器支持USB3隧道,DisplayPort隧道,PCIe隧道和主机到主机隧道。 USB4集线器支持DisplayPort隧道传输的方式有多种:
- USB4集线器充当DisplayPort隧道的直通(即USB4集线器直接在其两个USB4端口之间传输隧道数据流)。
- USB4集线器包含一个DP OUT适配器,该适配器从USB4端口接收隧道的DisplayPort数据流,并将其发送到DisplayPort接收器。
- USB4集线器可选地包含一个DP IN适配器,该适配器将DisplayPort数据流从DisplayPort源发送到USB4端口,该USB4端口传输隧道的DisplayPort数据流。
USB4集线器充当主机到主机隧道的直通。USB4集线器不包含主机接口适配器。
对于USB4功能设备
USB4功能设备可选地支持USB3隧道,DisplayPort隧道和/或PCIe隧道。 USB4设备路由器不支持主机到主机隧道。
下面分别介绍4种协议隧道,以及涉及的功能堆栈。关于功能堆栈,参考文章《USB4规范解读(五):USB4系统结构的架构之功能堆栈》。
USB 3隧道
USB4主机包含一个内部增强型超速主机,用于发送和读取USB3数据。
USB4集线器包含一个内部增强型超速集线器。内部增强型超速集线器公开了一个或多个下行USB3端口,可以将其连接到USB终端设备或下行USB3协议适配器。内部增强型超速集线器的上行端口与上行USB3协议适配器连接,该适配器将数据包转发到USB4集线器的上级接口。
USB4功能设备包含一个内部增强型功能设备,用于实现USB3功能。
关于USB3数据传输的基本结构,参考文章《USB4规范解读(三):深入了解USB4的系统结构和工作原理》。关于USB3传输的路径,参考文章《USB4规范解读(二):详解USB4的传输路径》。
下图展示了USB3从USB4主机到USB4集线器,最后到USB4功能设备的传输涉及的功能堆栈。其中白色字体协议层、链路层是USB3定义的协议栈,而黑色字体的协议适配器层、传输层、逻辑层和电气层是USB4定义的协议栈。
Display隧道
USB4 Display隧道协议基于DisplayPort 1.4a规范。DisplayPor协议适配器有两种类型:DP IN协议适配器和DP OUT协议适配器。 DP IN协议适配器通过DP链路与DisplayPort发送源连接。DP OUT协议适配器通过DP链路与DisplayPort接收器连接。 一个路由器可以包含一个或多个DP IN协议适配器,一个或多个DP OUT协议适配器或DP IN和DP OUT协议适配器的这3种组合。USB4系统结构上的DisplayPort隧道开始于DP IN协议适配器并结束于DP OUT协议适配器。
关于DisplayPort传输的基本结构,参考文章《USB4规范解读(三):深入了解USB4的系统结构和工作原理》。关于DisplayPort传输的路径,参考文章《USB4规范解读(二):详解USB4的传输路径》。
DP协议适配器支持三个路径:
- AUX入口路径,用于接收AUX通道数据包。
- 用于发送AUX通道数据包的AUX出口路径。
- 用于发送(对于DP IN协议适配器)或接收(对于DP OUT协议适配器)Main-Link数据包的MAIN-Link路径。
下图显示了通过USB4系统结构传输DisplayPort数据流的连接形式。HPD用于检测是否有显示设备插入,AUX为辅助通道,用于读取扩展显示器识别数据(EDID)、分辨率等信息,Main-link用于传输视频数据。
下图显示了DP发送源和DP接收器之间的路径的协议栈。DisplayPort链路层,物理层逻辑子块和物理层电气子块在DisplayPort 1.4a规范中定义。而黑色字体的协议适配器层、传输层、逻辑层和电气层是USB4定义的协议栈。
PCIe隧道
隧道化PCIe数据流的USB4集线器包含一个内部PCIe交换机,用于将PCIe数据流转发到其下行端口。内部交换机通过PCIe协议适配器与路由器连接。 PCIe交换机公开了一个或多个下级PCIe端口,这些端口可以连接到PCIe终端,PCIe交换机或下一级PCIe协议适配器。 内部交换机的上行端口与上行PCIe协议适配器连接,该适配器将数据包转发到上一级对向端口。USB4设备可以通过合并内部PCIe终端或内部PCIe交换机来通过隧道传输PCIe数据流。
关于PCIe传输的基本结构,参考文章《USB4规范解读(三):深入了解USB4的系统结构和工作原理》。关于PCIe传输的路径,参考文章《USB4规范解读(二):详解USB4的传输路径》。
下图显示了与PCIe协议适配器接口时的PCIe协议栈。 内部PCIe交换机或内部PCIe终端中的事务层,数据链路层和物理层逻辑子块实现了PCIe规范的子集。黑色字体的协议适配器层、传输层、逻辑层和电气层是USB4定义的协议栈。
主机接口适配器
连接管理器通过主机中的主机接口适配器与域连接。域就是同一个连接管理器控制的路由器集合。连接管理器通过主机接口适配器向其域中的路由器发送控制包并从其接收控制包。 USB4主机还可以使用USB4主机到主机通信,通过主机接口适配器与另一个USB4主机通信。
主机到主机隧道可以选择两种数据传输模式:
原始模式–发送数据时,USB4主机将隧道数据包的有效载荷发布到主机内存缓冲区。主机接口适配器层获取有效负载,将其封装在隧道数据包中,并将其转发到内部的传输层主机路由器。接收数据时,主机接口适配器层将接收到的隧道数据包的有效载荷发布到主机内存缓冲区中。
帧模式–发送数据时,USB4主机将最多4096字节的帧发布到主机内存缓冲区中。主机接口适配器层获取帧,对其进行分段,然后将每个分段封装为单独的隧道数据包。接收数据时主机接口适配器层将从USB4架构接收的隧道数据包组装到原始帧中,并将该帧发送到主机内存缓冲区。
主机接口适配器层接口是基于PCIe的,该接口使用PCI设备头,内存条和PCI中断。不基于PCIe的主机路由器可以实现提供等效功能的不同接口。
下图展示了主机间的协议栈。 主机软件属于主机特有的。黑色字体的协议适配器层、传输层、逻辑层和电气层是USB4定义的协议栈。
总结
总之,USB3隧道、DisplayPort隧道、PCIe隧道和主机到主机的隧道都是将原本协议数据包转化成USB4通用形式的数据包在隧道中传输,协议适配器层、传输层、逻辑层和电气层是它们共用的功能堆栈。而通用的数据包中包含了路径信息,能够确保不同的协议传输到对应的接收方,从而实现多协议的带宽共享。