一种PCI-e交换机及其配置分支模式的方法与流程

文档序号:29128050发布日期:2022-03-05 00:41阅读:157来源:国知局
一种PCI-e交换机及其配置分支模式的方法与流程
一种pci-e交换机及其配置分支模式的方法
技术领域
1.本发明涉及pci-e技术领域,特别涉及一种pci-e交换机及其配置分支模式的方法。


背景技术:

2.pci-express(peripheral component interconnect express,pci-express)是一种高速串行计算机扩展总线标准,简称“pci-e”,属于高速串行点对点双通道高带宽传输。pci-e所连接的设备分配独享通道带宽,不共享总线带宽,能够支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(qos)等功能。由于其高速的数据传输速率,pci-e已被广泛应用。
3.但是,随着用户对融合、统一、效率、空间、能耗要求的不断提升,近年来出现了不少高密度模块化服务器平台,其cpu上需要连接的pci-e设备较多,这就使得原有的pci-e通道数量难以满足需求。为了应对通道数量不足的问题,在pci-e标准体系中,设计了pci-e交换机(pci-e switch),其能够提供扇出(fanout)、分区(partition)、非透明桥(none transparent bridge)等功能。
4.目前,主流的pci-e switch多采用固定分支模式,其内部架构如图1及图2所示,包括上行口(upstream switch port,usp)、下行口(downstream switch port,dsp)、路由和仲裁模块(routing/arbitration/response)、复位逻辑(reset logic)、功耗管理模块(low power)、中断管理模块(interrupt ctrl)以及交换机缓存模块(packet buffers)。所述pci-e switch均为固定分支模式,如图1所示的pci-e switch中,其上行口为一个x16接口,下行口则包括四个x4接口,以及如图1所示的pci-e switch中,其上行口为一个x16接口,下行口则包括两个x8接口。由于pci-e接口无法向上兼容,例如,x2的dsp是没有办法兼容nvme ssd x4的pci-e接口,gpu x8的pci-e接口和其他超过x2的pci-e通道接口,这就使得这类拓展模式较为单一,对于通道、可连接设备的拓展有限。同时,为了达到最小的时延和功耗,所述路由和仲裁模块、交换机缓存模块等模块中采用的逻辑一般为固定逻辑,灵活性较差。


技术实现要素:

