一种根据PCI设备的类型分配资源的方法、装置及介质转让专利

申请号 : CN201810594753.8

文献号 : CN108804230B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙秀强

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明公开了一种根据PCI设备的类型分配资源的方法、装置及介质,在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本方法可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。

权利要求 :

1.一种根据PCI设备的类型分配资源的方法,其特征在于,包括:在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息;

根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接;

如果是,则取消对所述PCI设备分配IO资源的操作;

如果否,则按照预定分配规则对所述PCI设备分配IO资源和内存资源;

所述Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;

所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接具体为:判断是否存在所述Switch芯片的ID信息和版本信息,如果是,则确定所述PCI设备与GPU服务器连接。

2.根据权利要求1所述的根据PCI设备的类型分配资源的方法,其特征在于,在所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接之前,还包括:获取PCI设备的数量;

判断所述PCI设备的数量是否达到预定值;

如果是,则进入所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接的步骤。

3.根据权利要求2所述的根据PCI设备的类型分配资源的方法,其特征在于,所述预定值具体为16。

4.根据权利要求1所述的根据PCI设备的类型分配资源的方法,其特征在于,所述PCI设备具体为Titan V显卡。

5.一种根据PCI设备的类型分配资源的装置,其特征在于,包括:第一获取单元,用于在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息;

第一判断单元,用于根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接;

分配单元,用于所述第一判断单元的判断结果为是时,则取消对所述PCI设备分配IO资源的操作;所述第一判断单元的判断结果为否时,则按照预定分配规则对所述PCI设备分配IO资源和内存资源;

所述Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;

所述第一判断单元用于判断是否存在所述Switch芯片的ID信息和版本信息,如果是,则确定所述PCI设备与GPU服务器连接。

6.根据权利要求5所述的根据PCI设备的类型分配资源的装置,其特征在于,还包括:第二获取单元,用于获取PCI设备的数量;

第二判断单元,用于判断所述PCI设备的数量是否达到预定值,如果是,则触发第一判断单元。

7.一种根据PCI设备的类型分配资源的装置,其特征在于,包括存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的根据PCI设备的类型分配资源的方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的根据PCI设备的类型分配资源的方法的步骤。

说明书 :

一种根据PCI设备的类型分配资源的方法、装置及介质

技术领域

[0001] 本发明涉及PCI设备技术领域,特别是涉及一种根据PCI设备的类型分配资源的方法、装置及介质。

背景技术

[0002] PCI设备主要使用两种资源类型,一种是IO资源,另一种是内存资源,每个PCI设备根据实际使用的用途类型需要分配不同资源类型,例如,对于Super IO芯片来说,其只使用IO资源,但是像网卡和消费级显卡等PCI设备既使用IO资源同时也会使用内存资源。
[0003] 在具体实施中,由于执行BIOS的开机过程中,所提供的IO资源是有限的,并且有64k的限制,而资源分配时是按照每个PCI设备分配4K的IO资源进行的,因此,当PCI设备的数量为16或以上时,则无法实现相应的功能,例如当PCI设备为显卡时,则显卡无法正常使用。由此可见,上述问题是由于所需要的IO资源较多而导致的,而当PCI设备在特定场景下,并不需要使用IO资源,例如当PCI设备与GPU服务器连接时,则PCI设备就不需要IO资源的分配。
[0004] 由此可见,在对PCI设备进行资源分配时,如何保证PCI设备的可用性是本领域技术人员亟待解决的问题。

发明内容

[0005] 本发明的目的是提供一种根据PCI设备的类型分配资源的方法、装置及介质,用于在对PCI设备进行资源分配时,保证PCI设备的可用性。
[0006] 为解决上述技术问题,本发明提供一种根据PCI设备的类型分配资源的方法,包括:
[0007] 在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息;
[0008] 根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接;
[0009] 如果是,则取消对所述PCI设备分配IO资源的操作;
[0010] 如果否,则按照预定分配规则对所述PCI设备分配IO资源和内存资源。
[0011] 优选地,所述Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;
[0012] 所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接具体为:
[0013] 判断是否存在所述Switch芯片的ID信息和版本信息,如果是,则确定所述PCI设备与GPU服务器连接。
[0014] 优选地,在所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接之前,还包括:
[0015] 获取PCI设备的数量;
[0016] 判断所述PCI设备的数量是否达到预定值;
[0017] 如果是,则进入所述根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接的步骤。
[0018] 优选地,所述预定值具体为16。
[0019] 优选地,所述PCI设备具体为Titan V显卡。
[0020] 为解决上述技术问题,本发明还提供一种根据PCI设备的类型分配资源的装置,包括:
[0021] 第一获取单元,用于在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息;
[0022] 第一判断单元,用于根据所述Switch芯片的信息判断PCI设备是否与GPU服务器连接;
[0023] 分配单元,用于所述第一判断单元的判断结果为是时,则取消对所述PCI设备分配IO资源的操作;所述第一判断单元的判断结果为否时,则按照预定分配规则对所述PCI设备分配IO资源和内存资源。
[0024] 优选地,所述Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;
[0025] 所述第一判断单元用于判断是否存在所述Switch芯片的ID信息和版本信息,如果是,则确定所述PCI设备与GPU服务器连接。
[0026] 优选地,还包括:
[0027] 第二获取单元,用于获取PCI设备的数量;
[0028] 第二判断单元,用于判断所述PCI设备的数量是否达到预定值,如果是,则触发第一判断单元。
[0029] 为解决上述技术问题,本发明提供还一种根据PCI设备的类型分配资源的装置,包括存储器,用于存储计算机程序;
[0030] 处理器,用于执行所述计算机程序时实现如上述所述的根据PCI设备的类型分配资源的方法的步骤。
[0031] 为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的根据PCI设备的类型分配资源的方法的步骤。
[0032] 本发明所提供的根据PCI设备的类型分配资源的方法,在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息,之所以是执行BIOS的开机过程是因为,在执行BIOS时,IO资源有限,因此本方法其实只是针对在执行BIOS的开机过程中的PCI设备的资源分配。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本方法可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。
[0033] 此外,本发明还提供一种与上述方法对应的PCI设备的类型分配资源的装置及介质,效果同上。

