设备启动方法、装置及计算机可读存储介质与流程

文档序号:26139108发布日期:2021-08-03 14:22阅读:102来源:国知局
设备启动方法、装置及计算机可读存储介质与流程

本申请涉及服务器技术领域,特别是涉及一种设备启动方法、装置及计算机可读存储介质。



背景技术:

pcie设备(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)要想正常工作,需要bios(baseinputoutputsystem,基本输入输出系统)对其进行初始化,分配资源,加载optionrom等,bios为pcie设备分配的资源类型包括i/o(input/output,输入输出)和mmio(memorymappedinputoutput,内存映射i/o),其中mmio又分为32bit(32位)、64bit(64位)、32bitprefetchable(32位可预取)、64bitprefetchable(64位可预取)、32bitnonprefetchable(32位不可预取)、64bitnonprefetchable(64位不可预取)等类型。bios在对设备进行初始化的过程中,会根据pci(peripheralcomponentinterconnect,外设部件互连标准)/pcie规范规定的规则,与设备进行互动,获取设备需要的资源的种类及大小,并为设备分配相应种类和大小的资源,以满足设备正常工作的需求。

在有些服务器机型上,会设置switch设备(交换设备),通过switch设备再转接出pcie插槽,通过pcie插槽与网卡、gpu卡(graphicsprocessingunit,图形处理器)、显卡、raid(redundantarraysofindependentdisks,磁盘阵列)卡、nvme(non-volatilememoryexpress)等设备相连,bios需要为这些设备分配合适种类和大小的资源,来保证设备能正常工作。

对于设计有switch拓扑结构的服务器,gpu所需要的mmio资源为64bitprefetchable类型,且其在32bitprefetchable类型的资源中不能正常工作,甚至不能被正常识别。为优先保障主要设备gpu的正常工作,bios会优先为gpu分配64bitprefetchable类型的资源,作为处于同一个switch/pciebridge转接出来的pcie插槽上的网卡,也只能得到64bitprefetchable类型的mmio。但是,对于某些网卡,如intel出品的所有网卡,在bios的legacy启动模式下,网卡需要32bitprefetchable或32bitnonprefetchable类型的资源才能正常工作。而由于业界规范设计的局限,同一个switch/pciebridge下,64bitprefetchable和32bitprefetchable两种mmio类型是互斥的,只能存在一种,这样为优先保障gpu正常工作,bios已经分配了64bitprefetchable类型的mmio的情况下,网卡无法得到32bitprefetchable类型的mmio,从而导致网卡不能正常工作,例如无法执行pxe(prebootexecutionenvironment,预启动执行环境)。

鉴于此,如何解决相关技术中为优先保障gpu等高价值设备正常工作,而使网卡在bios的legacy启动模式下需要的资源类型与gpu冲突而导致的网卡不能正常工作的现状,是所属领域技术人员需要解决的技术问题。



技术实现要素:

本申请提供了一种设备启动方法、装置及计算机可读存储介质,解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种设备启动方法,包括:

预先将切换资源类型的配置文件刷写在pcie设备的网卡中,以将所述网卡的资源类型由当前资源类型转换为与目标设备的资源类型相兼容的目标资源类型;所述网卡与所述目标设备均连接在由switch设备转接的pcie插槽中;

在对所述网卡进行初始化过程中,获取所述网卡所需资源类型与资源占用空间信息,所述网卡所需资源类型为所述目标资源类型;

基于所述目标资源类型和所述资源占用空间信息,为所述网卡分配相匹配资源。

可选的,所述获取所述网卡所需资源类型与资源占用空间信息,包括:

从位于所述pcie设备的配置空间的基址寄存器读取所述网卡的资源类型。

可选的,所述从位于所述pcie设备的配置空间的基址寄存器读取所述网卡的资源类型,包括:

按照pcie规范规定的方式,通过io方式或者读内存地址空间的方式,从位于所述pcie设备的配置空间的基址寄存器读取所述网卡的资源类型。

可选的,所述获取所述网卡所需资源类型与资源占用空间信息,包括:

向位于所述pcie设备的配置空间的基址寄存器写全f值,并读取所述基址寄存器的返回值;

