USB4规范解读(七):USB4系统结构的架构之多级连接
USB4系统结构由USB4主机,USB4集线器和USB4功能设备这3部分组成。USB4主机可以是支持USB4的笔记本和平板等,至少需要一个USB Type-C接口,支持USB 3.2数据传输,PCIe数据传输和DisplayPort视频信号传输。USB4集线器是一个USB4接口扩展出多个USB4接口的一种设备,也可以是USB4扩展坞。USB4功能设备,即外部设备,可以是显示器、固态硬盘、移动硬盘等。
上面列举的是一个USB4集线器一端连接USB4主机,一端连接若干功能设备。这是USB4最基本的应用。
其实USB4集线器还可以连接另外的USB4集线器,然后另外的USB4集线器再接一个USB4集线器,如此反复,这样就可以扩展出更多的功能设备。如下图所示,这个就是USB4多级连接,每多一个USB4集线器,就多了一级连接。
USB4系统结构的多级连接方式是怎么回事?本文就是来详细介绍。
01多级连接
在介绍之前,需要说明“生成树”和“拓扑”这两个名词的概念。
1 生成树
生成树是对实际物体连接的一种抽象描述,可以将实际物体等效成一个个点,连接方式用线段来代替。生成树就是n个点和n-1条线段构成的连通的图形。所有点连接在一起,不能连成环。
下图中左边6个点连接,再多一条线段就成了环,少一条线段就无法保证每个点都连通。这样的连接方式变化位置,就可以得到树状结构,这种连接方式就叫做生成树。可以类比一颗真实的树,从树根到树干,接着是树枝,最后是树叶,任意两片树叶之间只有一条路。
2 拓扑
主机和各种设备实现互联时的抽象连接方式叫做拓扑结构(英文为Topology),互联即互相联合,强调彼此之间形成一个整体。拓扑研究的是主机和设备之间的连接关系,并将这些关系通过图形表示出来。描述拓扑结构实际的连接方式叫做物理拓扑。
2.1 物理拓扑
下面就来介绍USB4系统结构的物理拓扑,即描述USB4主机、USB4集线器和USB4功能设备的实际连接方式。他们之间连接的端口分为DFP和UFP两种。
DFP,英文全称为Downstream Facing Port,表示下行端口,用在主机接口或者集线器上连接外部设备的接口,是数据的发送方。
UFP,英文全称为Upstream Facing Port,表示上行端口,用在外部设备或者集线器上连接主机的接口,是数据的回应方。
物理拓扑描述了各种设备连接在一起的布局,通常类似于一棵树,在树的根部有一个USB4主机,通过下行端口(DFP),和USB4集线器的上行端口(UFP)相连,可以连接一组或多组USB4集线器。USB4集线器的下行端口(DFP)和USB4功能设备的上行端口(UFP)相连,扩展出多个功能设备,也可以继续连接一个USB4集线器,再连接一个USB4集线器或者USB4功能设备,如此反复连接。
如果有多个USB设备连接到USB4主机,则会发生循环,形成一个环路。如果连接管理器在物理拓扑中检测到环路,则它将使用生成树形式的子集,并删除所有循环。如果物理拓扑中没有循环,则生成树与物理拓扑相同。
下图显示了一个USB4结构没有环路的物理拓扑和生成树示例,可以看到两者的连接是相同的。
下图显示了一个USB4结构有环路的物理拓扑和生成树示例,可以看到两者的连接是有区别的,生成树删除了构成循环的连接路径。
主机路由器位于生成树的顶部。生成树最多可以具有六个级别(深度0到5),这意味着设备路由器沿生成树与主机路由器之间的距离最多为5级。主机路由器位于生成树的顶部(深度= 0)。设备路由器的连接深度为1到5(包括5)。那么多级连接中如何确定数据传输的路径呢?这就要涉及拓扑ID。
2.2 拓扑ID
连接管理器为其域中的每个路由器分配一个唯一的拓扑地址,称为拓扑ID。 拓扑ID代表路由器在域的生成树中的位置。路由器寻找传输路径依靠拓扑ID。
什么叫域? 一个连接管理器管理的互相连接的路由器的集合叫做域。
拓扑ID是由七个适配器号组成的序列,代表主机路由器与主机路由器之间的生成树的每个级别的下行端口中的适配器。
主机路由器的拓扑ID始终为0,0,0,0,0,0,0这7个数字。深度为X(X为1到5)的设备路由器的拓扑ID表示为0,…,0,Px-1,Px-2,…,P0,其中Pn是每一级适配器和上一级适配器通道连接的编号。下图显示了生成树的示例,以及对每个路由器的拓扑ID值的分配。
比如路由器B的拓扑ID=0,0,0,0,0,0,7,表示路由器B连接上一级主机路由器的编号为7号的通道。路由器D的拓扑ID=0,0,0,0,0,3,7,表示路由器D连接上一级路由器B的编号为3号的通道,再连接上一级主机路由器的编号为7的通道。
多级连接除了包括USB4主机,USB4集线器和USB4功能设备之间的连接方式,还包括USB主机到主机的连接。
02 USB4主机到主机连接
两个连接的域中的连接管理器使用主机接口隧道数据包(USB 3.2数据、DisplayPort数据和PCIe数据的集合)相互通信。 主机到主机隧道的最常见用途是允许两个连接管理器通过各自的主机接口交换信息。
例如,两个USB4主机可以使用主机到主机隧道通过USB4交换数据。USB4主机路由器和其他任意数量的互相连接的路由器就组成一个域。描述域的互相联合的连接方式叫做域拓扑。主机之间数据传输同样需要路由器依靠拓扑ID来确定传输路径。
域1(Domain 1)的路由器A的数据包发送到域2(Domain 2)中的主机路由器,相对于域1,域2的路由数据包的拓扑ID为[0,0,0,0,0,3,5]。即连接了域1的路由器A的3号通道和主机路由器的5号通道。
域2中的主机路由器将数据包发送给域1,相对于域2,域1的路由器A的拓扑ID为[0,0,0,0,0,0,5],即连接了域2的5号通道。
总结:
- USB4主机,USB4集线器和USB4功能设备之间的多级连接做多只能有六级连接。
- 多级连接,包括USB4主机和主机之间的连接,都需要通过拓扑ID来确定路由器的传输路径。