一种不同带宽的PCIE设备的兼容方法、装置及服务器
文献发布时间:2023-06-19 10:41:48
技术领域
本发明涉及通信技术领域,特别涉及一种不同带宽的PCIE设备的兼容方法、装置及服务器。
背景技术
随着服务器使用量的快速增长,对于服务器的配置也要求越来越灵活,目前可以通过Riser(PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线)扩展卡)扩展出不同带宽的PCIE接口来适配PCIE设备,由于PCIE是点对点传输协议,因此无法实现PCH模块上一组PCIE X8/X16同时可以兼容不同带宽的PCIE设备,比如,一组PCIE X8/X16无法兼容板载M.2设备、标准PCIE卡以及Riser。
发明内容
本发明提供一种不同带宽的PCIE设备的兼容方法、装置及服务器,用以解决现有技术中存在的PCH模块上的一组PCIE X8/X16无法兼容不同带宽的PCIE设备的问题。
第一方面,本发明实施例提供一种不同带宽的PCIE设备的兼容方法,应用于服务器,该方法包括:
根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
导通所述服务器的PCH(Platform Controller Hub,平台控制器中心)模块上的PCIE端口与所述目标PCIE接口之间的通路;
根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述外接的PCIE设备分配带宽。
在一种可能的实现方式中,若从所述至少两个PCIE接口中确定至少两个目标PCIE接口,则所述导通PCIE带宽端口与所述目标PCIE接口之间的通路,包括:
根据每个目标PCIE接口的带宽分配优先级,导通所述PCIE端口与优先级最高的目标PCIE接口之间的通路。
在一种可能的实现方式中,若所述目标PCIE接口为M.2设备对应的PCIE接口,则根据所述目标PCIE接口外接的设备的设备类型,为所述外接的PCIE设备分配带宽,包括:
根据所述PCIE端口支持的最大带宽和所述M.2设备的数量,为所述M.2设备分配带宽。
在一种可能的实现方式中,若所述目标PCIE接口为标准PCIE卡对应的PCIE接口,则根据所述目标PCIE接口外接的设备的设备类型,为外接的PCIE设备分配带宽,包括:
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
在一种可能的实现方式中,若所述目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,则根据所述目标PCIE接口外接的设备的设备类型,为外接的PCIE设备分配带宽,包括:
根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标PCIE扩展卡;
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
第二方面,本发明实施例提供一种不同带宽的PCIE设备的兼容装置,应用于服务器,该装置包括:
确定单元,用于根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
导通单元,用于导通所述服务器的PCH模块上的PCIE端口与所述目标PCIE接口之间的通路;
分配单元,用于根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述外接的PCIE设备分配带宽。
在一种可能的实现方式中,若从所述至少两个PCIE接口中确定至少两个目标PCIE接口,则所述导通单元具体用于:
根据每个目标PCIE接口的带宽分配优先级,导通所述PCIE端口与优先级最高的目标PCIE接口之间的通路。
在一种可能的实现方式中,若所述目标PCIE接口为M.2设备对应的PCIE接口,则所述分配单元具体用于:
根据所述PCIE端口支持的最大带宽和所述M.2设备的数量,为所述M.2设备分配带宽。
在一种可能的实现方式中,若所述目标PCIE接口为标准PCIE卡对应的PCIE接口,则所述分配单元具体用于:
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
在一种可能的实现方式中,若所述目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,则分配单元具体用于:
根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标PCIE扩展卡;
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
第三方面,本发明实施例提供一种服务器,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行如下步骤:
根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
导通所述服务器的PCH模块上的PCIE端口与所述目标PCIE接口之间的通路;
根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述外接的PCIE设备分配带宽。
在一种可能的实现方式中,若从所述至少两个PCIE接口中确定至少两个目标PCIE接口,则所述导通PCIE带宽端口与所述目标PCIE接口之间的通路,包括:
根据每个目标PCIE接口的带宽分配优先级,导通所述PCIE端口与优先级最高的目标PCIE接口之间的通路。
在一种可能的实现方式中,若所述目标PCIE接口为M.2设备对应的PCIE接口,则根据所述目标PCIE接口外接的设备的设备类型,为所述外接的PCIE设备分配带宽,包括:
根据所述PCIE端口支持的最大带宽和所述M.2设备的数量,为所述M.2设备分配带宽。
在一种可能的实现方式中,若所述目标PCIE接口为标准PCIE卡对应的PCIE接口,则根据所述目标PCIE接口外接的设备的设备类型,为外接的PCIE设备分配带宽,包括:
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
在一种可能的实现方式中,若所述目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,则根据所述目标PCIE接口外接的设备的设备类型,为外接的PCIE设备分配带宽,包括:
根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标PCIE扩展卡;
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
本发明的有益效果如下:
首先根据检测到的服务器中的至少两个PCIE接口对应的电平信号,从至少两个PCIE接口中确定目标PCIE接口,然后导通服务器的PCH模块上的PCIE端口与目标PCIE接口之间的通路,最后根据目标PCIE接口外接的PCIE设备的设备类型,为PCIE设备分配带宽。由于一个PCIE端口对应至少两个PCIE接口,从至少两个PCIE接口中确定了目标PCIE接口后,导通PCIE端口和目标PCIE接口之间的通路,从而可以使一个PCIE端口兼容多个不同带宽的PCIE设备,进而提高服务器的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的不同带宽的PCIE设备的兼容方法的流程示意图;
图2为本发明实施例提供的不同带宽的PCIE设备的兼容系统框图;
图3为本发明实施例提供的一种不同带宽的PCIE设备的兼容装置的结构示意图;
图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了PCH模块上的一组PCIE X8/X16端口无法兼容不同带宽的PCIE设备的问题,本发明公开了一种不同带宽的PCIE设备的兼容方法、装置及存储介质。为了更好的理解本申请实施例提供的方案,这里对本方案的原理进行简单的说明:
首先根据检测到的服务器中的至少两个PCIE接口对应的电平信号,从至少两个PCIE接口中确定目标PCIE接口,导通服务器的PCH模块上的PCIE端口与目标PCIE接口之间的通路,根据目标PCIE接口外接的PCIE设备的设备类型,为所述PCIE设备分配带宽。
通过上述方法,可以在一个PCIE端口上兼容不同带宽的PCIE设备,从而可以提高服务器的性能。
PCIE,即Peripheral Component Interconnect Express的缩写,是一种高速串行计算机扩展总线标准。只要是带PCIE的硬件都是执行PCI-Express标准的规范范围之一。像PCIE总线、PCIE插槽、PCIE接口、PCIE协议、PCIE通道等等都是PCIE标准里边的规范。
比如PCIE固态硬盘或者PCIE网卡就是遵循PCIE协议,需要在支持PCIE设备的接口或者接口上安装的设备。
Riser卡是由于服务器本身机构设计限制(一般为2U或4U),无法把各种Option卡(如网卡、HBA卡、显卡等)直接插在主板上,而引入的一种扩展卡。也就是服务器主板提供一个比较长的接口(非标准PCIE接口),然后Riser卡插在这个槽上,同时Riser卡上提供1到几个标准的PCIe接口,就可以将各种Option卡(如网卡、raide、显卡等)插在Riser卡上了。
PCH(平台控制器中心)芯片用来支持外设的一款芯片,PCH上的GPIO口,用户可以通过GPIO口和硬件进行数据交互,控制硬件工作(如蜂鸣器),读取硬件的工作状态信号(如中断信号)等。
下面结合参照附图对本申请实施例提供的不同带宽的PCIE设备的兼容方法进行进一步的说明。如图1所示,其为不同带宽的PCIE设备的兼容方法流程示意图。该流程中包括以下步骤:
S101、根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
S102、导通所述服务器的PCH模块上的PCIE端口与所述目标PCIE接口之间的通路;
S103、根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述PCIE设备分配带宽。
本发明实施例提供的一种不同带宽的PCIE设备的兼容方法,首先根据检测到的服务器中的至少两个PCIE接口对应的电平信号,从至少两个PCIE接口中确定目标PCIE接口,然后导通服务器的PCH模块上的PCIE端口与目标PCIE接口之间的通路,最后根据目标PCIE接口外接的PCIE设备的设备类型,为PCIE设备分配带宽。由于一个PCIE端口对应至少两个PCIE接口,从至少两个PCIE接口中确定了目标PCIE接口后,导通PCIE端口和目标PCIE接口之间的通路,从而可以使一个PCIE端口兼容多个不同带宽的PCIE设备,进而提高服务器的性能。
下面结合不同带宽的PCIE设备的兼容系统框图对本发明实施例的方法进行说明。
如图2所示,为本发明实施例提供的不同带宽的PCIE设备的兼容系统框图。
下面对图2中涉及到的硬件进行说明。
1、PCH:输出PCIE X8/X16端口和GPIO1,其中,GPIO1用于PCIE端口和PCIE接口之间的通路选择,当GPIO1的信号为低电平时,控制导通PCIE X8/X16端口和PCIE1 X8/X16端口之间的通路,由于PCIE1 X8/X16端口与图2中的与外接M.2设备的PCIE接口连接,因此,实际上导通的是PCIE X8/X16端口与外接M.2设备的PCIE接口之间的通路;同理,当GPIO1的信号为高电平时,控制导通PCIE X8/X16端口和PCIE2 X8/X16端口之间的通路,由于PCIE2 X8/X16端口与图2中的与外接标准PCIE卡或Riser的PCIE接口连接,因此,实际上导通的是PCIEX8/X16端口与外接标准PCIE卡或Riser的PCIE接口之间的通路。
图2中示例性的一个控制导通通路的端口,还可以根据实际需要设计多个导通通路的端口。
PCH的输入为GPIO0、GPIO02、GPIO3、GPIO4,其中,GPIO0为M.2设备的在位信号,GPIO02为标准PCIE卡的在位信号,GPIO3为resier的在位信号,GPIO4为区别不同的resier的信号,比如,高电平为resier1,低电平为resier2。
2、PCIE Switch(开关)选路芯片:该芯片根据输入的电平信号导通PCIE X8/X16端口和PCIE1 X8/X16端口之间的通路或导通PCIE X8/X16端口和PCIE2 X8/X16端口之间的通路。
3、PCIE接口1:用于插M.2设备的接口,在实施中可以设置多个PCIE接口1,并与PCH上的多个GPIO连接,从而可以插多个M.2设备,PCH能检测到多个M.2设备在位,当有M.2设备插入时,M.2在位信号由高电平信号变为低电平信号。
当然,这里在有M.2设备插入时,M.2在位信号也可以由低电平信号变为高电平信号,可以根据实际需要设置。
4、PCIE接口2:该接口可支持输出最大带宽为X16,同时兼容X8。该接口可以输出三个信号,三个输出端与PCH的GPIO2、GPIO3、GPIO4连接。
5、插标准PCIE卡的PCIE接口,当标准PCIE卡插入时,PCIE在位信号电平会由高变为低。
当然,也可以为当标准PCIE卡插入时,PCIE在位信号电平会由低变为高。
6、插Riser卡的PCIE接口,用于将标准的PCIE X16接口扩展出更多的PCIE接口。当Riser插入时,Riser在位信号Riser电平会由高变为低。同时在Risers上会有Riser BoardID输出给PCH,用于区别不同的Riser。
7、标准PCIE卡,可直接插入Riser中使用。
下面结合图2对本申请实施例提供的不同带宽的PCIE设备的兼容方法进行说明。
确定目标PCIE接口,PCH通过检测到的GPIO0、GPIO2、GPIO3的电平信号,确定目标PCIE接口,如果检测到的GPIO0电平信号为低电平、GPIO2和GPIO3的电平信号为高电平信号,则确定M.2设备在位,GPIO1输出低电平,导通PCH上的PCIE端口与PCIE接口1之间的通路。
在具体实施中,可能会确定至少两个目标PCIE接口,比如,GPIO0和GPIO2都为低电平信号,则确定PCIE接口1和PCIE接口2都为目标PCIE接口,但是只能导通PCH上的PCIE端口与其中一个目标PCIE接口之间的通路。
本发明实施例可以根据预先配置的PCIE接口的带宽分配的优先级,导通PCIE端口与优先级最高的目标PCIE接口之间的通路。
比如,确定了两个目标PCIE接口,PCIE接口1和PCIE接口2,预先配置的PCIE接口1的带宽分配的优先级大于PCIE接口2,则GPIO输出低电平,导通PCIE端口和PCIE接口1之间的通路。
导通了PCIE端口和目标PCIE接口之间的通路后,根据目标PCIE接口外接的PCIE设备的设备类型,为外接的PCIE设备分配带宽,本发明实施例提供了三种为外接PCIE设备分配的带宽的方式。
方式一、
如果目标PCIE接口为M.2设备对应的PCIE接口,则根据PCIE端口支持的最大带宽和M.2设备的数量为M.2设备分配带宽。
比如,PCH确定PCIE接口1外接设备为M.2设备,且接收到一个用于表征M.2设备在位的电平信号,M.2设备的带宽可达4GB/s,PCIE端口能够提供的最大带宽为8GB/s,由于只有一个M.2设备,因此PCIE端口为M.2设备分配的带宽为4GB/s。
方式二、
如果目标PCIE接口为标准PCIE卡对应的PCIE接口,则将PCIE端口支持的最大带宽分配给外接PCIE设备,即标准PCIE卡。
方式三、
如果目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,由于PCIE扩展卡可以外接标准PCIE卡,所以先确定目标PCIE扩展卡,具体的,根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标扩展卡,目标扩展卡确定后,将PCIE端口支持的最大带宽分配给外接的PCIE设备。
比如,参照图2,GPIO4接收到高电平,则确定目标PCIE扩展卡为PCIE扩展卡1,则将PCIE端口支持的最大带宽分配给在PCIE扩展卡1上连接的PCIE设备。
确定的目标PCIE扩展卡可以为一个,也可以为多个,比如,有GPIO5和GPIO6都用于检测目标PCIE扩展卡,当GPIO5为高电平时,确定目标PCIE扩展卡为PCIE扩展卡1,当GPIO5为低电平时,确定目标PCIE扩展卡为PCIE扩展卡2,当GPIO6为高电平时,确定目标PCIE扩展卡为PCIE扩展卡3,当GPIO6为低电平时,确定目标PCIE扩展卡为PCIE扩展卡4,PCH如果检测到GPIO5为高电平,GPIO6为低电平,则确定目标PCIE扩展卡为PCIE扩展卡1和PCIE扩展卡4。
在具体实施中,确定至少两个目标PCIE扩展卡后,将PCIE端口对应的最大带宽分配给外接的PCIE设备,可以平均分配,比如,PCIE端口支持的最大带宽为8GB/s,则为PCIE扩展卡1外接的PCIE设备分配的带宽为4GB/s,为PCIE扩展卡2外接的PCIE设备分配的带宽为4GB/s。
基于相同的发明构思,本申请实施例还提供一种不同带宽的PCIE设备的兼容装置。由于该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,为本发明实施例提供的一种不同带宽的PCIE设备的兼容装置,应用于服务器,该装置包括:
确定单元301,用于根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
导通单元302,用于导通所述服务器的PCH模块上的PCIE端口与所述目标PCIE接口之间的通路;
分配单元303,用于根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述外接的PCIE设备分配带宽。
可选的,若从所述至少两个PCIE接口中确定至少两个目标PCIE接口,则所述导通单元302具体用于:
根据每个目标PCIE接口的带宽分配优先级,导通所述PCIE端口与优先级最高的目标PCIE接口之间的通路。
可选的,若所述目标PCIE接口为M.2设备对应的PCIE接口,则所述分配单元303具体用于:
根据所述PCIE端口支持的最大带宽和所述M.2设备的数量,为所述M.2设备分配带宽。
可选的,若所述目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,则所述分配单元303具体用于:
根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标PCIE扩展卡;
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
基于相同的发明构思,本申请实施例还提供一种服务器。由于该服务器解决问题的原理与该方法相似,因此该服务器的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例提供的一种服务器的硬件结构框图,如图4所示,该服务器400包括:包括一个或多个处理器402,以及用于存储所述处理器可执行指令的存储器401。
存储器401,用于存储处理器402执行的计算机程序。存储器401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器401也可以是非易失性存储器(non-volatile memory),例如只读存储器,flash memory,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器401可以是上述存储器的组合。
处理器402,可以包括一个或多个中央处理单元(central processing unit,CPU),图形处理单元(Graphics Processing Unit,GPU)或者为数字处理单元等等。
本发明实施例中不限定上述存储器401和处理器402之间的具体连接介质。本发明实施例在图4中以存储器401和处理器402之间通过总线403连接,总线403在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,所述处理器402被配置为执行所述指令,以实现如下步骤:
根据检测到的所述服务器中的至少两个PCIE接口对应的电平信号,从所述至少两个PCIE接口中确定目标PCIE接口;
导通所述服务器的PCH模块上的PCIE端口与所述目标PCIE接口之间的通路;
根据所述目标PCIE接口外接的PCIE设备的设备类型,为所述外接的PCIE设备分配带宽。
可选的,若从所述至少两个PCIE接口中确定至少两个目标PCIE接口,则所述处理器402被配置为执行:
根据每个目标PCIE接口的带宽分配优先级,导通所述PCIE端口与优先级最高的目标PCIE接口之间的通路。
可选的,若所述目标PCIE接口为M.2设备对应的PCIE接口,则所述处理器402被配置为执行:
根据所述PCIE端口支持的最大带宽和所述M.2设备的数量,为所述M.2设备分配带宽。
可选的,若所述目标PCIE接口为标准PCIE卡对应的PCIE接口,则所述处理器402被配置为执行:
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
可选的,若所述目标PCIE接口为PCIE扩展卡对应的PCIE接口,且包括多个PCIE扩展卡,则所述处理器402被配置为执行:
根据检测到的用于表征目标PCIE扩展卡的电平信号,确定目标PCIE扩展卡;
将所述PCIE端口支持的最大带宽分配给所述外接的PCIE设备。
本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算终端上运行时,所述程序代码用于使所述计算终端执行上述本发明实施例不同带宽的PCIE设备的兼容方法的步骤。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 一种不同带宽的PCIE设备的兼容方法、装置及服务器
- 一种同一PCIE槽位兼容不同PCIE带宽的PCIE设备、装置及方法