基于pcie规范,根据所述返回值计算所述网卡所需资源的资源长度。

可选的,所述在对所述网卡进行初始化过程中,之前还包括:

在对所述pcie设备进行初始化过程中,设置所述目标设备的调用内存功能为开启状态。

本发明实施例另一方面提供了一种设备启动装置,包括:

资源类型切换模块,用于预先将切换资源类型的配置文件刷写在pcie设备的网卡中,以将所述网卡的资源类型由当前资源类型转换为与目标设备的资源类型相兼容的目标资源类型;所述网卡与所述目标设备均连接在由switch设备转接的pcie插槽中;

资源获取模块,用于在对所述网卡进行初始化过程中,获取所述网卡所需资源类型与资源占用空间信息,所述网卡所需资源类型为所述目标资源类型;

资源分配模块,用于基于所述目标资源类型和所述资源占用空间信息,为所述网卡分配相匹配资源。

可选的,所述资源获取模块进一步用于:

从位于所述pcie设备的配置空间的基址寄存器读取所述网卡的资源类型。

可选的,所述资源获取模块进一步用于:

向位于所述pcie设备的配置空间的基址寄存器写全f值,并读取所述基址寄存器的返回值;基于pcie规范,根据所述返回值计算所述网卡所需资源的资源长度。

本发明实施例还提供了一种设备启动装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述设备启动方法的步骤。

本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有设备启动程序,所述设备启动程序被处理器执行时实现如前任一项所述设备启动方法的步骤。

本申请提供的技术方案的优点在于,切换资源类型的配置文件可将网卡本申请所需资源类型转换为与系统主要设备即目标设备所需资源类型相兼容的类型,这样在优先为目标设备分配资源类型后,且经切换资源需求类型后,网卡也可以获取使其正常工作所需的资源类型,并且可以跟目标设备所需要的资源类型共存,保证目标设备和网卡都可以正常工作,从而解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

此外,本发明实施例还针对设备启动方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种设备启动方法的流程示意图;

图2为本发明实施例提供的设备启动装置的一种具体实施方式结构图;

图3为本发明实施例提供的设备启动装置的另一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种设备启动方法的流程示意图,本实施例的执行主语为bios,本发明实施例可包括以下内容:

s101:预先将切换资源类型的配置文件刷写在pcie设备的网卡中。

在本实施例适用于具有switch交换设备的服务器拓扑结构中,也就是说,适用于具有switch交换设备的服务器中,服务器的网卡、gpu卡、显卡等均是插在经由switch交换设备转接出来的pcie槽上。换句话说,本申请的网卡和目标设备是插在同一个pcie槽上,且pcie槽是连接在switch交换设备上,并非是直接插在服务器主板上。目标设备为服务器或某一计算机系统的主要设备,如gpu卡,所谓的主要设备就是其为保障服务器工作的重要部件,服务器会为其优先分配资源,进一步来说,目标设备的资源分配要比网卡的资源分配时间要早,系统会先为目标设备优先分配资源。目标设备和网卡所需资源类型有时不兼容,为了保证目标设备和网卡可同时工作,本实施例会预先给网卡刷写资源类型切换的文件,从而将网卡的资源类型由当前资源类型转换为与目标设备的资源类型相兼容的目标资源类型。

举例来说,intel的网卡可以通过网卡的img文件(即镜像文件)或optionrom文件来配置网卡需要的资源类型为32bit、32bitprefetchable、64bit、64bitprefetchable类型的mmio,本实施例可预先向intel获取切换其出品的网卡所需要的资源类型的img文件,并通过专用工具刷写到网卡上,实现legacy启动模式下,其网卡资源种类需求由32bitprefetchable到32bitnonprefetchable或者是64bit到32bitnonprefetchable种类的转换。当然,可以根据实际需求在网卡出厂前由网卡供应商如intel刷写好相应类型的img文件;另外不排除网卡供应商有其它方式可以切换网卡所需要的资源种类,本申请对此不做任何限定。

s102:在对网卡进行初始化过程中,获取网卡所需资源类型与资源占用空间信息,网卡所需资源类型为目标资源类型。

在对pcie设备进行初始化时,bios会先为目标设备如gpu卡分配资源,相应的,bios为switch转接的目标设备正常互动,获取目标设备所需的mmio类型如64bitprefetchable及资源大小,为目标设备分配所需要的资源。为了保证设备的正常识别和正常工作,在对pcie设备进行初始化过程中,还可设置目标设备的调用内存功能为开启状态,也即保持调用内存功能如above4gdecode功能是保持开启的。

在为目标设备分配好资源之后,为了减少对存储器的访问次数,提高数据处理效率,可使用基址寄存器存放操作数或中间结果。对网卡进行初始化,本实施例可从pcie设备的配置空间的基址寄存器中读取网卡的资源类型。具体的,可按照pcie规范规定的方式,通过io方式或者读内存地址空间的方式,从位于pcie设备的配置空间的基址寄存器读取网卡的资源类型。由于在s101中已经对网卡的资源类型进行了转换,故本步骤中获取的资源类型不是网卡自身所需求的资源类型,而是经切换资源类型的配置文件处理后的目标资源类型。bios可按照pcie规范规定通过向位于pcie设备的配置空间的基址寄存器写全f值,并读取基址寄存器的返回值,然后基于pcie规范所规定的算法根据返回值计算得到网卡所需资源的资源长度。

s103:基于目标资源类型和资源占用空间信息,为网卡分配相匹配资源。

举例来说,以配置文件为img文件,网卡经img文件处理后的目标资源类型为32bitnonprefetchable为例阐述bios与网卡互动,获取其所需的资源种类和大小,并为其分配所需的资源的过程:

按照pcie规范规定的方式,bios通过io方式或者读内存地址空间的方式,去读位于设备的配置空间header(头部)部分的baseaddressregisters寄存器(基址寄存器),根据规范说明的方式,判断所需资源类型,读到网卡的内存类型baseaddressregister的值的bit0-3将会是二进制0000,表明资源种类是32bitnonprefetchable;然后在按规范规定的方式经过往该寄存器写全f值,读取返回值,并经过规定的算法计算,获得所需的资源长度;最后bios按需要给网卡设备分配所需长度的32bitnonprefetchable类型的mmio资源。

在本发明实施例提供的技术方案中,切换资源类型的配置文件可将网卡本申请所需资源类型转换为与系统主要设备即目标设备所需资源类型相兼容的类型,这样在优先为目标设备分配资源类型后,且经切换资源需求类型后,网卡也可以获取使其正常工作所需的资源类型,并且可以跟目标设备所需要的资源类型共存,保证目标设备和网卡都可以正常工作,从而解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。

为了使所属领域技术人员更加清楚明白本申请的技术方案,本申请还以一个示意性例子阐述本申请整个技术方案,本实施例例如可应用于服务器,服务器安装intel网卡和gpu卡,intel网卡和gpu卡安装在通过switch设备转接的pcie插槽中,在bios的legacy启动模式下,网卡需要32bitprefetchable类型的mmio资源,gpu卡需要64bitprefetchable类型的mmio资源,可包括以下内容:

a1:向intel获取切换其出品的网卡所需要的资源类型的img文件,并通过专用工具刷写到网卡上,实现legacy启动模式下,其网卡资源种类需求由32bitprefetchable到32bitnonprefetchable种类的转换。

在本步骤中,intel可以通过网卡的img文件(镜像文件)或optionrom文件,来配置网卡需要的资源类型为32bit还是32bitprefetchable类型的mmio,而同一个switch/pciebridge下,32bitnonprefetchable和64bitprefetchable类型的mmio是可以同时存在的。

a2:在对pcie设备进行初始化时,bios为switch设备转接的gpu设备正常互动,获取gpu所需的64bitprefetchable的mmio类型及大小,为gpu分配所需要的资源,并保持above4gdecode功能是保持开启状态。

a3:bios在初始化网卡时,与网卡互动,按照pcie规范规定的方式,bios通过io方式读取基址寄存器的资源类型数据,然后按pcie规范规定的方式经过往该寄存器写全f值,读取返回值,并经过规定的算法计算,获得所需的资源长度,最后bios按需给网卡分配所需长度的32bitnon-prefetchable类型的mmio资源。

a4:bios照常完成对设备的其它初始化动作、加载设备optionrom等。

此外,需要说明的是,本申请技术方案和逻辑可以有类似需求的场景中,包括但不限于bios、os、各种软件、固件、驱动等等,相应领域技术人员可根据实际应用场景灵活调整并使用。

由上可知,经切换资源需求类型后,网卡可以获取其所需的资源类型,并且可以跟gpu所需要的资源类型共存,这样gpu和网卡都可以获得其所需的资源类型,这样处理后,经过switch转接的gpu和intel出品的网卡,在legacy模式下将都可以正常工作。从而解决了为优先保障gpu等高价值设备正常工作,而使已知有intel的所有网卡,因为在legacy模式下需要的资源类型与gpu冲突而导致的网卡不能正常工作如进行pxe的业界规范设计难题,提高了服务器产品的竞争力,提升用户满意度。

本发明实施例还针对设备启动方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的设备启动装置进行介绍,下文描述的设备启动装置与上文描述的设备启动方法可相互对应参照。

基于功能模块的角度,参见图2,图2为本发明实施例提供的设备启动装置在一种具体实施方式下的结构图,该装置可包括:

资源类型切换模块201,用于预先将切换资源类型的配置文件刷写在pcie设备的网卡中,以将网卡的资源类型由当前资源类型转换为与目标设备的资源类型相兼容的目标资源。;

资源获取模块202,用于在对网卡进行初始化过程中,获取网卡所需资源类型与资源占用空间信息,网卡所需资源类型为目标资源类型。

资源分配模块203,用于基于目标资源类型和资源占用空间信息,为网卡分配相匹配资源。

可选的,在本实施例的一些实施方式中,上述资源获取模块202可进一步用于:

从位于pcie设备的配置空间的基址寄存器读取网卡的资源类型。

作为本实施例的一种可选实施方式,上述资源获取模块202还可进一步用于:按照pcie规范规定的方式,通过io方式或者读内存地址空间的方式,从位于pcie设备的配置空间的基址寄存器读取网卡的资源类型。

作为本实施例的另一种可选实施方式,上述资源获取模块202还可进一步用于:向位于pcie设备的配置空间的基址寄存器写全f值,并读取基址寄存器的返回值;基于pcie规范,根据返回值计算网卡所需资源的资源长度。

可选的,在本实施例的另一些实施方式中,上述装置例如还可以包括目标设备功能设置模块,用于在对pcie设备进行初始化过程中,设置目标设备的调用内存功能为开启状态。

本发明实施例所述设备启动装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

上文中提到的设备启动装置是从功能模块的角度描述,进一步的,本申请还提供一种设备启动装置,是从硬件角度描述。图3为本申请实施例提供的另一种设备启动装置的结构图。如图3所示,该装置包括存储器30,用于存储计算机程序;处理器31,用于执行计算机程序时实现如上述任一实施例提到的设备启动方法的步骤。

其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的设备启动方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括windows、unix、linux等。数据303可以包括但不限于设备启动结果对应的数据等。

在一些实施例中,设备启动装置还可包括有显示屏32、输入输出接口33、通信接口34或者称为网络接口、电源35以及通信总线36。其中,显示屏32、输入输出接口33比如键盘(keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。显示器也可以适当的称为显示屏或显示单元,用于显示在设备启动装置中处理的信息以及用于显示可视化的用户界面。通信接口34可选的可以包括有线接口和/或无线接口,如wi-fi接口、蓝牙接口等,通常用于在该设备启动装置与其他电子设备之间建立通信连接。通信总线36可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本领域技术人员可以理解,图3中示出的结构并不构成对设备启动装置的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器37。

本发明实施例所述设备启动装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

可以理解的是,如果上述实施例中的设备启动方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、磁碟或者光盘等各种可以存储程序代码的介质。

基于此,本发明实施例还提供了一种计算机可读存储介质,存储有设备启动程序,所述设备启动程序被处理器执行时如上任意一实施例所述设备启动方法的步骤。

本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例解决了相关技术中网卡在bios的legacy启动模式下由于所需资源类型与已分配资源类型冲突导致无法正常工作的技术问题,保障设备的正常启动和稳定运行。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本申请所提供的一种设备启动方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1