5.针对现有技术中的部分或全部问题,本发明一方面提供一种pci-e交换机,以同时适配多种分支模式,所述pci-e交换机包括上行口、下行口、路由和仲裁模块、复位逻辑、功耗管理模块、中断管理模块以及交换机缓存模块,其中,所述上行口可以适配以下根节点端口中的一种或多种:x16、x8、x4、x2、x1,以及所述下行口可以适配以下终端设备中的一种或多种:x16端口设备、x8端口设备、x4端口设备、x2端口设备、x1端口设备。
6.进一步地,所述上行口及下行口包括:
7.缓存模块,包括接收缓存以及发送缓存,用于数据流的格式规整和分发;
8.控制模块,其与所述缓存模块可通信地连接,且支持多路独立数据并行处理,其中,所述多路独立数据的链路宽度可以相同或不同,且每一路数据分别通过一个端口链路
宽度适配模块进行数据流的宽度转换和缓存;以及
9.分支选择模块,用于根据不同的分支模式,选取所述端口链路宽度适配模块。
10.进一步地,所述分支选择模块包括:
11.分支选择器,其与所述控制模块可通信地连接,用于pci-e物理接口的数据流分发;以及
12.电源管理模块,其与所述端口链路宽度适配模块电连接,用于根据不同的分支模式,控制所述端口链路宽度适配模块的开启或关闭。
13.进一步地,所述上行口及下行口还包括时钟复位模块、寄存器配置模块、物理编码子层pcs配置模块、物理层pma配置模块以及粘合逻辑。
14.进一步地,所述控制模块与所述分支选择模块之间通过符合phy interface for pci express规范的接口总线连接。
15.进一步地,所述上行口及下行口共享所述缓存模块、控制模块以及分支选择模块,并通过1bit进行配置分区。
16.基于上述pci-e交换机的架构,本发明另一方面提供一种pci-e交换机配置分支模式的方法,包括:
17.首先,通过上行口连接的根节点端口,确定所述pci-e交换机的最大带宽,以及通过下行口连接的终端设备,确定分支模式;以及
18.接下来,当下行口接收到由上行口发送的第一宽度的数据:
19.首先,通过下行口中的接收缓存模块进行数据流的宽度转换和缓存;
20.接下来,根据确定的分支模块,控制下行口中的各个端口链路宽度适配模块的开启或关闭,将数据转换为与所述终端设备适配的链路宽度;以及
21.最后,通过分支选择器将数据分发至物理层接口,并发送给终端设备;以及
22.当下行口通过物理接口接收到由终端发送的数据:
23.首先,根据接收的链路宽度,控制下行口中的各个端口链路宽度适配模块的开启或关闭,将数据转换为第一宽度;
24.接下来,通过下行口中的发送缓存模块进行数据流的宽度转换和缓存;以及
25.最后,将转换得到的第一宽度的数据发送至上行口。
26.进一步地,通过电源管理模块控制所述端口链路宽度适配模块的电源通断,进而控制所述端口链路宽度适配模块的开启或关闭。
27.本发明提供的一种pci-e交换机及其配置分支模式的方法,优化了pci-e交换机的上行口及下行口的内部架构,使得其均可以灵活配置链路宽度。具体而言是通过上行口、下行口内部的控制模块中设立多路端口链路宽度适配模块,并根据需要控制各路端口链路宽度适配模块的开启或关闭,进而使得所述控制模块可以支持多路不同链路宽度的数据并行处理。通过所述上行口及下行口架构,可以让pci-e交换机灵活确定分支模式,能够同时适配多种分支模式的模式下,最大限度的利用通道带宽。同时,所述pci-e交换机顶层包含系统功耗管理模块,可以根据不同的分支模式关闭闲置的控制模块时钟信号,需要唤醒的时候预先初始化,使得整个pci-e交换机的动态功耗与固定分支的扇出型pci-e交换机差别不大。
附图说明
28.为进一步阐明本发明的各实施例的以上和其它优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。在附图中,为了清楚明了,相同或相应的部件将用相同或类似的标记表示。
29.图1示出现有技术中x16-x4*4分支模式的pci-e交换机的内部架构示意图;
30.图2示出现有技术中x16-x8*2分支模式的pci-e交换机的内部架构示意图;
31.图3示出本发明一个实施例的pci-e交换机的内部架构示意图;以及
32.图4示出本发明一个实施例的pci-e交换机的上行口及下行口的内部架构示意图。
具体实施方式
33.以下的描述中,参考各实施例对本发明进行描述。然而,本领域的技术人员将认识到可在没有一个或多个特定细节的情况下或者与其它替换和/或附加方法、材料或组件一起实施各实施例。在其它情形中,未示出或未详细描述公知的结构、材料或操作以免模糊本发明的发明点。类似地,为了解释的目的,阐述了特定数量、材料和配置,以便提供对本发明的实施例的全面理解。然而,本发明并不限于这些特定细节。此外,应理解附图中示出的各实施例是说明性表示且不一定按正确比例绘制。
34.在本说明书中,对“一个实施例”或“该实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在本说明书各处中出现的短语“在一个实施例中”并不一定全部指代同一实施例。
35.在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。
36.在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。
37.在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景需要添加所需的部件或组件。
38.传统的固定分支模式下的pci-e交换机拓展模式单一,同时由于pci-e接口无法向上兼容,例如,x2的下行口dsp无法兼容nvme ssd x4的pci-e接口、gpu x8的pci-e接口以及其他超过x2的pci-e通道接口,这就使得对于pci-e接口的拓展存在限制,一方面难以满足某些pci-e交换机的应用场景,另一方面由于所述pci-e交换机内部的路由、仲裁以及缓存逻辑均为固定逻辑,这也使得其难以以较高的通道利用率来同时适配多种pci-e根节点和/或多种pci-e终端设备。针对这一问题,本发明提供一种新的pci-e交换机,其通过调整上行口usp以及下行口dsp的内部架构,使得pci-e交换机拥有灵活的分支模式,能够同时适配多种分支模式的模式下,最大限度的利用通道带宽。下面结合实施例附图,对本发明的方案做进一步描述。
39.图3示出本发明一个实施例的pci-e交换机的内部架构示意图。如图3所示,一种pci-e交换机,包括上行口(upstream switch port,usp)、至少一个下行口(downstream switch port,dsp)、路由和仲裁模块(routing/arbitration/response)、复位逻辑(reset logic)、功耗管理模块(low power)、中断管理模块(interrupt ctrl)以及交换机缓存模块(packet buffers)。
40.其中,所述功耗管理模块(low power)能够根据所需的分支模式、或交换机工作模式关闭闲置的控制模块时钟信号,使得所述交换机在实际工作时与传统的固定分支的扇出型pci-e交换机动态功耗差别不大。所述路由和仲裁模块(routing/arbitration/response)、复位逻辑(reset logic)、中断管理模块(interrupt ctrl)以及交换机缓存模块(packet buffers)的功能及架构与现有技术中的pci-e交换机相同,在此不再赘述。
41.如图3所示的pci-e交换机中,所述上行口通过物理层接口phy与根节点端口连接,以及所述下行口通过物理层接口phy连接至终端设备。同时,所述上行口可以适配以下根节点端口中的一种或多种:x16、x8、x4、x2、x1,通过其连接的根节点端口的链路宽度,可以确定所述pci-e交换机的最大带宽;以及所述下行口可以适配以下终端设备中的一种或多种:x16端口设备、x8端口设备、x4端口设备、x2端口设备、x1端口设备,所述下行口的链路宽度由终端设备的pci-e的接口宽度来决定。上行口及下行口之间的宽度的差值则由所述pci-e交换机内部的缓存来进行缓冲。
42.由于所述pci-e交换机的上行口及下行口均可支持多种模式的链路宽度,这就使得所述pci-e交换机能够灵活配置分支模式。例如,对于单pci-e根节点的应用场景中,不需要考虑上行口usp的分支模式,仅需调整下行口dsp的分支模式,以最大链路宽度x16为例,所述下行口可以适配的分支模式可以包括:单路x16、两路x8、一路x8及两路x4、以及4路x4模式。
43.为了使得上行口及下行口能够同时适配多种链路宽度,本发明对上行口及下行口的内部架构进行了调整。其中,所述上行口及下行口的内部共享同样的功能模块,并通过顶层的模式寄存器进行配置。具体而言,所述模式寄存器的默认值为0,此时为上行口模式,所述模式寄存器配置为1时则为下行口模式。所述模式寄存器配置完成之后需要启用系统复位来重新初始化。图4示出本发明一个实施例的pci-e交换机的上行口及下行口的内部架构示意图。如图4所示,所述上行口及下行口包括缓存模块401、控制模块402、分支选择模块403以及配置模块404。
44.所述缓存模块401包括接收缓存receive以及发送缓存transmit,其主要用于数据流的格式规整和分发。对于上行口而言,其通过所述接收缓存receive接收来自所述pci-e交换机逻辑内部交换网络的rx数据流rx data flow,并通过所述发送缓存transmit将tx数据流tx data flow发送至所述pci-e交换机逻辑内部交换网络,而所述下行口的tx、rx数据流处理方向与所述上行口相反,其通过发送缓存transmit接收来自所述pci-e交换机逻辑内部交换网络tx数据流tx data flow,并通过所述接收缓存receive将rx数据流rx data flow发送至所述pci-e交换机逻辑内部交换网络。
45.所述控制模块pcie_ctrl_core 402与所述缓存模块可通信地连接。所述控制模块包括至少一个端口链路宽度适配模块portwidth_adapt,所述端口链路宽度适配模块用于进行数据流的宽度转换和缓存。其中,各个端口链路宽度适配模块可适配的链路宽度可以相同或不同,这就使得所述控制模块能够支持多路、相同或不同链路宽度的独立数据并行处理,每一路数据分别通过一个端口链路宽度适配模块进行数据流的宽度转换和缓存。
46.所述分支选择模块403用于根据不同的分支模式,选取所述端口链路宽度适配模块,并完成物理层接口pipe接口的数据流分发。在本发明的一个实施例中,所述分支选择模块包括分支选择器bifurcation mux以及电源管理模块pmu。其中,所述分支选择器与所述
控制模块可通信地连接,用于pci-e物理接口的数据流分发;以及所述电源管理模块与所述端口链路宽度适配模块电连接,用于根据不同的分支模式,控制所述端口链路宽度适配模块的开启或关闭。
47.所述配置模块404包括时钟复位模块cru、寄存器配置模块ctrl_regmap、物理编码子层pcs配置模块pcs_regmap、物理层pma配置模块pma_regmap以及粘合逻辑glue logic。所述配置模块只要用于上行口及下行口内部与物理层接口之间通讯、逻辑的配置,以实现上行口与下行口与物理层接口之间的数据交互。在本发明的一个实施例中,所述控制模块与所述分支选择模块之间、以及所述分支选择模块与物理层接口之间均通过符合phy interface for pci express(pipe)规范的接口总线连接,其中,所述pipe规范不限于pipe 4.4.1,还可以为pipe4/3/2/1、pipe5等其他pipe接口的协议。
48.基于如前所述的pci-e交换机的架构,所述pci-e交换机对于分支模式的配置包括:
49.通过上行口连接的根节点端口,确定所述pci-e交换机的最大带宽,以及通过下行口连接的终端设备,确定分支模式,例如,若根节点端口的链路带宽为x16,所述下行口仅连接一个链路宽度为x16的终端设备,则分支模式为x16-x16,若根节点端口的链路带宽为x16,所述下行口连接两个链路宽度为x8的终端设备,则分支模式为x8-x8,以此类推。分支模式确定后,所述功耗管理模块关闭闲置的控制模块时钟信号,以降低动态功耗,被关闭的控制模块时钟信号在需要唤醒时需预先初始化。
50.所述分支模式的数据流处理包括:
51.当下行口接收到由上行口发送、接收自根节点端口的第一宽度的数据后:
52.首先,通过下行口中的接收缓存模块进行数据流的宽度转换和缓存;
53.接下来,根据确定的分支模块,控制下行口中的各个端口链路宽度适配模块的开启或关闭,将数据转换为与所述终端设备适配的数据宽度,在本发明的一个实施例中,通过电源管理模块控制所述端口链路宽度适配模块的电源通断,进而控制所述端口链路宽度适配模块的开启或关闭;以及
54.最后,通过分支选择器将数据分发至物理层接口,并发送给终端设备;以及
55.当下行口通过物理接口接收到由终端发送的数据:
56.首先,根据接收到的数据宽度,控制下行口中的各个端口链路宽度适配模块的开启或关闭,将数据转换为第一宽度,在本发明的一个实施例中,通过电源管理模块控制所述端口链路宽度适配模块的电源通断,进而控制所述端口链路宽度适配模块的开启或关闭;
57.接下来,通过下行口中的发送缓存模块进行数据流的宽度转换和缓存;以及
58.最后,将转换得到的第一数据宽度的数据发送至上行口。
59.下面,结合具备如图4所示的pci-e交换机的上行口及下行口架构,对本发明的方案做进一步描述。
60.如图4所示的上行口及下行口中,所述控制模块包括4个端口链路宽度适配模块portwidth_adapt_x16、portwidth_adapt_x8、portwidth_adapt_x4、portwidth_adapt_x4,其适配的最大链路宽度分别为x16,x8,x4,x4,基于pci-e端口的特性,每一路支持的最大链路宽度分别为x16,x8,x4,x4,同时低于最大链路宽度的数据均可支持,例如,portwidth_adapt_x16可以支持x16、x8、x4、x2、x1链路宽度,portwidth_adapt_x8可以支持x8、x4、x2、
x1链路宽度,依此类推。因此,对于单pci-e根节点的情况下,当上行口连接的根节点链路宽度为x16时,下行口可以是配的分支模式包括:
61.x16-x16,在此分支模式下,需要通过所述电源管理模块,开启端口链路宽度适配模块portwidth_adapt_x16,同时关闭其余的端口链路宽度适配模块portwidth_adapt_x8、portwidth_adapt_x4、portwidth_adapt_x4;
62.x16-x8*2,在此分支模式下,需要通过所述电源管理模块,开启端口链路宽度适配模块portwidth_adapt_x16、portwidth_adapt_x8,其中portwidth_adapt_x16用于适配x8链路宽度,同时关闭其余的两个portwidth_adapt_x4端口链路宽度适配模块;
63.x16-x8/x4/x4,在此分支模式下,需要通过所述电源管理模块,关闭端口链路宽度适配模块portwidth_adapt_x16,同时开启其余的端口链路宽度适配模块portwidth_adapt_x8、portwidth_adapt_x4、portwidth_adapt_x4;以及
64.x16-x4*4,在此分支模式下,需要通过所述电源管理模块,开启所有的端口链路宽度适配模块,同时,portwidth_adapt_x16、portwidth_adapt_x8均用于适配x4链路宽度。
65.在此,仅给出单根节点,且根节点链路宽度为x16时,4种不同的分支模式,在该情况下,最小的分支粒度为x4。但是,根据如前所述的架构,本领域技术人员可以轻易地得到,根节点链路宽度为x8、x4、x2、x1等情况下的分支模式及其对应的配置方法,在其他分支模式中,最小的分支粒度可以为x2、x1。
66.此外,还应当理解的是,本发明的其他实施例中,所述控制模块所包含的端口链路宽度适配模块可以为其他数量,例如2个、3个、5个或更多,各个端口链路宽度适配模块可是配的最大链路宽度及其组合也不限于如图4所示的实施例中,而是可以根据实际需求任意组合,其实现原理与图4所示的实施例相同。
67.此外,由于上行口与下行口共享同样的功能模块,本发明实施例中的pci-e交换机也可用于多个根节点的情形下,此时,上行口也需要进行分支模式配置,即通过所述控制模块进行数据流宽度转换和缓存,其数据流宽度转换和缓存的方式与下行口基本一致,同样是通过电源管理模块控制不同端口链路宽度适配模块的开启及关闭,其与下行口仅tx、rx数据流处理方向相反。
68.本发明提供的一种pci-e交换机及其配置分支模式的方法,通过在上行口、下行口内部的控制模块中设立多路端口链路宽度适配模块,并根据需要控制各路端口链路宽度适配模块的开启或关闭,进而使得所述控制模块可以支持多路不同链路宽度的数据并行处理。通过所述上行口及下行口架构,可以让pci-e交换机灵活确定分支模式,能够同时适配多种分支模式的模式下,最大限度的利用通道带宽。
69.尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。对于相关领域的技术人员显而易见的是,可以对其做出各种组合、变型和改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1