CN116827797A - PCIe带宽分配方法及服务器 - Google Patents
PCIe带宽分配方法及服务器 Download PDFInfo
- Publication number
- CN116827797A CN116827797A CN202310424153.8A CN202310424153A CN116827797A CN 116827797 A CN116827797 A CN 116827797A CN 202310424153 A CN202310424153 A CN 202310424153A CN 116827797 A CN116827797 A CN 116827797A
- Authority
- CN
- China
- Prior art keywords
- pcie
- card
- bandwidth allocation
- identification code
- bandwidth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000002093 peripheral effect Effects 0.000 claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims abstract description 8
- 238000012546 transfer Methods 0.000 claims description 15
- 230000006978 adaptation Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了服务器PCIe带宽分配方法及服务器,涉及数据传输领域,提高了PCIe卡向各PCIe槽位分配带宽的自适应适配能力。该方法包括:获取高速外设互联PCIe卡的带宽分配信息,基于带宽分配信息,确定PCIe卡的类型;在PCIe卡的类型包括多主机PCIe卡的情况下,基于带宽分配信息,确定第一目标单板识别码;其中,第一目标单板识别码用于指示PCIe卡需要分配的带宽资源;将第一目标单板识别码记录在基本输入输出系统BIOS的配置文件中,以使得BIOS基于BIOS的配置文件对PCIe卡进行带宽分配。
Description
技术领域
本申请涉及服务器领域,尤其涉及服务器的PCIe带宽分配方法及服务器。
背景技术
随着并行计算的发展,出现了多主机(multi-host)形态的PCIe卡,multi-hostPCIe卡是在一个电路板上集成有多个PCIe模块的PCIe卡。multi-host PCIe卡可以插接在PCIe转接卡上,PCIe转接卡插接在主板上。
当前,PCIe转接卡上焊接有各个PCIe插槽,PCIe转接卡上具有固定的单板身份标识(Board ID),用于指示每个PCIe插槽需要分配的带宽,也就是说,在PCIe转接卡上焊接的是x8的插槽就分配x8带宽,如果焊接的是x16的插槽就分配x16带宽。当PCIe插槽上连接的是需要分配的总带宽为PCIe插槽分配的带宽的multi-host PCIe卡时,按照Board ID进行带宽分配无法分别对multi-host PCIe卡上的每个PCIe模块进行带宽分配,比如,主板可以按照Board ID向x16的PCIe插槽分配x16的带宽,主板无法向连接在该PCIe插槽上的multi-host PCIe卡分配x8+x8的带宽。
上述相关技术中,由于同一个PCIe转接卡上的Board ID是固定的,导致主板为PCIe转接卡上的各个PCIe插槽分配的带宽是固定的,所以无法在不更换PCIe转接卡的情况下向PCIe插槽上连接的multi-host PCIe卡分配带宽,从而导致向PCIe卡分配带宽的自适应适配能力较差。
发明内容
本申请实施例提供了一种PCIe带宽分配方法及服务器,使得在不更换PCIe转接卡的情况下在PCIe槽位上除了可以为单主机PCIe卡分配需要的带宽之外,还可以为不同带宽分配需求的多主机PCIe卡分配带宽,提高了PCIe卡向各PCIe槽位分配带宽的自适应适配能力。
第一方面,本申请提供了一种PCIe带宽分配方法,该方法由基板管理控制器BMC执行,该方法包括:获取高速外设互联PCIe卡的带宽分配信息,基于带宽分配信息,确定PCIe卡的类型;在PCIe卡的类型包括多主机PCIe卡的情况下,基于带宽分配信息,确定第一目标单板识别码;其中,第一目标单板识别码用于指示PCIe卡需要分配的带宽资源;将第一目标单板识别码记录在基本输入输出系统BIOS的配置文件中,以使得基本输入输出系统BIOS基于BIOS的配置文件对PCIe卡进行带宽分配。
可以理解的是,通过服务器中的BMC可以确定PCIe卡对应的带宽分配信息,该带宽分配信息可以指示PCIe卡中包含的PCIe模块各自需要分配的带宽资源,BMC获取到PCIe卡中包含的PCIe模块各自需要分配的带宽资源后,可以确定第一目标单板识别码,该第一目标单板识别码可以写入BIOS配置文件中,使得BIOS按照第一目标单板识别码对该PCIe卡中包含的PCIe模块分配带宽资源,实现了根据连接的PCIe卡具体需要分配的带宽资源的情况调整向PCIe卡分配带宽的过程,使得在不更换PCIe转接卡的情况下可以对PCIe插槽上连接的PCIe卡分配适配的带宽,从而提高了向PCIe卡分配带宽的自适应适配能力。
在一种可能的实现方式中,PCIe卡上还设置有现场可更换单元FRU,获取PCIe卡的带宽分配信息,包括:从FRU中获取PCIe卡对应的带宽分配信息,PCIe卡对应的带宽分配信息包括:PCIe卡中包含PCIe模块的个数以及每个PCIe模块各自需要分配的带宽资源。
可以理解的是,通过从PCIe卡上设置的FRU中获取PCIe卡对应的带宽分配信息,可以确定PCIe卡中包含的PCIe模块的个数以及每个PCIe模块需要分配的带宽资源,从而实现向PCIe卡自适应分配带宽。
在一种可能的实现方式中,基于带宽分配信息,确定PCIe卡的类型,包括:基于带宽分配信息中的PCIe模块的个数,确定PCIe卡的类型;在带宽分配信息中的PCIe模块的个数大于等于2的情况下,确定PCIe卡的类型为多主机PCIe卡;否则,则确定PCIe卡的类型为单主机PCIe卡。
可以理解的是,按照带宽分配信息中包含的PCIe模块的个数可以确定PCIe卡的类型是多主机PCIe卡还是单主机PCIe卡,以便后续按照PCIe卡的类型确定向PCIe卡分配带宽资源的方法,从而提高了向PCIe卡分配带宽的自适应能力。
在一种可能的实现方式中,PCIe卡设置在高速外设互联PCIe转接卡上,PCIe转接卡具有原始单板识别码,原始单板识别码用于指示转接卡上的PCIe槽位连接单主机PCIe卡的情况下,PCIe槽位对应的单主机PCIe卡所需要分配的带宽资源;方法还包括:在PCIe卡的类型为单主机PCIe卡的情况下,从PCIe转接卡获取原始单板识别码,并将原始单板识别码记录在基本输入输出系统BIOS配置文件中,以使得BIOS基于BIOS配置文件,对单主机PCIe卡进行带宽分配。
可以理解的是,在确定PCIe卡的类型为单主机PCIe卡的情况下,可以直接将PCIe转接卡上具有原始单板识别码记录在BIOS配置文件中,以使得后续BIOS可以基于BIOS配置文件,对单主机PCIe卡进行带宽分配。
在一种可能的实现方式中,基于带宽分配信息,确定第一目标单板识别码,包括:基于带宽分配信息,从带宽分配规则表中查询带宽分配信息所对应的第一目标单板识别码。
可以理解的是,通过查询带宽分配规则表,可以按照预先存储在带宽分配规则表中的对应关系确定与带宽分配信息对应的第一目标单板识别码,从而确定按照带宽分配需求自适应分配后对应的第一目标单板识别码,其中所述带宽分配规则表中存储有所述第一目标单板识别码与所述带宽分配信息的对应关系。
在一种可能的实现方式中,PCIe卡为至少2个,且每个PCIe卡通过高速外设互联PCIe转接卡上的PCIe的槽位设置在PCIe转接卡上;基于带宽分配信息,确定第一目标单板识别码,包括:基于带宽分配信息,确定每个PCIe卡对应的目标PCIe槽位的第二目标识别码,基于每个第二目标识别码的组合,确定第一目标单板识别码;其中第二目标识别码用于指示目标PCIe槽位插接的PCIe卡所需要分配的带宽资源。
可以理解的是,按照各个PCIe卡各自的带宽分配信息,分别确定各自对应的第二目标识别码,可以按照各个第二目标识别码组合生成第一目标单板识别码,实现了按照PCIe卡各自的带宽分配信息自适应分配带宽资源的目的。
在一种可能的实现方式中,基于带宽分配信息,确定每个PCIe卡对应的目标PCIe槽位的第二目标识别码,包括:基于带宽分配信息,从带宽分配规则表中查询每个PCIe卡对应的目标PCIe槽位的第二目标识别码,其中带宽分配规则表存储有第二目标识别码与带宽分配信息的对应关系。
可以理解的是,带宽分配规则表中还可以预先存储第二目标识别码与带宽分配信息的对应关系,通过查询带宽分配规则表,可以按照预先存储在带宽分配规则表中的对应关系确定与带宽分配信息对应的第二目标识别码,从而确定各个目标PCIe槽位的第二目标识别码。
在一种可能的实现方式中,在PCIe卡的类型包括多主机PCIe卡的情况下,基于带宽分配信息,确定第一目标单板识别码,包括:在PCIe卡的类型包括多主机PCIe卡,且也包括单主机PCIe卡的情况下,基于多主机PCIe卡的带宽分配信息,确定多主机PCIe卡对应的第二目标识别码;从原始单板识别码中获取单主机PCIe卡对应的部分原始单板识别码;基于部分原始单板识别码以及第二目标识别码,确定第一目标单板识别码。
可以理解的是,在确定PCIe卡的类型包括多主机PCIe卡,且也包括单主机PCIe卡的情况下,可以按照原始单板识别码中单主机PCIe卡对应的部分与多主机PCIe卡对应的第二目标识别码,确定第一目标单板识别码,扩展了一种确定第一目标单板识别码的方式,以便后续按照PCIe卡各自的带宽分配信息自适应分配带宽资源。
在一种可能的实现方式中,确定高速外设互连接口PCIe转接卡连接的多主机PCIe卡对应的带宽分配信息之前,还包括:获取PCIe转接卡连接的各个PCIe卡对应的带宽分配信息,PCIe卡对应的带宽分配信息用于指示PCIe卡中包含的至少一个PCIe模块各自需要分配的带宽情况;识别各个PCIe卡的类型,从各个PCIe卡中确定多主机PCIe卡,以确定多主机PCIe卡对应的带宽分配信息,各个PCIe卡的类型包括多主机PCIe卡以及单主机PCIe卡。
可以理解的是,为了确定各个PCIe槽位上连接的各个PCIe卡中的multi-hostPCIe卡,需要遍历各个PCIe卡中的带宽分配信息,根据各个带宽分配信息确定各个PCIe卡中的multi-host PCIe卡,从而确定BMC是否需要调整PCIe转接卡中某一PCIe槽位分配的带宽情况。
在一种可能的实现方式中,现场可更换单元FRU支持与BMC通过系统管理总线SMBUS传输带宽分配信息。
可以理解的是,每个PCIe卡中均可以预先存储带宽分配信息,并且存储在现场可更换单元FRU中,便于实现BMC可以通过系统管理总线SMBUS获取到各个带宽分配信息。
第二方面,本申请提供了一种PCIe带宽分配装置,该PCIe带宽分配装置用于执行上述第一方面提供的任意一种PCIe带宽分配方法。
在一种可能的实现方式中,本申请可以根据上述第一方面提供的方法,对该PCIe带宽分配装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能继承在一个处理模块中。示例性的,本申请可以按照功能将该PCIe带宽分配装置划分为处理模块以及输出模块等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的实现方式提供的技术方案,此处不再赘述。
第三方面,本申请实施例提供了一种服务器,服务器包含处理器和存储器,处理器与存储器耦合;该存储器用于存储计算机指令,该计算机指令由处理器加载并执行以使服务器实现如上述方面所述的PCIe带宽分配方法。
第四方面,本申请实施例提供了一种服务器,服务器包括主板、PCIe转接卡以及PCIe卡,主板与PCIe转接卡通信连接,PCIe卡插设在所述PCIe转接卡上,主板上包括BMC,服务器通过BMC执行上述第一方面的PCIe带宽分配方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序指令,所述计算机程序指令由处理器加载并执行以实现如上述方面所述的PCIe带宽分配方法。
第六方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述第一方面的各种可选实现方式中提供的PCIe带宽分配方法。
本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1是根据一示例性实施例示出的一种多主机PCIe卡的示意图;
图2是根据一示例性实施例示出的一种应用场景示意图;
图3是图2所示实施例中涉及的一种PCIe带宽分配系统框架示意图;
图4是根据一示例性实施例示出的一种PCIe带宽分配方法的流程示意图;
图5是图4所示实施例中涉及的一种PCIe带宽分配具体流程示意图;
图6是本申请一个示例性实施例提供的PCIe带宽分配装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
首先,对本申请实施例的应用场景进行示例性介绍。
高速外设互连接口(peripheral component interconnect express,PCIe)是一种高速串行计算机扩展总线标准。PCIe的连接中的每个通道(lane)由两对导线组成,每对导线中的一条导线用来发送数据,另外一条导线用来接收数据,数据包以每个时钟一个包的速率通过lane进行传输。其中,一个带宽为x1的连接,即最小带宽的PCIe连接,也就是说只有一个lane即四根导线传输数据包,在每个方向的数据传输都可以达到每时钟1bit;一个带宽为x2的连接,可以是由两个lane即八根导线传输数据包,在每个方向的数据传输都可以达到每时钟2bit;一个带宽为x4的连接,可以是由四个lane即十六根导线传输数据包,在每个方向的数据传输都可以达到每时钟4bit,以此类推,其他的带宽配置可以选择有x12,x16或者x32的带宽情况。随着大数据、人工智能、云计算等领域的发展,服务器内的高速硬件数据交互需求变得愈发紧迫,PCIe依靠高速的传输速度将成为服务器总线的主流解决方案。PCIe模块也越来越丰富,形式也变得更加多样化。随着并行计算的发展,出现了多主机(multi-host)形态的PCIe卡,比如,图1示出了本申请实施例提供的一种多主机PCIe卡的示意图。多主机PCIe卡可以是一个设置有多个PCIe模块的电路板,如图1所示,在该多主机PCIe卡上设置有四个PCIe模块,即PCIe模块1、PCIe模块2、PCIe模块3以及PCIe模块4,每个PCIe模块可以是一个独立的PCIe设备,并且每一个独立的PCIe设备可以具有不同的带宽资源分配需求,例如,PCIe模块可以是独立的显卡,网卡,视频卡等PCIe设备。
在这种情况下常规的PCIe带宽分配方案难以满足多主机PCIe卡的多样化需求。因此,需要解决如何在不更改PCIe转接卡的情况下自适应调整向连接multi-host PCIe卡的PCIe槽位分配的带宽,从而使得该带宽分配与multi-host PCIe卡的带宽需求适配。
在相关技术中,服务器架构设计上一般是采用一个PCIe转接卡插接在主板上,PCIe转接卡上焊接有PCIe插槽提供PCIe槽位。在PCIe转接卡上有单板身份标识(Board ID)信息,基本输入输出系统(basic input output system,BIOS)通过读取PCIe转接卡上的Board ID信息来判断PCIe槽位的带宽分配情况。也就是说PCIe转接卡上焊接的是x8的插槽就向该PCIe槽位分配x8带宽,如果是x16的插槽就向该PCIe槽位分配x16带宽。当PCIe槽位上连接multi-host PCIe卡时,为了使得PCIe转接卡可以向该PCIe槽位连接的multi-hostPCIe卡分配适配的带宽,需要重新制作一个PCIe转接卡,并且该重新制作的PCIe转接卡设置有与原来PCIe转接卡不同的新的Board ID信息,新的Board ID信息可以指示连接该multi-host PCIe卡的PCIe槽位需要分配的带宽情况是multi-host PCIe卡中各个PCIe模块的需要分配的带宽情况。比如,若multi-host PCIe卡中包含两个PCIe模块,每个PCIe模块需要分配的带宽是x8的带宽,因此重新制作的PCIe转接卡需要设置新的Board ID信息,连接该multi-host PCIe卡的插槽对应的总带宽为x16,新的Board ID信息可以指示该总带宽为x16的PCIe槽位需要分配的带宽情况是x8+x8的PCIe带宽,当BIOS获取到新的Board ID信息时,可以向PCIe槽位分配x8+x8的PCIe带宽。这种方案由于只考虑了PCIe槽位上电气连接带宽,没有考虑后续multi-host PCIe卡的插卡需求,无法解决连接multi-host PCIe卡需要申请与单主机(single-host)PCIe卡不同的Board ID的问题,PCIe转接卡对不同种类的PCIe卡的自适应适配能力差,一旦有新种类的PCIe卡出现,就需要重新制作PCIe转接卡。
有鉴于此,本申请下述实施例提供了一种PCIe带宽分配方法,通过服务器中的BMC可以获取PCIe转接卡连接的至少一个PCIe卡各自的带宽分配信息,该带宽分配信息可以指示PCIe卡中包含的PCIe模块各自需要分配的带宽情况,BMC获取到PCIe卡中包含的PCIe模块各自需要分配的带宽情况后,可以确定是否连接有multi-host PCIe卡,若确定连接有multi-host PCIe卡,则基于获取到的带宽分配信息,确定第一目标单板识别码,该第一目标单板识别码可以写入BIOS配置文件中,使得BIOS按照第一目标单板识别码对PCIe卡分配带宽,实现了根据PCIe槽位上连接的PCIe卡具体需要分配的带宽情况调整向PCIe槽位分配带宽的过程,使得在不更换PCIe转接卡的情况下,可以对PCIe插槽上连接的需求不同带宽情况的PCIe卡分配适配的带宽,从而提高了向PCIe卡分配带宽的自适应适配能力。
其次,对本申请实施例的系统架构进行示例性介绍。
图2示出了本申请实施例提供的一种应用场景示意图。如图2所示,本申请可以应用在计算设备10中,该计算设备10可以是计算机设备、服务器或者网络设备等。在硬件方面,计算设备10中包括主板11、插接在主板11上的PCIe转接卡12以及插接在PCIe转接卡12上的PCIe卡122。其中,主板11上包括基板管理控制器(BMC)111以及中央处理器(CPU)113,中央处理器113支持运行、基本输入输出系统(BIOS)112。PCIe转接卡12上可以设置有一个或者多个PCIe槽位121,PCIe卡122可以插接在对应的PCIe槽位121上,实现PCIe卡122与PCIe转接卡12连接。另外在PCIe转接卡12上还可以存储有Board ID,该Board ID可以存储在PCIe转接卡12上的存储器中,在PCIe转接卡的槽位上连接的均是single-host PCIe卡(即一个PCIe卡上只有一个PCIe模块)时,该Board ID用于指示PCIe转接卡12上各个PCIe槽位121对应的电气连接带宽,也就是该PCIe槽位121连接single-host PCIe卡时向该PCIe槽位121分配的带宽情况。在PCIe卡122中可以包括现场更换单元(field replace unit,FRU),该FRU中可以存储有该PCIe卡122的带宽分配信息,该带宽分配信息中包含至少一个PCIe模块各自对应的需要分配的带宽情况,具体地,该带宽分配信息可以包括PCIe卡122中包含的PCIe模块的个数以及该PCIe卡中各个PCIe模块所需分配的带宽资源。
其中,BMC111可以通过系统管理总线(system management bus,SMBUS)获取PCIe转接卡12上存储的Board ID,从而通过Board ID获取PCIe卡122中的默认的带宽分配信息,以及通过FRU获取PCIe卡122各槽位的带宽分配信息,主板11中的CPU113可以通过PCIe转接卡12与PCIe卡122实现数据传输,BIOS112可以运行在CPU113中并且与BMC111进行数据传输,即BMC可以根据获取到PCIe卡122中的带宽分配信息,基于预先存储的带宽分配表,确定该带宽分配信息所对应的第一目标单板识别码(下文中的虚拟Board ID),并将该第一目标单板识别码写入BIOS配置文件中,在系统上电重启时,BIOS112可以读取BIOS配置文件向PCIe转接卡12分配带宽。
具体的,图3是本申请实施例涉及的一种PCIe带宽分配系统框架示意图。如图3所示,在同一个PCIe转接卡12上可以包括n个PCIe槽位121,主板上的业务系统的CPU113可以分别通过n个PCIe槽位121与PCIe卡1到PCIe卡n连接,一个PCIe转接卡12上包含在设计部署该PCIe转接卡12时存储在PCIe转接卡12的存储器中的Board ID,该Board ID可以指示n个PCIe槽位121的电气带宽情况,该电气带宽情况是指在设计制作PCIe转接卡12的电路板时对其上的n个PCIe槽位121固定、默认分配的针对single-host PCIe卡的带宽资源。BMC111可以通过SMBUS获取PCIe转接卡12中存储的Board ID以及从n个PCIe卡的FRU中获取带宽分配信息,该带宽分配信息中可以包括PCIe卡中PCIe模块的个数以及针对每个PCIe模块需要分配的带宽资源。
为了便于理解,以下结合附图对本申请的提供的PCIe带宽分配方法进行示例性介绍,该PCIe带宽分配方法适用于图1以及图2所示的应用场景。
图4示出了本申请一个示例性实施例提供的PCIe带宽分配方法的流程示意图。该PCIe带宽分配方法包括如下步骤:
S101,BMC获取与PCIe转接卡连接的各个PCIe卡对应的带宽分配信息。
在本申请实施例中,BMC可以遍历PCIe转接卡连接的各个PCIe卡,获取各个PCIe卡各自对应的带宽分配信息。
其中,PCIe卡对应的带宽分配信息用于指示PCIe卡中包含的PCIe模块的个数以及至少一个PCIe模块各自需要分配的带宽情况。
具体的,PCIe卡对应的带宽分配信息可以分为两种情况,一种情况下,若PCIe卡中只包含一个PCIe模块,也就是说PCIe槽位被分配的电气带宽全部分配给该PCIe模块,即该PCIe卡为single-host PCIe卡时,PCIe卡中包含的带宽分配信息可以用于指示该PCIe模块需要分配的带宽情况,该PCIe卡的带宽分配信息可以包括该PCIe卡中包括的PCIe模块的标识以及需要分配的具体带宽。另一种情况下,若PCIe卡中包含至少两个PCIe模块,也就是说PCIe槽位被分配的电气带宽需要分配给至少两个PCIe模块,即该PCIe卡为multi-hostPCIe卡时,PCIe卡中包含的带宽分配信息可以用于指示其中包含的至少两个PCIe模块各自需要分配的带宽情况,该PCIe卡的带宽分配信息可以包括该PCIe卡中包括至少两个PCIe模块各自的标识以及各个PCIe模块的标识各自对应的需要分配带宽资源。
示例性的,若连接PCIe卡的PCIe槽位对应分配的总带宽是x16,则该PCIe槽位上可以连接需要分配带宽为x16的single-host PCIe卡,如图2中的PCIe卡1,该single-hostPCIe卡中包含的带宽分配信息可以包括PCIe模块的标识1以及该标识1对应的x16的带宽情况;也可以连接multi-host PCIe卡,该multi-host PCIe卡中各个PCIe模块所需要分配的总带宽为x16,比如,若multi-host PCIe卡中包含两个PCIe模块,如图2中的PCIe卡2,则带宽分配信息中可以包括PCIe模块1的标识1以及PCIe模块2的标识2,以及标识1对应分配的带宽x8以及标识2对应分配的带宽x8,即该带宽分配信息指示的带宽情况可以是x8+x8。
在一种可能的实现方式中,带宽分配信息可以存储在设置在PCIe卡上的现场可更换单元FRU中,FRU与BMC通过系统管理总线SMBUS传输带宽分配信息。
S102,BMC基于带宽分配信息,确定PCIe卡的类型。
在本申请实施例中,由于各个PCIe卡的带宽分配信息中包括各自其中包含的PCIe模块的个数,BMC根据带宽分配信息中的PCIe模块的个数,可以确定各个PCIe卡的类型,从而从各个PCIe卡中确定multi-host PCIe卡以及single-host PCIe卡。
其中,PCIe卡的类型可以包括multi-host类型以及single-host类型。
也就是说,BMC获取到PCIe卡的带宽分配信息后,可以通过确定带宽分配信息中包含的PCIe模块的个数,确定带宽分配信息所属的PCIe卡是multi-host类型或者single-host类型。
在一种可能的实现方式中,BMC识别各个PCIe卡的类型后,可以从各个PCIe卡中确定multi-host PCIe卡,并且确定连接multi-host PCIe卡的PCIe槽位的第二目标识别码,该第二目标识别码是一个PCIe槽位对应的识别码。
S103,若BMC确定PCIe转接卡连接的各个PCIe卡的类型均为单主机PCIe卡,获取原始单板识别码,将原始单板识别码记录在基本输入输出系统BIOS配置文件中。
在本申请实施例中,若BMC遍历PCIe转接卡连接的各个PCIe卡,获取每个PCIe卡各自的带宽分配信息后确定各个PCIe卡中各自包含PCIe模块的个数均为一个,则可以确定每个PCIe卡的类型均为single-host PCIe卡,在这种情况下,可以直接按照PCIe转接卡中存储的Board ID向各个PCIe槽位分配固定的带宽资源,为了实现上述过程,BMC可以从PCIe转接卡中获取预先存储的原始单板识别码(即Board ID),并且将原始单板识别码写入BIOS配置文件。
也就是说,在PCIe卡的类型为单主机PCIe卡的情况下,从PCIe转接卡获取原始单板识别码,并将原始单板识别码记录在基本输入输出系统BIOS配置文件中,以使得系统重启开机时,BIOS读取BIOS配置文件,从而对单主机PCIe卡进行带宽分配。
S104,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,基于带宽分配信息,确定第一目标单板识别码。
可选地,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,基于带宽分配信息,确定第二目标识别码;所述第二目标识别码是多主机PCIe卡所插设的插槽所对应的识别码。
可选地,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,基于带宽分配信息,确定第二目标识别码,并根据第二目标识别码,确定第一目标单板识别码;所述第二目标识别码是多主机PCIe卡所插设的插槽所对应的识别码。
在本申请实施例中,若BMC确定各个PCIe卡中存在多主机PCIe卡,BMC可以根据获取到的各个PCIe卡的带宽分配信息重新确定PCIe转接卡对各个PCIe槽位分配带宽资源的情况,示例性地,确定第一目标单板识别码,并通过第一目标单板识别码对各个PCIe槽位分配带宽资源。
在一种可能的实现方式中,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,则可以根据获取到的各个PCIe卡的带宽分配信息中对其中包含的每个PCIe模块分配的带宽资源的情况,确定每个PCIe槽对应的第二识别码,通过第二识别码确定第一目标单板识别码。
其中,基于带宽分配信息,BMC可以从带宽分配规则表中查询带宽分配信息所对应的第二目标识别码,从而确定第一目标单板识别码。带宽分配规则表可以存储在主板的存储器中,也可以存储在PCIe转接卡的存储器中,或者存储在BMC的存储器中。
其中,带宽分配规则表可以包含预先存储的PCIe转接卡上各个PCIe槽位的第二识别码,以及各个槽位各自支持分配的带宽资源的各种情况。
示例性的,若PCIe转接卡上具有两个PCIe槽位(slot),并且每个PCIe槽位对应分配的电气带宽情况均为x16,针对PCIe槽位1(slot1)的预先设置并存储的带宽分配规则表可以如下表1所示。
表1
针对PCIe槽位2(slot2)的预先存储的带宽分配规则表可以如下表2所示。
表2
也就是说,若PCIe槽位1对应的电气带宽分配为x16,针对PCIe槽位1预先设置的带宽分配规则表中可以包括带宽四种带宽分配情况各自对应的第二识别码,比如,第一种可能的情况下,若获取到的带宽分配信息中包含的分配的带宽情况是PCIe模块1对应分配x8的带宽,PCIe模块2也对应分配x8的带宽时,在这种情况下可以确定对应的第二识别码是A1;第二种可能的情况下,若获取到的带宽分配信息中包含的分配的带宽情况是PCIe模块1对应分配x8的带宽,PCIe模块2对应分配x4的带宽,PCIe模块3也对应分配x4的带宽时,在这种情况下可以确定对应的第二单板识别码是B1;第三种可能的情况下,若获取到的带宽分配信息中包含的分配的带宽情况是PCIe模块1对应分配x4的带宽,PCIe模块2对应分配x4的带宽,PCIe模块3对应分配x8的带宽时,在这种情况下可以确定对应的第二单板识别码是C1;第四种可能的情况下,若获取到的带宽分配信息中包含的分配的带宽情况是PCIe模块1对应分配x4的带宽,PCIe模块2对应分配x4的带宽,PCIe模块3也对应分配x4的带宽,PCIe模块4也对应分配x4的带宽时,在这种情况下可以确定对应的第二单板识别码是D1。另外,针对PCIe槽位2的预先设置的带宽分配规则表的设置与PCIe槽位1的设置相同。
示例性的,若获取到PCIe槽位1的带宽分配信息中包含PCIe模块1对应分配x8的带宽,PCIe模块2也对应分配x8的带宽时,通过查询针对PCIe槽位1的带宽分配规则表,BMC可以从该带宽分配规则表中查询带宽分配信息所对应的第二目标识别码为A1;同样,若查询确定PCIe槽位2对应的第二目标识别码为C2,则可以确定第一目标单板识别码为A1+C2。
或者,还可以分别将第二目标识别码记录在BIOS配置文件中,以实现对各自对应的PCIe槽位进行带宽分配。
在另一种可能的实现方式中,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,则可以根据获取到的各个PCIe卡的带宽分配信息中对其中包含的每个PCIe模块分配的带宽资源的情况,通过查询带宽分配规则表确定第一目标单板识别码。
示例性的,若PCIe转接卡上具有两个PCIe槽位(slot),并且每个PCIe槽位对应分配的电气带宽情况均为x16,针对PCIe转接卡的预先设置并存储的带宽分配规则表可以如下表3所示。
表3
其中,序号1至24是预先存储的针对PCIe转接卡的各种可能的带宽分配情况以及第一目标单板识别码的对应关系,第一目标单板识别码(即虚拟Board ID)可以是指根据每个PCIe槽位的具体带宽分配情况进行带宽资源分配所对应的单板识别码,默认Board ID可以是指:PCIe转接卡122上设置的、默认的原始单板识别码,用于指示PCIe槽位插入的是single-host PCIe卡时带宽资源的分配情况。
示例性的,若获取到PCIe槽位1的带宽分配信息中包含PCIe模块1对应分配x8的带宽,PCIe模块2也对应分配x8的带宽,同时,查询确定PCIe槽位2对应的带宽分配信息中包含PCIe模块1对应分配x8的带宽,PCIe模块2对应分配x4的带宽,PCIe模块3也对应分配x4的带宽,然后通过查询针对PCIe转接卡的带宽分配规则表可以确定第一目标单板识别码为G。
在一种可能的实现方式中,多主机PCIe卡对应的带宽分配信息可以用于指示多主机PCIe卡中包含的至少两个PCIe模块各自需要分配的带宽情况,该带宽分配信息可以包括PCIe卡中包含的PCIe模块的个数,以及每个PCIe模块各自需要分配的带宽资源;PCIe转接卡用于扩展PCIe槽位,PCIe转接卡上的PCIe槽位用于连接PCIe卡,PCIe卡包含多主机PCIe卡。
示例性的,连接在PCIe转接卡各个PCIe槽位上的PCIe卡中设置有FRU,在FRU中存储有该PCIe卡的带宽分配信息,比如,针对PCIe卡1的FRU中的带宽分配信息可以如下表4所示进行存储。
表4
其中,带宽分配信息具体可以包括每个PCIe模块的标识,以及每个PCIe模块需要分配的带宽资源情况,以及PCIe模块的个数。
在一种可能的实现方式中,若BMC确定PCIe转接卡连接的各个PCIe卡的类型包括多主机PCIe卡,也包括单主机PCIe卡,按照多主机PCIe卡的带宽分配信息确定各个多主机PCIe卡的槽位对应第二识别码,结合单主机PCIe卡对应的原始单板识别码,确定第一目标单板识别码。
示例性的,若确定PCIe卡1为多主机PCIe卡,PCIe卡2为单主机PCIe卡,则可以按照上述步骤确定PCIe卡1的槽位对应的第二识别码,同时将PCIe卡2对应的原始单板识别码与第二识别码结合,得到第一目标单板识别码。
S105,BMC将第一目标单板识别码记录在基本输入输出系统BIOS配置文件中。
可选地,BMC将第二目标识别码记录在基本输入输出系统BIOS配置文件中。
在本申请实施例中,BMC在确定PCIe槽位的第二识别码后,可以将第二识别码记录在BIOS配置文件中,或者在确定PCIe转接卡的第一目标单板识别码后,将第一目标单板识别码记录在BIOS配置文件中。
示意性地,以PCIE转接卡上设置有两个槽位的情况为例,BMC可以通过插设在PCIe槽位1上的PCIe卡1的FRU1,获取到其对应的带宽分配信息为:包括两个PCIe模块1和PCIe模块2,且这两个PCIe模块的带宽分配规则为:为PCIe模块1分配X8的带宽,为PCIe模块2分配X8的带宽;同时,BMC通过插设在PCIe槽位2上的PCIe卡2的FRU2,获取到其对应的带宽分配信息为:包括三个PCIe模块1、PCIe模块2,PCIe模块3,且这两个PCIe模块的带宽分配规则为:为PCIe模块1分配X4的带宽,为PCIe模块2分配X4的带宽,为PCIe模块1分配X8的带宽;BMC基于从上述两个FRU中获取到的带宽分配信息,从带宽分配规则表中,可以确定上述带宽分配信息对应的第一目标单板识别码为“H”(虚拟Board ID为Board ID8),并将该第一目标单板识别码的标识“H”存储于BIOS的配置文件中,以便服务器开机启动时,BIOS读取配置文件,从配置文件中获取该第一目标单板识别码“H”。在一种可能的实现方式中,BMC可以将目标PCIe槽位的第二识别码记录在BIOS配置文件中。
S106,BIOS启动;
在本申请实施例中,对PCIe卡进行带宽分配之前,需要将业务系统开机,将BIOS启动;
S107,BIOS读取BIOS配置文件中的第一目标单板识别码,并基于所述第一目标单板识别码,从带宽分配规则表中确定所述第一目标单板识别码对应的带宽分配信息,对PCIe卡进行带宽分配。
可选地,若BIOS配置文件中存储了第二目标识别码,则BIOS读取BIOS配置文件中的第二目标识别码,并基于所述第二目标识别码,从带宽分配规则表中确定所述第二目标识别码对应的带宽分配信息,对PCIe卡进行带宽分配。
在本申请实施例中,BIOS可以读取BIOS配置文件,在BMC将PCIe槽位的第二单板识别码记录在BIOS配置文件中的情况下,BIOS可以根据读取到的第二目标识别码,在带宽分配规则表中查询到该第二目标识别码所对应的带宽分配信息,对PCIe转接卡上对应的PCIe槽位进行带宽分配,例如可以针对连接multi-host PCIe卡的对应的PCIe槽位重新进行带宽分配;在BMC将PCIe转接卡的第一目标单板识别码记录在BIOS配置文件中的情况下,BIOS可以根据读取到的第一目标单板识别码,在带宽分配规则表中查询到该第一目标单板识别码所对应的带宽分配信息对PCIe转接卡上各个PCIe槽位进行带宽分配;在BMC将原始单板识别码记录在BIOS配置文件中的情况下,BIOS可以根据读取到的原始单板识别码,在带宽分配规则表中查询到该原始单板识别码所对应的带宽分配信息对PCIe转接卡上对应的PCIe槽位进行带宽分配。
需要说明的是,本实施例以PCIe转接板上的每个PCIe槽位分配的带宽均为X16为例,而其他场景下,一个PCIe转接板上的每个PCIe槽位可以分配不同的带宽,例如有的槽位可以分配X16的带宽,有的槽位可以分配X32的带宽,有的槽位可以分配X8的带宽,或者一个PCIe转接板上的每个PCIe槽位均分配的是相同的带宽,例如都为X32或者X8的带宽,上述场景,均可以采用与本实施例相同的配置方法,此处不再赘述。
示例性的,图5是本申请实施例涉及的一种PCIe带宽分配具体流程示意图。如图5所示,在计算机硬件系统部署完成后并接通电源时,BMC系统上电启动,BMC通过SMBus读取PCIe转接卡上的Board ID信息,即原始单板识别码,读取的这个Board ID作为PCIe转接卡的默认Board ID(S21),在BMC读取PCIe转接卡上的Board ID之后,接着就会去遍历PCIe转接卡上的PCIe卡的FRU信息,BMC系统记下系统上所有PCIe卡的FRU信息(S22),其中FRU信息中包括了每个PCIe卡中包括的PCIe模块的个数,以及每个PCIe模块所对应的带宽分配规则,然后BMC对PCIe卡进行类别识别,通过读取FRU中的信息,判断每一个PCIe槽位上是否有multi-host PCIe卡(S23),如果经过查询每个PCIe槽位上所插的PCIe卡并没有multi-hostPCIe卡,则采用默认Board ID对应的带宽分配方案进行PCIe带宽分配即可(S24),如果BMC对PCIe卡的FRU信息遍历后发现有multi-host PCIe卡存在,则需要改变默认PCIe带宽分配方案,其具体做法是BMC根据FRU信息判断每个PCIe槽位的PCIe带宽分配规则,查询multi-host PCIe卡的带宽分配规则表(S25),如上述表3,然后根据带宽分配规则表,查询当前PCIe转接卡对应的目标单板标识(虚拟Board ID)(S26),并将查询到的记录带宽分配所需要的Board ID值记录到BIOS配置文件中(S27),BMC系统启动完成后,发指令给业务系统,业务系统开始启动,BIOS系统开始运行。BIOS启动过程中读取配置文件(S28),由于配置文件中有BMC传递过来的Board ID信息,同样BIOS也可以根据Board ID信息,Board ID信息可以包括默认的BoardID和虚拟Board ID,反查PCIe带宽分配方案,例如查询表3对应的带宽分配规则表,按照查询到的PCIe带宽分配方案进行带宽分配(S29)。
上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,PCIe带宽分配装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例PCIe带宽分配装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图6示出了本申请一个示例性实施例提供的PCIe带宽分配装置400的结构示意图。该PCIe带宽分配装置400包括:
处理模块410,用于获取高速外设互联PCIe卡的带宽分配信息,基于所述带宽分配信息,确定所述PCIe卡的类型;在所述PCIe卡的类型包括多主机PCIe卡的情况下,基于所述带宽分配信息,确定第一目标单板识别码;其中,所述第一目标单板识别码用于指示所述PCIe卡需要分配的带宽资源;
输出模块420,用于将所述第一目标单板识别码记录在基本输入输出系统BIOS的配置文件中,以使得BIOS基于所述BIOS的配置文件对PCIe卡进行带宽分配。
例如,结合图4,处理模块410可以用于执行如图4所示的S101、S102以及S104,输出模块420可以用于执行如图4所示的S105、S106。
在一种可能的实现方式中,所述PCIe卡上还设置有现场可更换单元FRU,所述处理模块410,还用于从所述FRU中获取所述PCIe卡对应的带宽分配信息,所述PCIe卡对应的带宽分配信息包括:所述PCIe卡中包含PCIe模块的个数以及每个PCIe模块各自需要分配的带宽资源。
在一种可能的实现方式中,所述处理模块410,还用于基于所述带宽分配信息中的PCIe模块的个数,确定所述PCIe卡的类型;
在所述带宽分配信息中的PCIe模块的个数大于等于2的情况下,确定所述PCIe卡的类型为多主机PCIe卡;
否则,则确定所述PCIe卡的类型为单主机PCIe卡。
在一种可能的实现方式中,所述PCIe卡设置在高速外设互联PCIe转接卡上,所述PCIe转接卡具有原始单板识别码,所述原始单板识别码用于指示所述转接卡上的PCIe槽位连接所述单主机PCIe卡的情况下,所述PCIe槽位对应的所述单主机PCIe卡所需要分配的带宽资源;
所述输出模块420,还用于在所述PCIe卡的类型为单主机PCIe卡的情况下,从所述PCIe转接卡获取所述原始单板识别码,并将所述原始单板识别码记录在基本输入输出系统BIOS配置文件中,以使得BIOS基于所述BIOS配置文件,对所述单主机PCIe卡进行带宽分配。
在一种可能的实现方式中,所述处理模块410,还用于基于所述带宽分配信息,从带宽分配规则表中查询所述带宽分配信息所对应的所述第一目标单板识别码。
在一种可能的实现方式中,所述PCIe卡为至少2个,且每个PCIe卡通过高速外设互联PCIe转接卡上的PCIe的槽位设置在PCIe转接卡上;所述处理模块410,还用于基于所述带宽分配信息,确定每个所述PCIe卡对应的目标PCIe槽位的第二目标识别码,基于每个所述第二目标识别码的组合,确定所述第一目标单板识别码;其中所述第二目标识别码用于指示所述目标PCIe槽位插接的PCIe卡所需要分配的带宽资源。
在一种可能的实现方式中,所述处理模块410,还用于基于所述带宽分配信息,从带宽分配规则表中查询每个所述PCIe卡对应的目标PCIe槽位的所述第二目标识别码,其中所述带宽分配规则表存储有所述第二目标识别码与所述带宽分配信息的对应关系。
在一种可能的实现方式中,所述处理模块410,还用于在所述PCIe卡的类型包括多主机PCIe卡,且也包括单主机PCIe卡的情况下,基于多主机PCIe卡的带宽分配信息,确定多主机PCIe卡对应的第二目标识别码;
从原始单板识别码中获取单主机PCIe卡对应的部分原始单板识别码;
基于所述部分原始单板识别码以及所述第二目标识别码,确定所述第一目标单板识别码。
在一种可能的实现方式中,所述现场可更换单元FRU支持与所述BMC通过系统管理总线SMBUS传输所述带宽分配信息。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种PCIe带宽分配装置的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
作为示例,结合图2,PCIe带宽分配装置中的处理模块410和输出模块420中的部分或全部实现的功能可以通过图2中的BMC执行。
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述内存故障预测方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述图4任一实施例所示方法的全部或部分步骤。
在一些实施例中,本申请实施例所示的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种PCIe带宽分配方法,其特征在于,所述方法由基板管理控制器BMC执行,所述方法包括:
获取高速外设互联PCIe卡的带宽分配信息,
基于所述带宽分配信息,确定所述PCIe卡的类型;
在所述PCIe卡的类型包括多主机PCIe卡的情况下,基于所述带宽分配信息,确定第一目标单板识别码;其中,所述第一目标单板识别码用于指示所述PCIe卡需要分配的带宽资源;
将所述第一目标单板识别码记录在基本输入输出系统BIOS的配置文件中,以使得所述基本输入输出系统BIOS基于所述BIOS的配置文件对PCIe卡进行带宽分配。
2.根据权利要求1所述的方法,其特征在于,所述PCIe卡上还设置有现场可更换单元FRU,所述获取PCIe卡的带宽分配信息,包括:
从所述FRU中获取所述PCIe卡对应的带宽分配信息,所述PCIe卡对应的带宽分配信息包括:所述PCIe卡中包含PCIe模块的个数以及每个PCIe模块各自需要分配的带宽资源。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述带宽分配信息,确定所述PCIe卡的类型,包括:
基于所述带宽分配信息中的PCIe模块的个数,确定所述PCIe卡的类型;
在所述带宽分配信息中的PCIe模块的个数大于等于2的情况下,确定所述PCIe卡的类型为多主机PCIe卡;
否则,则确定所述PCIe卡的类型为单主机PCIe卡。
4.根据权利要求3所述的方法,其特征在于,所述PCIe卡设置在高速外设互联PCIe转接卡上,所述PCIe转接卡具有原始单板识别码,
所述原始单板识别码用于指示所述转接卡上的PCIe槽位连接所述单主机PCIe卡的情况下,所述PCIe槽位对应的所述单主机PCIe卡所需要分配的带宽资源;
所述方法还包括:在所述PCIe卡的类型为单主机PCIe卡的情况下,从所述PCIe转接卡获取所述原始单板识别码,并将所述原始单板识别码记录在基本输入输出系统BIOS配置文件中,以使得BIOS基于所述BIOS配置文件,对所述单主机PCIe卡进行带宽分配。
5.根据权利要求1至4任一所述的方法,其特征在于,所述基于所述带宽分配信息,确定所述第一目标单板识别码,包括:基于所述带宽分配信息,从带宽分配规则表中查询所述带宽分配信息所对应的所述第一目标单板识别码,其中所述带宽分配规则表中存储有所述带宽分配信息与所述第一目标单板识别码的对应关系。
6.根据权利要求1至4任一所述的方法,其特征在于,所述PCIe卡为至少2个,且每个PCIe卡通过高速外设互联PCIe转接卡上的PCIe的槽位设置在PCIe转接卡上;
所述基于所述带宽分配信息,确定所述第一目标单板识别码,包括:
基于所述带宽分配信息,确定每个所述PCIe卡对应的目标PCIe槽位的第二目标识别码,基于每个所述第二目标识别码的组合,确定所述第一目标单板识别码;其中所述第二目标识别码用于指示所述目标PCIe槽位插接的PCIe卡所需要分配的带宽资源。
7.根据权利要求6所述的方法,其特征在于,所述基于所述带宽分配信息,确定每个所述PCIe卡对应的目标PCIe槽位的第二目标识别码,包括:
基于所述带宽分配信息,从带宽分配规则表中查询每个所述PCIe卡对应的目标PCIe槽位的所述第二目标识别码,其中所述带宽分配规则表存储有所述第二目标识别码与所述带宽分配信息的对应关系。
8.根据权利要求1至7任一所述的方法,其特征在于,所述在所述PCIe卡的类型包括多主机PCIe卡的情况下,基于所述带宽分配信息,确定所述第一目标单板识别码,包括:
在所述PCIe卡的类型包括多主机PCIe卡,且也包括单主机PCIe卡的情况下,基于多主机PCIe卡的带宽分配信息,确定多主机PCIe卡对应的第二目标识别码;
从原始单板识别码中获取单主机PCIe卡对应的部分原始单板识别码;
基于所述部分原始单板识别码以及所述第二目标识别码,确定所述第一目标单板识别码。
9.根据权利要求1至8任一所述的方法,其特征在于,现场可更换单元FRU支持与所述BMC通过系统管理总线SMBUS传输所述带宽分配信息。
10.一种服务器,其特征在于,所述服务器包括主板、PCIe转接卡以及PCIe卡,所述主板与所述PCIe转接卡通信连接,所述PCIe卡插设在所述PCIe转接卡上,所述主板上包括BMC,所述服务器通过所述BMC执行如权利要求1至9任一所述的PCIe带宽分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310424153.8A CN116827797A (zh) | 2023-04-18 | 2023-04-18 | PCIe带宽分配方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310424153.8A CN116827797A (zh) | 2023-04-18 | 2023-04-18 | PCIe带宽分配方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116827797A true CN116827797A (zh) | 2023-09-29 |
Family
ID=88124840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310424153.8A Pending CN116827797A (zh) | 2023-04-18 | 2023-04-18 | PCIe带宽分配方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827797A (zh) |
-
2023
- 2023-04-18 CN CN202310424153.8A patent/CN116827797A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3614253A1 (en) | Data processing method and storage system | |
CN108984465B (zh) | 一种消息传输方法及设备 | |
US8635386B2 (en) | Communication control device, data communication method and program | |
JP2004157966A (ja) | エンドポイント・メモリ制御方法、エンドポイント・メモリ制御装置、usb装置および記憶媒体 | |
CN102033840B (zh) | 总线协议转换装置和总线协议转换方法 | |
CN104731635A (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制系统 | |
CN101645058A (zh) | 命令处理方法、命令发送方法、装置及系统 | |
CN116827797A (zh) | PCIe带宽分配方法及服务器 | |
CN116166581A (zh) | 用于pcie总线的队列式dma控制器电路及数据传输方法 | |
CN115840592A (zh) | Flash访问方法、控制器、系统及可读存储介质 | |
US20060277326A1 (en) | Data transfer system and method | |
CN112069108A (zh) | 一种基于PCIE Switch的服务器灵活配置系统及方法 | |
CN101241478B (zh) | 数据传送方法 | |
CN116932451A (zh) | 一种数据处理方法、主机及相关设备 | |
CN109144578B (zh) | 一种基于龙芯计算机的显卡资源配置方法及装置 | |
CN108710508B (zh) | 一种处理方法、装置及电子设备 | |
CN108292264B (zh) | 用于管理存储器页的可用性的方法和存储器可用性管理模块 | |
CN113905084A (zh) | 数据交互方法、装置及计算机设备 | |
CN117331511B (zh) | 一种存储设备及其数据传输方法、装置、系统和存储介质 | |
CN108509301A (zh) | 一种smbios中系统插槽信息的更新方法及更新系统 | |
US20230153239A1 (en) | Method and apparatus for allocating memory addresses in resource-centric networks | |
CN111930781A (zh) | 对缓存数据库的数据请求的处理方法和装置 | |
CN117499511A (zh) | 报文处理方法、芯片和计算机设备 | |
CN116149453A (zh) | 控制器、电子设备和数据传输系统 | |
CN117435535A (zh) | 一种存储系统、主控芯片、数据存储方法及数据读取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |