CN115016851A - Bios加载方法、桥接芯片、bmc、设备及其主板 - Google Patents
Bios加载方法、桥接芯片、bmc、设备及其主板 Download PDFInfo
- Publication number
- CN115016851A CN115016851A CN202210657325.1A CN202210657325A CN115016851A CN 115016851 A CN115016851 A CN 115016851A CN 202210657325 A CN202210657325 A CN 202210657325A CN 115016851 A CN115016851 A CN 115016851A
- Authority
- CN
- China
- Prior art keywords
- bus interface
- bios
- firmware program
- bmc
- cpu
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种BIOS加载方法、桥接芯片、BMC、设备及其主板。在本申请实施例中,提供一种新型的设备主板,在该设备主板上同时包括CPU和BMC,且BMC与存储BIOS固件程序的BIOS存储器互联,能够从BIOS存储器中读取BIOS固件程序并写入其共享内存中;另外,CPU通过桥接芯片分别与BIOS和BMC互联,且桥接芯片与BMC互联的总线接口的传输速率高于桥接芯片与BIOS存储器互联的总线接口的传输速率,因此,在开机过程中,通过将BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,使得能够借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序给CPU执行,可以减少加载BIOS的时间开销,有利于提高开机速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种BIOS加载方法、桥接芯片、BMC、设备及其主板。
背景技术
随着服务器的功能日益强大、复杂,其基于输入输出系统(Basic Input OutputSystem,BIOS)固件程序越来越大,BIOS固件程序通常存储在闪存(Flash)里面。目前,Flash一般采用串行外设接口(Serial Peripheral Interface,SPI)等低速接口与服务器中的处理器(Central Processing Unit,CPU)互联。在服务器开机的过程中,CPU会频繁访问存储BIO固件程序的Flash,这会带来大量的时间开销,导致服务器的开机速度较慢,故需要对服务器开机过程进行优化。
发明内容
本申请的多个方面提供一种BIOS加载方法、桥接芯片、BMC、设备及其主板,用以减少加载BIOS的时间开销,提高服务器的开机速度。
本申请实施例提供一种设备主板,包括:
处理器CPU;
桥接芯片,通过第一总线接口与CPU互联;
BIOS存储器,通过第二总线接口与所述桥接芯片互联,用于存储BIOS固件程序;
基板管理控制器BMC,通过第二总线接口与所述BIOS存储器互联,并通过第三总线接口与所述桥接芯片互联,用于从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
所述桥接芯片,用于在开机过程中,将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,并经所述第一总线接口提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种BIOS加载方法,适用于桥接芯片,所述桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
在开机过程中,将BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;
在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令;所述BMC预先从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
经所述第一总线接口将从所述共享内存中读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种BIOS加载方法,适用于基板管理控制器BMC,所述BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
通过所述第二总线接口从所述BIOS存储器中读取BIOS固件程序,并写入共享内存中;以及
根据所述桥接芯片的读请求,从所述共享内存中读取所述BIOS固件程序中的代码指令,并通过所述第三总线接口提供给所述桥接芯片,以使所述桥接芯片提供给与其互联的CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种桥接芯片,该桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联;所述桥接芯片包括:
重定向模块,用于在开机过程中,将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;
读取模块,用于在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令;所述BMC预先从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
发送模块,用于经所述第一总线接口将所述读取模块读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种基板管理控制器BMC,该BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,所述BMC包括:
读取模块,用于通过所述第二总线接口从所述BIOS存储器中读取BIOS固件程序,并写入共享内存中;以及
提供模块,用于根据所述桥接芯片的读请求,从所述共享内存中读取所述BIOS固件程序中的代码指令,并通过所述第三总线接口提供给所述桥接芯片,以使所述桥接芯片提供给与其互联的CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种设备主板,包括:
处理器CPU;
桥接芯片,通过第一总线接口与CPU互联;
BIOS存储器,通过第二总线接口与所述桥接芯片互联,用于存储BIOS固件程序;
基板管理控制器BMC,通过第二总线接口与所述BIOS存储器互联,并通过第三总线接口与所述桥接芯片互联,用于从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
所述桥接芯片,用于在开机过程中,根据CPU开机上电后提供的所述BIOS固件程序的入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,经所述第一总线接口提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率,且所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间。
本申请实施例还提供一种BIOS加载方法,适用于桥接芯片,所述桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
在开机过程中,接收CPU开机上电后提供的所述BIOS固件程序的入口地址;所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间;
根据所述入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,所述BMC预先从所述BIOS存储器中读取所述BIOS固件程序并写入其共享内存中;
经所述第一总线接口将从所述共享内存中读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种桥接芯片,该桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联;所述桥接芯片包括:
接收模块,用于在开机过程中,接收CPU开机上电后提供的所述BIOS固件程序的入口地址;所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间;
读取模块,用于根据所述入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,所述BMC预先从所述BIOS存储器中读取所述BIOS固件程序并写入其共享内存中;
发送模块,用于经所述第一总线接口将所述读取模块读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
本申请实施例还提供一种电子设备,包括本申请实施例提供的任一种设备主板。
在本申请实施例中,提供一种新型的设备主板,在该设备主板上同时包括CPU和BMC,且BMC与存储BIOS固件程序的BIOS存储器互联,能够从BIOS存储器中读取BIOS固件程序并写入其共享内存中;另外,CPU通过桥接芯片分别与BIOS和BMC互联,且桥接芯片与BMC互联的总线接口的传输速率高于桥接芯片与BIOS存储器互联的总线接口的传输速率,因此,在设备开机过程中,通过将桥接芯片读取BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,使得能够借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种设备主板的结构示意图;
图1b为从软件层面实现重定向时分阶段进行BIOS加载的过程示意图;
图2为本申请示例性实施例提供的一种桥接芯片的结构示意图;
图3为本申请示例性实施例提供的一种BMC的结构示意图;
图4a为本申请示例性实施例提供的一种适用于桥接芯片的BIOS加载方法的流程示意图;
图4b为本申请示例性实施例提供的一种适用于BMC的BIOS加载方法的流程示意图;
图5a为本申请示例性实施例提供的另一种设备主板的结构示意图;
图5b为图5a所示设备主板在开机过程中加载BIOS固件程序的过程示意图;
图6为本申请示例性实施例提供的另一种桥接芯片的结构示意图;
图7为本申请示例性实施例提供的另一种适用于桥接芯片的BIOS加载方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有BIOS开机过程较慢的技术问题,在本申请实施例中,提供一种新型的设备主板,在该设备主板上同时包括CPU和BMC,且BMC与存储BIOS固件程序的BIOS存储器互联,能够从BIOS存储器中读取BIOS固件程序并写入其共享内存中;另外,CPU通过桥接芯片分别与BIOS和BMC互联,且桥接芯片与BMC互联的总线接口的传输速率高于桥接芯片与BIOS存储器互联的总线接口的传输速率,因此,在设备开机过程中,通过将桥接芯片读取BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,使得能够借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的一种设备主板的结构示意图。该设备主板可以应用于任何电子设备,例如可以应用但不限于:服务器设备、终端设备、智能穿戴设备、家用电器设备等各种电子设备中。其中,服务器设备可以是常规服务器、云服务器、服务器阵列等。如图1a所示,该设备主板100包括:CPU 101、桥接芯片102、BIOS存储器103和基板管理控制器(Baseboard Management Controller,BMC)104。
在本实施例中,桥接芯片102是CPU 101与BIOS存储器103和BMC 104之间的桥梁,负责将CPU 101与BIOS存储器103和BMC 104进行互联。如图1a所示,桥接芯片102通过第一总线接口与CPU 101互联;另外,桥接芯片102还会通过第二总线接口与BIOS存储器103互联,并通过第三总线接口与BMC 104互联,最终达到CPU 101与BIOS存储器103和BMC 104互联的目的。另外,BMC 104还会通过第二总线接口与BIOS存储器103互联。在本实施例中,并不限定第一总线接口、第二总线接口和第三总线接口的实现方式,只要满足第三总线接口的传输速率高于第二总线接口的传输速率即可。
在一可选实施例中,第一总线接口可以采用直接媒体接口(Direct MediaInterface,DMI),即CPU 101通过DMI与桥接芯片102互联。在本实施例中,并不限定桥接芯片102的实现形态,例如可以实现为一种新型的PCH,即南桥芯片(South Bridge),或者实现为具有桥接功能的其它芯片。相应地,在一可选实施例中,第二总线接口可以采用串行外设接口(Serial Peripheral Interface,SPI),或者远程过程调用(Remote Procedure Call,RPC)接口,或者I2C接口等等。相应地,在一可选实施例中,第三总线接口可以采用但不限于:高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIE)。在一优选实施例中,如图1a所示,第一总线接口为DMI接口,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在本实施例中,BIOS存储器103用于存储BIOS固件程序,在实现形态上,可以是任何非易于失性存储器,例如可以是闪存存储器(Flash memory)。在本实施例中,BMC 104首先具有其基本的基板管理功能,例如系统健康状态监测,安全远程重启,安全重新上电,LAN警告,BIOS保护和选择等等。除此之外,在本实施例中,BMC 104还可以通过其与BIOS存储器103之间的第二总线接口,从BIOS存储器103中读取BIOS固件程序并写入其共享内存中,并负责维护BIOS存储器103中BIOS固件程序和共享内存中BIOS固件程序的同步。进一步可选地,BMC 104可以采用异步方式从BIOS存储器103中读取BIOS固件程序并写入其共享内存中。
在本实施例中,BIOS固件程序是一组固化到设备主板上BIOS存储器103中的系统程序,它对于设备主板所属电子设备的正常初始化、启动和操作系统引导起着不可或缺的作用。在设备主板应用于任何电子设备的情况下,设备主板上的CPU 101可以逐步加载BIOS固件程序中的代码指令,并执行BIOS固件程序中的代码指令逐渐完成电子设备的开机操作。在本实施例中,桥接芯片102除了作为CPU 101与BIOS存储器103和BMC 104之间的桥梁,还可以在开机过程中协助CPU 101读取BIOS固件程序。
在本实施例中,在BMC 104及其能够从BIOS存储器103中读取BIOS固件程序并写入其共享内存中的基础上,桥接芯片102不再像传统方案那样直接从BIOS存储器103中读取BIOS固件程序中的代码指令并提供给CPU 101,而是增加了重定向功能,能够在开机过程中将用于读取BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口,并且,在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之后,能够通过第三总线接口从BMC 104的共享内存中读取BIOS固件程序中的代码指令,并经第一总线接口提供给CPU 101执行。基于该重定向功能,桥接芯片102能够借助于传输速率更高的第三总线接口从BMC104的共享内存中读取BIOS固件程序中的代码指令给CPU 101执行,相比于通过第二总线接口从BIOS存储器103中读取BIOS固件程序中的代码指令,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
在本申请实施例中,关于桥接芯片102的重定向功能,可以从软件层面实现,也可以从硬件层面实现。下面将分别进行介绍说明:
在从软件层面实现重定向功能的实施例中,需要先将第三总线接口的地址空间初始化为指向BMC 104的共享内存中的存储空间,基于此,桥接芯片102实现重定向功能的方式为:在第三总线接口的地址空间被初始化为指向BMC 104的共享内存中的存储空间的情况下,将CPU 101提供的BIOS固件程序中下一条代码指令的地址信息映射到第三总线接口的地址空间中,以达到将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口的目的。
需要说明的是,在从软件层面实现重定向功能的实施例中,在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之前,桥接芯片102需要通过第二总线接口从BIOS存储器103中读取BIOS固件程序中的代码指令,并经第一总线接口提供给CPU 101执行。对CPU 101来说,在进入BIOS固件程序的执行逻辑之后,在执行当前代码指令的过程中,会根据BIOS固件程序中设定的执行逻辑请求桥接芯片102为其读取下一条代码指令。对CPU101来说,并不会考虑其当前执行的代码指令是桥接芯片102通过第二总线接口从BIOS存储器103中读取的还是通过第三总线接口从BMC 104的共享内存中读取的,在其执行当前代码指令的过程,如果代码逻辑中设定了需要下一条代码指令,CPU 101都会向桥接芯片102提供下一条代码指令的地址信息,以使桥接芯片102根据下一条代码指令的地址信息为其读取下一条代码指令。
对桥接芯片102而言,如果是在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之前,获取到CPU 101提供的BIOS固件程序中下一条代码指令的地址信息,则根据CPU 101提供的下一条代码指令的地址信息,通过第二总线接口从BIOS存储器103中读取下一条代码指令,并经第一总线接口提供给CPU 101执行;如果是在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之后,获取到CPU 101提供的BIOS固件程序中下一条代码指令的地址信息,则根据CPU 101提供的下一条代码指令的地址信息,通过第三总线接口从BMC 104的共享内存中读取下一条代码指令,并经第一总线接口提供给CPU 101执行。
其中,在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之后,桥接芯片102根据CPU 101提供的下一条代码指令的地址信息,通过第三总线接口从BMC 104的共享内存中读取下一条代码指令的一种实施方式为:桥接芯片102接收CPU 101在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;根据CPU101提供的下一条代码指令的地址信息向BMC 104发送读请求,以使BMC 104从其共享内存中读取BIOS固件程序中的下一条代码指令;接收BMC 104返回的所读取的下一条代码指令。对BCM来说,还会通过第三总线接口接收桥接芯片102发送的读请求,根据该读请求从其共享内存中读取CPU 101需要的下一条代码指令,并通过第三总线接口返回给桥接芯片102。桥接芯片102接收到BMC 104返回的下一条代码指令之后,经第一总线接口将该下一条代码指令提供给CPU101执行。
进一步,上述根据CPU 101提供的下一条代码指令的地址信息向BMC 104发送读请求的详细实施过程包括:桥接芯片102对CPU 101提供的下一条代码指令的地址信息进行解析,并按照其内存映射逻辑,将该下一条代码指令的地址信息映射到第三总线接口的地址空间中;进而根据第三总线接口的地址空间中被映射到的地址信息生成读请求,将该读请求发送给BMC 104,使得BMC 104能够根据该读请求中的地址信息从其共享内存中读取下一条代码指令。由于第三总线接口的地址空间指向BMC 104的共享内存中的存储空间,故第三总线接口的地址空间中被映射到的地址信息指向BMC 104的共享内存中的具体存储位置,在本实施例中,具体指向共享内存中存储下一条代码指令的存储位置。
在上述实施例中,在将读取接口重定向到第三总线接口之前,需要先将第三总线接口的地址空间初始化为指向BMC 104的共享内存中的存储空间。在本实施例中,由CPU101执行BIOS固件程序中负责芯片初始化的代码指令,从软件层面对第三总线接口的地址空间进行初始化,并使之指向BMC 104的共享内存中的存储空间。具体地,桥接芯片102还用于:在将上述读取接口重定向到第三总线接口之前,可以多次根据CPU 101提供的BIOS固件程序中下一条代码指令的地址信息,通过第二总线接口从BIOS存储器103中读取下一条指令,并经第一总线接口提供给CPU 101执行,直至根据CPU 101提供的下一条代码指令的地址信息通过第二总线接口从BIOS存储器103中读取到负责芯片初始化的代码指令,并经第一总线接口将所读取的负责芯片初始化的代码指令提供给CPU 101执行。对CPU 101来说,执行负责芯片初始化的代码指令,可以完成各个芯片的初始化操作,至少包括初始化桥接芯片102上第三总线接口的地址空间,使之指向BMC104的共享内存中的存储空间。在将第三总线接口的地址空间初始化为指向BMC 104的共享内存中的存储空间之后,桥接芯片102就可以将CPU 101后续提供的BIOS固件程序中下一条代码指令的地址信息映射到第三总线接口的地址空间中,以实现将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口的目的,也就可以通过第三总线接口从BMC 104的共享内存中读取BIOS固件程序中的代码指令。
进一步地,在从软件层面实现重定向功能的实施例中,在开机上电过程中,CPU101在开机上电后会提供BIOS程序代码的入口地址,该入口地址默认指向第二总线接口的地址空间,第二总线接口的地址空间默认指向BIOS存储器103中的存储空间。这样,在开始上电的初始阶段,桥接芯片102会接收CPU 101在开机上电后提供的BIOS程序代码的入口地址;根据该入口地址,通过第二总线接口从BIOS存储器103中读取BIOS固件程序中的首条代码指令,并经第一总线接口提供给CPU 101执行,以使CPU 101进入BIOS固件程序的执行逻辑。CPU 101在执行BIOS固件程序的过程中,不断向桥接芯片102提供下一条代码指令的地址信息;在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之前,桥接芯片102根据CPU 101提供的下一条代码指令的地址信息,通过第二总线接口从BIOS存储器103中读取下一条代码指令,并经第一总线接口提供给CPU 101执行;在将用于读取BIOS固件程序的读取接口重定向到第三总线接口之后,桥接芯片102根据CPU 101提供的下一条代码指令的地址信息,通过第三总线接口从BMC 104的共享内存中读取下一条代码指令,并经第一总线接口提供给CPU 101执行。关于详细实施过程,可参见前述实施例,在此不再赘述。
需要说明的是,根据操作系统的不同,基于BIOS固件程序开机的过程会包括不同阶段。在一可选实施例中,以统一可扩展固件接口(Unified Extensible FirmwareInterface,UEFI)版本的固件开机过程为例,如图1b所示,该过程依序包括:安全验证(SEC)阶段、EFI前期初始化阶段(PEI)、驱动执行环境(DXE)、启动设备选择(BDS)、操作系统加载前期(TSL)、运行时间(Run Time,RT)、灾难恢复(AL)。进一步,如图1b所示,在EFI前期初始化阶段进一步依序包括:CPU初始化、芯片初始化和主板初始化。关于图1b所示各阶段的详细实现,可参见UEFI的现有资料,在此不再赘述。在一可选实施例中,在芯片初始化及其之前的阶段中,桥接芯片102可以通过第二总线接口从BIOS存储器103中读取BIOS固件程序中的代码指令;在芯片初始化完成之后,桥接芯片102可以重定向到第三总线接口,这样在芯片初始化之后的阶段中,桥接芯片102通过第三总线接口从BMC 104中的共享内存中读取BIOS固件程序中的代码指令。但需要说明的是,在图1b所示实施例中,是以芯片初始化为分割点的,但并不限于此,例如,芯片初始化之后的任一阶段也可以作为分割点,在该分割点之后的阶段中,桥接芯片102通过第三总线接口从BMC 104中的共享内存中读取BIOS固件程序中的代码指令。
在从硬件层面实现重定向功能的实施例中,可以从硬件上对CPU 101和桥接芯片102进行改进,让BIOS固件程序的入口地址默认指向第三总线接口的地址空间,并在硬件层面完成初始化操作,使得第三总线接口的地址空间默认指向BMC 104的共享内存中的存储空间。在此基础上,CPU 101在开机上电后可向桥接芯片102提供BIOS固件程序的入口地址;对桥接芯片102来说,桥接芯片102具体可根据CPU 101开机上电后提供的BIOS固件程序的入口地址,将用于读取BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口。换句话说,在该实施例中,桥接芯片102用于读取BIOS固件程序的读取接口默认是第三总线接口,也就是说,可以默认已经完成了从第二总线接口到第三总线接口的重定向;之后,可以直接通过第三总线接口从BMC 104的共享内存中读取BIOS固件程序中的代码指令,并经第一总线接口提供给CPU 101执行。在该实施例中,关于其它描述与前述实施例相同或相似,可参见前述实施例,在此不再赘述。
在本申请上述实施例中,在开机过程中,可以将对BIOS存储器(例如Flash)的访问速度从第二总线接口(如SPI)提升到第三总线接口(如PCIE)的速度,可以带来几倍甚至数十倍的速率提升,可缩短加载BIOS的耗时,使开机过程得到优化,提高开机速度。
本申请实施例除了提供上述设备主板之外,还提供一种桥接芯片,该桥接芯片可以应用到但不限于图1a所示实施例提供的设备主板中。本实施例提供的桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与CPU、BMC以及存储BIOS固件程序的BIOS存储器互联,详细互联关系可参见前述实施例,在此不再赘述。本申请实施例提供的桥接芯片的实现结构,如图2所示,包括:重定向模块21、读取模块22和发送模块23。
重定向模块21,用于在开机过程中,将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口。
读取模块22,用于在将读取接口重定向到所述第三总线接口之后,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令;其中,BMC会预先从BIOS存储器中读取BIOS固件程序并写入其共享内存中。
发送模块23,用于经第一总线接口将读取模块22读取的代码指令提供给CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一优选实施例中,第一总线接口为DMI接口,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,重定向模块21具体用于:在第三总线接口的地址空间被初始化为指向BMC的共享内存中的存储空间的情况下,将CPU提供的BIOS固件程序中下一条代码指令的地址信息映射到第三总线接口的地址空间中,以将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口。
在一可选实施例中,读取模块22还用于:在将读取接口重定向到第三总线接口之前,根据CPU提供的BIOS固件程序中下一条代码指令的地址信息,通过第二总线接口从BIOS存储器中读取负责芯片初始化的代码指令。相应地,发送模块23,还用于经第一总线接口将读取模块22读取的负责芯片初始化的代码指令提供给CPU执行,以使CPU初始化第三总线接口的地址空间,使之指向BMC的共享内存中的存储空间。
在一可选实施例中,读取模块22还用于:接收CPU在开机上电后提供的BIOS程序代码的入口地址,该入口地址默认指向第二总线接口的地址空间,第二总线接口的地址空间默认指向BIOS存储器中的存储空间;根据该入口地址,通过第二总线接口从BIOS存储器中读取BIOS固件程序中的首条代码指令。相应地,发送模块23还用于:经第一总线接口将读取模块22读取的首条代码指令提供给CPU执行,以使CPU进入BIOS固件程序的执行逻辑。
在一可选实施例中,在将读取接口重定向到第三总线接口之后,读取模块22在通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令时,具体用于:在将读取接口重定向到第三总线接口之后,接收CPU在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;根据下一条代码指令的地址信息向BMC发送读请求,以使BMC从其共享内存中读取下一条代码指令;接收BMC返回的下一条代码指令。相应地,发送模块23还用于:经第一总线接口将读取模块22接收到的下一条代码指令提供给CPU执行。
采用本实施例的桥接芯片,在设备开机过程中,能够将读取BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,使得能够借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
进一步,本申请实施例还提供一种BMC,该BMC可应用但不限于上述实施例提供的设备板卡中,并且BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,关于详细互联关系可参见前述实施例的描述,在此不再赘述。如图3所示,本实施例提供的BMC包括:读取模块31和提供模块32。
读取模块31,用于通过第二总线接口从BIOS存储器中读取BIOS固件程序,并写入共享内存中。
提供模块32,用于根据桥接芯片的读请求,从共享内存中读取BIOS固件程序中的代码指令,并通过第三总线接口提供给桥接芯片,以使桥接芯片提供给与其互联的CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一可选实施例中,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,读取模块31具体用于:采用异步方式通过第二总线接口从BIOS存储器中读取BIOS固件程序,并写入共享内存中。
采用本实施例的BMC,在设备开机过程中,能够配合桥接芯片,使得桥接芯片将读取BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,进而借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
进一步,本申请实施例还提供一种适用于桥接芯片的BIOS加载方法,其中,桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与CPU、BMC以及存储BIOS固件程序的BIOS存储器互联,关于详细互联方式可参见前述实施例。如图4a所示,该BIOS加载方法包括:
41a、在开机过程中,将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口,桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与CPU、BMC以及BIOS存储器互联;
42a、在将读取接口重定向到第三总线接口之后,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令;其中,BMC预先从BIOS存储器中读取BIOS固件程序并写入其共享内存中;
43a、经第一总线接口将从共享内存中读取的代码指令提供给CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一可选实施例中,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,在开机过程中,将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口的实施方式,包括:
在开机过程中,在第三总线接口的地址空间被初始化为指向BMC的共享内存中的存储空间的情况下,将CPU提供的BIOS固件程序中下一条代码指令的地址信息映射到第三总线接口的地址空间中,以将BIOS固件程序的读取接口从第二总线接口重定向到第三总线接口。
在一可选实施例中,在将读取接口重定向到第三总线接口之前,该方法还包括:根据CPU提供的BIOS固件程序中下一条代码指令的地址信息,通过第二总线接口从BIOS存储器中读取负责芯片初始化的代码指令;经第一总线接口将负责芯片初始化的代码指令提供给CPU执行,以使CPU初始化第三总线接口的地址空间,使之指向BMC的共享内存中的存储空间。在该可选实施例中,下一条代码指令的地址信息指向负责芯片初始化的代码指令。
在一可选实施例中,在获取CPU提供的BIOS固件程序中下一条代码指令的地址信息之前,该方法还包括:
接收CPU在开机上电后提供的BIOS程序代码的入口地址,该入口地址默认指向第二总线接口的地址空间,第二总线接口的地址空间默认指向BIOS存储器中的存储空间;
根据该入口地址,通过第二总线接口从BIOS存储器中读取BIOS固件程序中的首条代码指令,并经第一总线接口将首条代码指令提供给CPU执行,以使CPU进入BIOS固件程序的执行逻辑。其中,CPU在进入BIOS固件程序的执行逻辑之后,在当前代码指令执行过程中,如果代码逻辑设定需要下一条代码指令,CPU会向桥接芯片提供下一条代码指令的地址信息。
在一可选实施例中,在将上述用于读取BIOS固件程序的读取接口重定向到第三总线接口之后,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令,包括:
在将读取接口重定向到第三总线接口之后,接收CPU在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;
根据下一条代码指令的地址信息向BMC发送读请求,以使BMC从其共享内存中读取下一条代码指令;
接收BMC返回的下一条代码指令,并经第一总线接口将从共享内存中读取的下一条代码指令提供给CPU执行。
除上述BIOS加载方法之外,本申请实施例还提供一种适用于基板管理控制器BMC的BIOS加载方法,其中,BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,详细互联关系可参见前述实施例,在此不再赘述。如图4b所示,该BIOS加载方法包括:
41b、通过第二总线接口从BIOS存储器中读取BIOS固件程序,并写入共享内存中;其中,BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联;
42b、根据桥接芯片的读请求,从共享内存中读取BIOS固件程序中的代码指令,并通过第三总线接口提供给桥接芯片,以使桥接芯片提供给与其互联的CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一可选实施例中,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,上述通过第二总线接口从BIOS存储器中读取BIOS固件程序,并写入共享内存中,包括:采用异步方式通过第二总线接口从BIOS存储器中读取BIOS固件程序,并写入共享内存中。
在本申请实施例提供的BIOS加载方法中,CPU、桥接芯片、BMC和BIOS存储器相互配合,BMC从BIOS存储器中读取BIOS固件程序并写入其共享内存中;在设备开机过程中,通过将桥接芯片读取BIOS固件程序的读取接口从与BIOS存储器互联的总线接口重定向到与BMC互联的总线接口,使得能够借助于传输速率更高的总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
图5a为本申请示例性实施例提供的另一种设备主板的结构示意图。该设备主板可以应用于任何电子设备,例如可以应用但不限于:服务器设备、终端设备、智能穿戴设备、家用电器设备等各种电子设备中。其中,服务器设备可以是常规服务器、云服务器、服务器阵列等。如图5a所示,该设备主板500包括:CPU 501、桥接芯片502、BIOS存储器503和BMC 504。
在本实施例中,桥接芯片502是CPU 501与BIOS存储器503和BMC 504之间的桥梁,负责将CPU 501与BIOS存储器503和BMC 504进行互联。如图5a所示,桥接芯片502通过第一总线接口与CPU 501互联;另外,桥接芯片502还会通过第二总线接口与BIOS存储器503互联,并通过第三总线接口与BMC 504互联,最终达到CPU 501与BIOS存储器503和BMC 504互联的目的。另外,BMC 504还会通过第二总线接口与BIOS存储器503互联。在本实施例中,并不限定第一总线接口、第二总线接口和第三总线接口的实现方式,只要满足第三总线接口的传输速率高于第二总线接口的传输速率即可。
在一可选实施例中,第一总线接口可以采用DMI,即CPU 501通过DMI与桥接芯片502互联。在本实施例中,并不限定桥接芯片502的实现形态,例如可以实现为一种新型的PCH,即南桥芯片(South Bridge),或者实现为具有桥接功能的其它芯片。相应地,在一可选实施例中,第二总线接口可以采用SPI,或者RPC接口,或者I2C接口等等。相应地,在一可选实施例中,第三总线接口可以采用但不限于PCIE接口。在一优选实施例中,如图5a所示,第一总线接口为DMI接口,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在本实施例中,BIOS存储器503用于存储BIOS固件程序,在实现形态上,可以是任何非易于失性存储器,例如可以是闪存存储器(Flash memory)。在本实施例中,BMC 504首先具有其基本的基板管理功能,例如系统健康状态监测,安全远程重启,安全重新上电,LAN警告,BIOS保护和选择等等。除此之外,在本实施例中,BMC 504还可以通过其与BIOS存储器503之间的第二总线接口,从BIOS存储器503中读取BIOS固件程序并写入其共享内存中,并负责维护BIOS存储器503中BIOS固件程序和共享内存中BIOS固件程序的同步。进一步可选地,BMC 504可以采用异步方式从BIOS存储器503中读取BIOS固件程序并写入其共享内存中。
在本实施例中,BIOS固件程序是一组固化到设备主板上BIOS存储器503中的系统程序,它对于设备主板所属电子设备的正常初始化、启动和操作系统引导起着不可或缺的作用。在设备主板应用于任何电子设备的情况下,设备主板上的CPU 501可以逐步加载BIOS固件程序中的代码指令,并执行BIOS固件程序中的代码指令逐渐完成电子设备的开机操作。在本实施例中,桥接芯片502除了作为CPU 501与BIOS存储器503和BMC 504之间的桥梁,还可以在开机过程中协助CPU 501读取BIOS固件程序。
在本实施例中,从硬件上对CPU 501和桥接芯片502进行改进,让BIOS固件程序的入口地址默认指向第三总线接口的地址空间,并在硬件层面完成初始化操作,使得第三总线接口的地址空间默认指向BMC 504的共享内存中的存储空间。在此基础上,CPU 501在开机上电后可向桥接芯片502提供BIOS固件程序的入口地址;对桥接芯片502来说,桥接芯片502具体可根据CPU 501开机上电后提供的BIOS固件程序的入口地址,通过第三总线接口从BMC 504的共享内存中读取BIOS固件程序中的代码指令,经第一总线接口提供给CPU 501执行。
具体地,在开机上电过程中,CPU 501在开机上电后会提供BIOS程序代码的入口地址;桥接芯片502会接收CPU 501在开机上电后提供的BIOS程序代码的入口地址;通过第三总线接口从BMC 504的共享内存中读取BIOS固件程序中的首条代码指令,并经第一总线接口提供给CPU 501执行,以使CPU 501进入所述BIOS固件程序的执行逻辑。
对CPU 501来说,在进入BIOS固件程序的执行逻辑之后,在其执行当前代码指令的过程,如果代码逻辑中设定了需要下一条代码指令,CPU 501都会向桥接芯片502提供下一条代码指令的地址信息,以使桥接芯片502根据下一条代码指令的地址信息为其读取下一条代码指令。对桥接芯片502而言,会不断根据CPU 501提供的下一条代码指令的地址信息,通过第三总线接口从BMC 504的共享内存中读取下一条代码指令,并经第一总线接口提供给CPU 501执行。
进一步可选地,桥接芯片502通过第三总线接口从BMC 504的共享内存中读取BIOS固件程序中的代码指令的过程包括:接收CPU 501在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;根据下一条代码指令的地址信息向BMC 504发送读请求,以使BMC 504从其共享内存中读取下一条代码指令;接收BMC 504返回的下一条代码指令,并经第一总线接口将从共享内存中读取的下一条代码指令提供给CPU 501执行。
进一步,上述根据CPU 501提供的下一条代码指令的地址信息向BMC 504发送读请求的详细实施过程包括:桥接芯片502对CPU 501提供的下一条代码指令的地址信息进行解析,并按照其内存映射逻辑,将该下一条代码指令的地址信息映射到第三总线接口的地址空间中;进而根据第三总线接口的地址空间中被映射到的地址信息生成读请求,将该读请求发送给BMC 504,使得BMC 504能够根据该读请求中的地址信息从其共享内存中读取下一条代码指令。由于第三总线接口的地址空间指向BMC 504的共享内存中的存储空间,故第三总线接口的地址空间中被映射到的地址信息指向BMC 504的共享内存中的具体存储位置,在本实施例中,具体指向共享内存中存储下一条代码指令的存储位置。
需要说明的是,根据操作系统的不同,基于BIOS固件程序开机的过程会包括不同阶段。在一可选实施例中,以UEFI版本的固件开机过程为例,如图5b所示,该过程依序包括:安全验证(SEC)阶段、EFI前期初始化阶段(PEI)、驱动执行环境(DXE)、启动设备选择(BDS)、操作系统加载前期(TSL)、运行时间(Run Time,RT)、灾难恢复(AL)。进一步,在EFI前期初始化阶段进一步依序包括:CPU初始化、芯片初始化和主板初始化。在本实施例中,在整个开机过程中,桥接芯片502都会通过第三总线接口从BMC 104中的共享内存中读取BIOS固件程序中的代码指令。
相应地,本申请示例性实施例还提供了另一种桥接芯片,该桥接芯片可以应用到但不限于图5a所示实施例提供的设备主板中。本实施例提供的桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与CPU、BMC以及存储BIOS固件程序的BIOS存储器互联,详细互联关系可参见前述实施例,在此不再赘述。本申请实施例提供的桥接芯片的实现结构,如图6所示,包括:接收模块61、读取模块62和发送模块63。
接收模块61,用于在开机过程中,接收CPU开机上电后提供的BIOS固件程序的入口地址;该入口地址默认指向第三总线接口的地址空间,第三总线接口的地址空间默认指向BMC的共享内存中的存储空间。
读取模块62,用于根据入口地址,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令;BMC预先从BIOS存储器中读取BIOS固件程序并写入其共享内存中。
发送模块63,用于经第一总线接口将读取模块62读取的代码指令提供给CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一优选实施例中,第一总线接口为DMI接口,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,读取模块62具体用于:接收CPU在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;根据下一条代码指令的地址信息向BMC发送读请求,以使BMC从其共享内存中读取下一条代码指令;接收BMC返回的下一条代码指令,并经第一总线接口将从共享内存中读取的下一条代码指令提供给CPU执行。
进一步,本申请示例性实施例还提供一种适用于桥接芯片的BIOS加载方法,其中,桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、BMC以及存储BIOS固件程序的BIOS存储器互联。如图7所示,该BIOS加载方法包括:
71、在开机过程中,接收CPU开机上电后提供的BIOS固件程序的入口地址;该入口地址默认指向第三总线接口的地址空间,第三总线接口的地址空间默认指向BMC的共享内存中的存储空间;
72、根据入口地址,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令,BMC预先从BIOS存储器中读取BIOS固件程序并写入其共享内存中;
73、经第一总线接口将从共享内存中读取的代码指令提供给CPU执行;其中,第三总线接口的传输速率高于第二总线接口的传输速率。
在一可选实施例中,第一总线接口为DMI接口,第二总线接口为SPI接口,第三总线接口为PCIE接口,其中,PCIE接口的传输速率高于SPI接口的传输速率。
在一可选实施例中,根据入口地址,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令,包括:接收CPU在运行当前代码指令过程中提供的BIOS固件程序中下一条代码指令的地址信息;根据下一条代码指令的地址信息向BMC发送读请求,以使BMC从其共享内存中读取下一条代码指令;接收BMC返回的下一条代码指令,并经第一总线接口将从共享内存中读取的下一条代码指令提供给CPU执行。
在本申请上述实施例中,通过从硬件上对CPU和桥接芯片进行改进,让BIOS固件程序的入口地址默认指向第三总线接口的地址空间,并在硬件层面完成初始化操作,使得第三总线接口的地址空间默认指向BMC的共享内存中的存储空间;在此基础上,使得桥接芯片能够根据CPU开机上电后提供的BIOS固件程序的入口地址,通过第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令,经第一总线接口提供给CPU执行。相比于通过第二总线接口从BIOS存储器中读取BIOS固件程序中的代码指令,桥接芯片能够借助于传输速率更高的第三总线接口从BMC的共享内存中读取BIOS固件程序中的代码指令给CPU执行,可以减少加载BIOS的时间开销,有利于提高设备主板所属设备的开机速度。
最后,本申请实施例除了提供上述设备主板之外,还提供了包含上述设备主板的电子设备,例如服务器设备。在一可选实施例中,本申请实施例的电子设备包括图1a所示实施例中的设备主板,并具有相应的开机功能,在此不再赘述。在另一可选实施例中,本申请实施例的电子设备包括图5a所示实施例中的设备主板,并具有相应的开机功能,在此不再赘述。除了上述设备主板之外,该电子设备还可以包括存储器、通信组件、网卡、电源组件等其它组件;进一步可选地,若该电子设备实现为终端设备,则还可以包括音视频组件、显示屏等组件。
最后说明,上述各实施例中的桥接芯片和BMC为硬件模块,具体可以采用可编程逻辑器实现,可编程逻辑器件可以是FPGA、CPLD;或者,也可以实现为各种芯片,例如ASIC芯片等。
需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如41a、42a等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (17)
1.一种设备主板,其特征在于,包括:
处理器CPU;
桥接芯片,通过第一总线接口与CPU互联;
BIOS存储器,通过第二总线接口与所述桥接芯片互联,用于存储BIOS固件程序;
基板管理控制器BMC,通过第二总线接口与所述BIOS存储器互联,并通过第三总线接口与所述桥接芯片互联,用于从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
所述桥接芯片,用于在开机过程中,将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,并经所述第一总线接口提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
2.根据权利要求1所述的设备主板,其特征在于,所述桥接芯片具体用于:
在所述第三总线接口的地址空间被初始化为指向所述BMC的共享内存中的存储空间的情况下,将CPU提供的所述BIOS固件程序中下一条代码指令的地址信息映射到所述第三总线接口的地址空间中,以将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口。
3.根据权利要求2所述的设备主板,其特征在于,所述桥接芯片还用于:
在将所述读取接口重定向到所述第三总线接口之前,根据CPU提供的所述BIOS固件程序中下一条代码指令的地址信息,通过所述第二总线接口从所述BIOS存储器中读取负责芯片初始化的代码指令,并经所述第一总线接口提供给CPU执行,以使所述CPU初始化所述第三总线接口的地址空间,使之指向所述BMC的共享内存中的存储空间。
4.根据权利要求3所述的设备主板,其特征在于,所述桥接芯片还用于:
接收CPU在开机上电后提供的所述BIOS程序代码的第一入口地址,所述第一入口地址默认指向所述第二总线接口的地址空间,所述第二总线接口的地址空间默认指向所述BIOS存储器中的存储空间;
根据所述入口地址,通过所述第二总线接口从所述BIOS存储器中读取所述BIOS固件程序中的首条代码指令,并经所述第一总线接口提供给CPU执行,以使所述CPU进入所述BIOS固件程序的执行逻辑。
5.根据权利要求1-4任一项所述的设备主板,其特征在于,所述第一总线接口为DMI接口,所述第二总线接口为SPI接口,所述第三总线接口为PCIE接口。
6.一种BIOS加载方法,其特征在于,适用于桥接芯片,所述桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
在开机过程中,将BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;
在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令;所述BMC预先从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
经所述第一总线接口将从所述共享内存中读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
7.根据权利要求6所述的方法,其特征在于,在开机过程中,将BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口,包括:
在开机过程中,在所述第三总线接口的地址空间被初始化为指向所述BMC的共享内存中的存储空间的情况下,将CPU提供的所述BIOS固件程序中下一条代码指令的地址信息映射到所述第三总线接口的地址空间中,以将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口。
8.根据权利要求6所述的方法,其特征在于,在将所述读取接口重定向到所述第三总线接口之前,还包括:
根据CPU提供的所述BIOS固件程序中下一条代码指令的地址信息,通过所述第二总线接口从所述BIOS存储器中读取负责芯片初始化的代码指令;
经所述第一总线接口将所述负责芯片初始化的代码指令提供给CPU执行,以使所述CPU初始化所述第三总线接口的地址空间,使之指向所述BMC的共享内存中的存储空间。
9.根据权利要求8所述的方法,其特征在于,还包括:
接收CPU在开机上电后提供的所述BIOS程序代码的第一入口地址,所述第一入口地址默认指向所述第二总线接口的地址空间,所述第二总线接口的地址空间默认指向所述BIOS存储器中的存储空间;
根据所述入口地址,通过所述第二总线接口从所述BIOS存储器中读取所述BIOS固件程序中的首条代码指令,并经所述第一总线接口将所述首条代码指令提供给CPU执行,以使所述CPU进入所述BIOS固件程序的执行逻辑。
10.根据权利要求6-9任一项所述的方法,其特征在于,在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,包括:
在将所述读取接口重定向到所述第三总线接口之后,接收CPU在运行当前代码指令过程中提供的所述BIOS固件程序中下一条代码指令的地址信息;
根据所述下一条代码指令的地址信息向所述BMC发送读请求,以使所述BMC从其共享内存中读取所述下一条代码指令;
接收所述BMC返回的所述下一条代码指令,并经所述第一总线接口将从所述共享内存中读取的所述下一条代码指令提供给CPU执行。
11.一种BIOS加载方法,其特征在于,适用于基板管理控制器BMC,所述BMC通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
通过所述第二总线接口从所述BIOS存储器中读取BIOS固件程序,并写入共享内存中;以及
根据所述桥接芯片的读请求,从所述共享内存中读取所述BIOS固件程序中的代码指令,并通过所述第三总线接口提供给所述桥接芯片,以使所述桥接芯片提供给与其互联的CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
12.一种桥接芯片,其特征在于,通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联;所述桥接芯片包括:
重定向模块,用于在开机过程中,将所述BIOS固件程序的读取接口从所述第二总线接口重定向到所述第三总线接口;
读取模块,用于在将所述读取接口重定向到所述第三总线接口之后,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令;所述BMC预先从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
发送模块,用于经所述第一总线接口将所述读取模块读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
13.一种基板管理控制器BMC,其特征在于,通过第三总线接口和第二总线接口分别与桥接芯片以及存储BIOS固件程序的BIOS存储器互联,所述BMC包括:
读取模块,用于通过所述第二总线接口从所述BIOS存储器中读取BIOS固件程序,并写入共享内存中;以及
提供模块,用于根据所述桥接芯片的读请求,从所述共享内存中读取所述BIOS固件程序中的代码指令,并通过所述第三总线接口提供给所述桥接芯片,以使所述桥接芯片提供给与其互联的CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
14.一种设备主板,其特征在于,包括:
处理器CPU;
桥接芯片,通过第一总线接口与CPU互联;
BIOS存储器,通过第二总线接口与所述桥接芯片互联,用于存储BIOS固件程序;
基板管理控制器BMC,通过第二总线接口与所述BIOS存储器互联,并通过第三总线接口与所述桥接芯片互联,用于从所述BIOS存储器中读取BIOS固件程序并写入其共享内存中;
所述桥接芯片,用于在开机过程中,根据CPU开机上电后提供的所述BIOS固件程序的入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,经所述第一总线接口提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率,且所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间。
15.一种BIOS加载方法,其特征在于,适用于桥接芯片,所述桥接芯片通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联,所述方法包括:
在开机过程中,接收CPU开机上电后提供的所述BIOS固件程序的入口地址;所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间;
根据所述入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,所述BMC预先从所述BIOS存储器中读取所述BIOS固件程序并写入其共享内存中;
经所述第一总线接口将从所述共享内存中读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
16.一种桥接芯片,其特征在于,通过第一总线接口、第三总线接口和第二总线接口分别与处理器CPU、基板管理控制器BMC以及存储BIOS固件程序的BIOS存储器互联;所述桥接芯片包括:
接收模块,用于在开机过程中,接收CPU开机上电后提供的所述BIOS固件程序的入口地址;所述入口地址默认指向所述第三总线接口的地址空间,所述第三总线接口的地址空间默认指向所述BMC的共享内存中的存储空间;
读取模块,用于根据所述入口地址,通过所述第三总线接口从所述BMC的共享内存中读取所述BIOS固件程序中的代码指令,所述BMC预先从所述BIOS存储器中读取所述BIOS固件程序并写入其共享内存中;
发送模块,用于经所述第一总线接口将所述读取模块读取的代码指令提供给CPU执行;其中,所述第三总线接口的传输速率高于所述第二总线接口的传输速率。
17.一种电子设备,其特征在于,包括权利要求1-5中任一项所述的设备主板,或者,包括权利要求14所述的设备主板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657325.1A CN115016851A (zh) | 2022-06-10 | 2022-06-10 | Bios加载方法、桥接芯片、bmc、设备及其主板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210657325.1A CN115016851A (zh) | 2022-06-10 | 2022-06-10 | Bios加载方法、桥接芯片、bmc、设备及其主板 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115016851A true CN115016851A (zh) | 2022-09-06 |
Family
ID=83074381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210657325.1A Pending CN115016851A (zh) | 2022-06-10 | 2022-06-10 | Bios加载方法、桥接芯片、bmc、设备及其主板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115016851A (zh) |
-
2022
- 2022-06-10 CN CN202210657325.1A patent/CN115016851A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372639B2 (en) | System and method to avoid SMBus address conflicts via a baseboard management controller | |
US11334427B2 (en) | System and method to reduce address range scrub execution time in non-volatile dual inline memory modules | |
US10606677B2 (en) | Method of retrieving debugging data in UEFI and computer system thereof | |
US11461178B2 (en) | System and method to prevent endless machine check error of persistent memory devices | |
US11429298B2 (en) | System and method for tying non-volatile dual inline memory modules to a particular information handling system | |
CN111857840A (zh) | 基本输入输出系统bios启动方法及装置 | |
CN113656076A (zh) | 一种基于硬件复用通道的bios启动方法及装置 | |
CN116450046A (zh) | 云盘实现方法、装置、智能网卡、服务器及存储介质 | |
US20200364040A1 (en) | System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module | |
CN113392052B (zh) | 一种基于四路服务器的bios系统、方法及计算机可读存储介质 | |
CN115016851A (zh) | Bios加载方法、桥接芯片、bmc、设备及其主板 | |
US11003778B2 (en) | System and method for storing operating life history on a non-volatile dual inline memory module | |
US11593121B1 (en) | Remotely disabling execution of firmware components | |
CN115629808A (zh) | Bios开机方法、bmc、电子设备及其主板 | |
US10402454B1 (en) | Obtaining platform-specific information in a firmware execution environment | |
CN116243994B (zh) | 一种存储设备的驱动加载方法、操作系统启动方法及系统 | |
CN110928582B (zh) | 信息处理设备和配置信息处理设备的目标装置的方法 | |
US11675680B2 (en) | Computing system initialization system | |
US11372653B1 (en) | Runtime access to firmware platform configuration data | |
US20240020103A1 (en) | Parallelizing data processing unit provisioning | |
CN114726719B (zh) | 网元操作系统部署方法、装置、电子设备及存储介质 | |
US12001373B2 (en) | Dynamic allocation of peripheral component interconnect express bus numbers | |
US11392493B2 (en) | System and method for optimizing non-volatile random access memory usage | |
US20040049560A1 (en) | Method and apparatus for configuring a computer system to operate with perhiperal devices | |
US20240012743A1 (en) | Automation test accelerator |
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 |