附图说明

[0034] 为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035] 图1为本发明实施例提供的一种根据PCI设备的类型分配资源的方法的流程图;
[0036] 图2为本发明实施例提供的另一种根据PCI设备的类型分配资源的方法的流程图;
[0037] 图3为本发明实施例提供的一种根据PCI设备的类型分配资源的装置的结构图。

具体实施方式

[0038] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
[0039] 本发明的核心是提供一种根据PCI设备的类型分配资源的方法、装置及介质,用于在对PCI设备进行资源分配时,保证PCI设备的可用性。
[0040] 为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
[0041] 图1为本发明实施例提供的一种根据PCI设备的类型分配资源的方法的流程图。如图1所示,该方法包括:
[0042] S10:在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息。
[0043] 需要说明的是,BIOS是一组固化在计算机或服务器设备主板上一个ROM芯片上的程序,它保存着计算机或服务器最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,因此其主要的功能是为计算机或服务器提供最底层的硬件设置和控制途径。本发明中提到的PCI设备不作限定,例如可以为Titan V显卡。
[0044] 在开机时,需要执行BIOS,在这一过程中,常规操作包含有PCI枚举,也就是使用一些过滤条件将系统中的各PCI设备筛选出来。对于不同的操作系统,枚举的方法不同,例如Linux系统没有Windows系统那样直接枚举显卡的函数,只有借用shell脚本或者读取PCI设备配置空间来获取PCI设备信息。可以理解的是,PCI枚举操作是现有技术,是本领域技术人员熟知的内容,详细内容在此不再赘述。
[0045] 在具体实施中,如果PCI设备与GPU服务器连接,则能够抓取到Switch芯片的信息,也就是说通过Switch芯片的信息从而确定PCI设备是否与GPU服务器连接。
[0046] S11:根据Switch芯片的信息判断PCI设备是否与GPU服务器连接,如果是,则进入S12,否则进入S13。
[0047] 可以理解的是,GPU服务器内部包含Switch芯片,将Switch芯片的个数作为唯一判断PCI设备的使用用途类型的条件,从而确定如何分配IO资源和内存资源。如果未抓取到Switch芯片的信息,则说明PCI设备未与GPU服务器连接,如果抓取到N个Switch芯片的信息,则说明有N个PCI设备与N个GPU服务器连接。需要说明的是,本实施例中的Switch芯片的类型不做限定,其具体功能参见现有技术,本实施例不再赘述。
[0048] 在一种具体实施方式中,Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;
[0049] S11具体为:判断是否存在Switch芯片的ID信息和版本信息,如果是,则确定PCI设备与GPU服务器连接。
[0050] S12:取消对PCI设备分配IO资源的操作。
[0051] 当S11的判断结果为是时,则表明PCI设备与GPU服务器连接,因此,该种情况下PCI设备不需要分配IO资源,也能完成正常的功能,因此,取消对PCI设备分配IO资源的操作。可以理解的是,本步骤中,仅仅是取消了对PCI设备的IO资源分配,并不代表取消内存资源的分配,需要根据PCI设备的具体应用场景确定,可参见现有技术,本实施例不再赘述。
[0052] 可以,当PCI设备与GPU服务器连接时,可以消耗IO资源,对于在BIOS执行时IO资源紧张的现状进行了改善。
[0053] S13:按照预定分配规则对PCI设备分配IO资源和内存资源。
[0054] 当S11的判断结果为否时,则表明PCI设备未与GPU服务器连接,因此,该种情况下若不为PCI设备分配IO资源,则无法完成PCI设备正常的功能。需要说明的是,预定规则需要预先设置,具体如何设置,可参见现有技术,本实施例不再赘述。
[0055] 本发明实施例提供的根据PCI设备的类型分配资源的方法,在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息,之所以是执行BIOS的开机过程是因为,在执行BIOS时,IO资源有限,因此本方法其实只是针对在执行BIOS的开机过程中的PCI设备的资源分配。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本方法可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。
[0056] 图2为本发明实施例提供的另一种根据PCI设备的类型分配资源的方法的流程图。如图2所示,在上一实施例的基础上,在S11之前,还包括:
[0057] S20:获取PCI设备的数量。
[0058] S21:判断PCI设备的数量是否达到预定值,如果是,则进入S11。
[0059] 需要说明的是,PCI设备的数量越多,则可能需要的IO资源越多,才会造成IO资源无法满足的情况,但是对于某些应用场景来说,系统中的PCI设备的数量并不多,例如只有8个,在这种情况下,即使在BIOS开机过程中,每个PCI设备所需要的IO资源也是够分配的,因此,针对这种情况,也可以按照现有技术的方式对PCI设备进行IO资源和内存资源的分配,换句话说,这种情况下,不需要判断是否与GPU服务器连接,只有在PCI设备的数量过多,造成IO资源无法正常分配时,才需要判断是否与GPU服务器连接。
[0060] 可以理解的是,预定值需要根据实际情况选取,例如对于BIOS开机过程中只有64K IO资源可用,且每个PCI设备分配4K的情况时,则PCI设备的数量就必须小于16,因此,该种情况下,预定值就是16。
[0061] 上文对于根据PCI设备的类型分配资源的方法的实施例进行了详细描述,本发明还提供一种与该方法对应的装置。图3为本发明实施例提供的一种根据PCI设备的类型分配资源的装置的结构图。如图3所示,该装置包括:
[0062] 第一获取单元10,用于在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息。
[0063] 第一判断单元11,用于根据Switch芯片的信息判断PCI设备是否与GPU服务器连接。
[0064] 分配单元12,用于第一判断单元的判断结果为是时,则取消对PCI设备分配IO资源的操作;第一判断单元的判断结果为否时,则按照预定分配规则对PCI设备分配IO资源和内存资源。
[0065] 作为优选地实施方式,Switch芯片的信息具体包括Switch芯片的ID信息和版本信息;
[0066] 第一判断单元11用于判断是否存在Switch芯片的ID信息和版本信息,如果是,则确定PCI设备与GPU服务器连接。
[0067] 作为优选地实施方式,还包括:
[0068] 第二获取单元,用于获取PCI设备的数量;
[0069] 第二判断单元,用于判断PCI设备的数量是否达到预定值,如果是,则触发第一判断单元11。
[0070] 由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0071] 本发明实施例提供的根据PCI设备的类型分配资源的装置,在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息,之所以是执行BIOS的开机过程是因为,在执行BIOS时,IO资源有限,因此本装置其实只是针对在执行BIOS的开机过程中的PCI设备的资源分配。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本装置可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。
[0072] 本发明还提供另一种根据PCI设备的类型分配资源的装置,与上文中的装置的区别在于,上文中的装置是从功能模块化的角度进行描述,而本实施例中是从硬件实体的角度进行描述。可以理解的是,上述方法是通过相应的计算机程序实现的,而将该程序存储在存储器中,则处理器在执行时,就可以实现对应的方法。具体包括存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现如上述实施例所述的根据PCI设备的类型分配资源的方法的步骤。
[0073] 本发明实施例提供的根据PCI设备的类型分配资源的装置,包括存储器和处理器,处理器的在执行计算机程序能够实现以下方法:在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息,之所以是执行BIOS的开机过程是因为,在执行BIOS时,IO资源有限,因此本装置其实只是针对在执行BIOS的开机过程中的PCI设备的资源分配。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本装置可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。
[0074] 最后,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例所述的根据PCI设备的类型分配资源的方法的步骤。
[0075] 上文中提到的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0076] 本发明实施例提供的计算机可读存储介质,用于实现以下方法:在执行BIOS的开机过程中,获取PCI枚举操作中抓取到的Switch芯片的信息,之所以是执行BIOS的开机过程是因为,在执行BIOS时,IO资源有限,因此本装置其实只是针对在执行BIOS的开机过程中的PCI设备的资源分配。然后根据Switch芯片的信息判断PCI设备是否与GPU服务器连接;如果是,则取消对PCI设备分配IO资源的操作;如果否,则按照预定分配规则对PCI设备分配IO资源和内存资源。本方法中以Switch芯片的信息来判断PCI设备是否与GPU服务器连接,从而确定是否需要IO资源的分配,由此可见,相对于现有技术中资源分配的方法而言,本装置可以在IO资源紧张时,有选择的对PCI设备取消IO资源的分配,且能够保证PCI设备的正常使用。
[0077] 以上对本发明所提供的根据PCI设备的类型分配资源的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0078] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。