CN110879720B - 可配置服务器及配置服务器的功能的方法 - Google Patents
可配置服务器及配置服务器的功能的方法 Download PDFInfo
- Publication number
- CN110879720B CN110879720B CN201811619529.6A CN201811619529A CN110879720B CN 110879720 B CN110879720 B CN 110879720B CN 201811619529 A CN201811619529 A CN 201811619529A CN 110879720 B CN110879720 B CN 110879720B
- Authority
- CN
- China
- Prior art keywords
- server
- parameters
- hardware
- software
- product type
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/18—Packaging or power distribution
- G06F1/183—Internal mounting support structures, e.g. for printed circuit boards, internal connecting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0032—Serial ATA [SATA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
公开一种允许对不同类型的服务器配置基板的系统与方法。储存多个所需参数与对应的服务器标识于固件映像档的硬件或软件带结构中。从基板上的存储器读取包括服务器产品类型的板标识。比对服务器产品类型与带结构中的服务器标识。载入对应的所需参数至基板上的基板元件,以执行服务器功能。
Description
技术领域
本公开一般涉及在生产期间的有效服务器配置。特别地,本公开的观点涉及使用固件映像档以在没有额外软件或硬件修改的生产期间允许服务器的有效定制。
背景技术
用于运算应用程序的云端的出现增加了对离站(off-site)安装(称为数据中心)的需求,通过远端连接的计算机装置用户,数据中心储存数据并执行应用程序存取。这样的数据中心通常具有大量的服务器、交换机和储存装置来储存与管理数据。典型的数据中心具有带有电源和通信连接的物理机架结构。机架排列成数据中心的一个或数个房间(room)。每一个机架可承载多个网络装置,例如服务器、交换机和储存装置。由于数据中心的运营商要求不同的功能,因此需要特定的服务器。这类特定的服务器可以包括储存服务器、计算服务器(computational server)、图形处理器(graphic processing unit,GPU)服务器或网络交换服务器。服务器的每一类型都需要不同的硬件和软件的设置。
因此,服务器的基本平台的硬件设计,例如基板,通常需要考虑各种用途,并包含大多数服务器功能。基板是电路板,其包括基板管理控制器与多个组件,以支持各种具有不同功能的特定主机板。这种服务器平台通常支持不同服务器部署方案的最佳兼容性。因此,服务器平台的最佳硬件设计可以包括服务器基板上的多工器与数据选择器电路,以允许在特定板上选择不同的功能。这种电路适应最大变量和独立要求。这些设计使用非正式的逻辑编程和控制器来选择正确的电路,以完成每一个完整的功能。这些变量和独立要求通常仅仅在服务器上存在并永久启用或禁用。然而,服务器平台通常不会设计为允许在服务器已运送给客户之后进行修改。
近来,已引入了可调式服务器平台,以允许客户定制功能。这种可调式服务器平台可以从作为连接器、存储器插槽或可以采用更多装置的IO外围插槽的物理硬件组件来获得其可调性。这种平台也可包括特定服务器功能的选项,其可以通过感测逻辑编程的设定和控制器来激活。这种机制为这种可调式服务器设计带来了灵活的使用模型。
为了在不增加成本的情况下实现灵活性,服务器的基板设计可以保留可替换、增加和可移除的硬件电路。一旦服务器设计被安排批量生产,仍可以为客户提供各种用途。在这种情况下,制造厂站可以通过使用相同的基板的设计,但调整逻辑编程的设定和控制器来配置基板,以使用客户清单来正确地建立所需功能到服务器中。因此,制造厂生产线必须依靠传统基本输入输出系统(Basic Input Output System,BIOS)和基板管理控制器(BMC)提供逻辑编程和控制器配置。这些组件是主要固件,其使用服务器的初始关联硬件配置进行编程。这为用于设计、更换和准备不同服务器的不同主机板的生产线节省了时间和金钱。
一般来说,设定逻辑编程和设置控制器是基于固件的固定参数与硬件信号的静态状态。固定参数可以是组合固件映像档的一部分,其由基板的硬件设计者建立。这些参数可以储存于基板的非易失性存储器,例如串行外围接口(Serial Peripheral Interface,SPI)快闪存储器(flash)芯片。硬件信号的静态状态可以是来自基板上的硬件逻辑电路输出的信号。然而,如果各种所要求服务器增加,则创建足够多种组合固件映像档并改变生产线的硬件逻辑电路的输出变成复杂的任务。另外,基于硅的硬件装置只能识别配置参数的单一部分,例如英特尔平台控制器中心(Platform Controller Hub,PCH)的配置参数。由于PCH的配置参数驻留在组合固件映像档的特定区域中,因此如果特定功能被激活或去激活,或者PCH的配置参数被改变,则固件设计者必须重建立组合固件映像档。
一般来说,硅供应商通常在其芯片组内提供多种功能,并且允许开发者选择及部属具有服务器基板上的相关硬件电路的功能。开发者可以决定基板的电源启动顺序期间的芯片组内部哪些功能处于激活或非激活。一旦选择功能之后,芯片组的输出引脚可以通过内部多工器和数据器连接到外部硬件电路。芯片组通常提供多种机制以识别哪些功能应该处于激活或非激活,例如英特尔平台控制器中心(PCH)的功能。PCH的配置参数驻留在组合固件映像档的特定区域中。这类配置参数称为“软件带”(software straps)。
图1示出选择软件带的传统过程。图1包括平台控制器中心(PCH)芯片10。PCH芯片10具有内部SATA控制器与内部PCI根控制器。PCH芯片10包括多个配置参数输出12,其可以发送由内部SATA控制器或内部PCI根控制器路由的参数信号。PCH芯片10的参数信号依靠启用哪个控制器而最终输出PCIe汇流排14或SATA汇流排总线16的配置信息。这些参数称为软件带。PCH芯片10包括SPI接口18,其耦接串行外围接口(Serial Peripheral Interface,SPI)快闪存储器芯片20。
图1示出烧录至SPI快闪存储器芯片20中的固件映像档的存储器映射30。存储器映射30包括保留区域32、PCH软件带区域34、保留区域36、BIOS区域38、描述符映射区域40和签章区域42。PCH软件带区域34示为包括位位置和位字段的描述的表50并代表软件带。在此示例中,表50中的软件带包括对PCH芯片10的参数输出12的值的选择。因此,表50是示出平台控制器中心芯片10如何将两个内部控制器(sSATA或PCIe)的其中之一路由到单一端口输出之的参数的示例。此类似于多工器,当选择控制器其中之一来提供输出信号以启用从内部PCI根控制器或内部SATA控制器到相应PCIe汇流排14或SATA汇流排16的功能。
在表52中示出了PCH 10的参数输出12的结果输出。如表52所示,参数输出12的前两个端口是固定信号。参数输出12的第三与第四端口可以被多工处理。表52是PCH硅设计的示例。两个不同的控制器(sSATA和PCIe)存在于平台控制器中心芯片10中,但是平台控制器中心仅提供单一端口输出,其允许选择用于连接的任一控制器。只有多工信号可以提供输出端口选择,而不是提供输出端口选择选项的固定信号。
类似地,图2示出称为“硬件带”(hardware straps)的处理器的硬件设定的传统配置过程。在此过程中,处理器60,例如英特尔处理器,包括多个输入引脚,其定义可由处理器60执行的多个不同功能。处理器60的特征配置取决于来自具有连接至输入引脚64的硬件寄存器的逻辑电路62的硬件输入信号的静态状态。在本示例中,逻辑电路62依据客户物料清单安装在服务器的基板上。表66可以包括构成配置处理器60的功能的硬件带的静态状态。在此示例中,处理器60的功能在电源启动程序期间通过连接至输入引脚64的信号的状态来确定。
由于如图1和图2所示软件带和硬件带是静态参数和固定状态,如果需要各种不同的功能基板,修改它们可能需要额外的编码、编译、释放和严格的维护和售后服务处理。这样的过程导致为客户维护固件映像档的不同修订版的成本增加。此外,如果需要具有不同功能的新服务器设计,则需要复杂的过程来修改基板生产线的硬件逻辑电路。
因此,需要一个简化的流程,以允许生产具有不同功能的不同服务器。还需要灵活配置以允许不同的服务器功能,而无需修改硬件逻辑电路或重写固件映像档。
发明内容
公开示例为一种配置服务器的功能的方法。储存多个所需参数与对应的服务器标识于固件映像档的硬件或软件带结构中。从基板上的存储器读取包括服务器产品类型的板标识。比对服务器产品类型与带结构中的服务器标识。载入对应所需参数至基板上的基板元件,以执行服务器功能。
另一公开示例为一种可配置服务器,其包括储存含有服务器产品类型的板标识的存储器。上述服务器包括基本输入输出系统,其包括具有硬件带结构的固件映像档。硬件带结构包括多个所需参数与对应的服务器标识。逻辑电路具有根据来自所需参数之一的多个硬件带参数所设置的多个输出,且上述所需参数具有与服务器产品类型匹配的服务器标识。处理器具有多个设置输入,以致能多个功能之一。处理器基于上述配置输入的状态执行上述功能中的功能。配置输入耦接逻辑电路的输出。
另一公开示例为一种可配置服务器,其包括储存含有服务器产品类型的板标识的存储器。服务器包括基本输入输出系统,其包括具有软件带结构的固件映像档。软件带结构包括多个所需参数与对应的服务器标识。快闪存储器储存来自所需参数之一的软件带参数,且所需参数具有与服务器产品类型匹配的服务器标识。串行汇流排耦接可配置硬件元件。平台控制器中心耦接快闪存储器。平台控制器中心读取软件带参数以及在串行汇流排上传送多个配置参数至可配置硬件元件。
上述概述并不代表本公开的每个实施例或每个观点,而仅仅提供了本文所述的一些新颖的观点和特征的例证。本公开的上述特征和优点以及其它特征和优点,可从以下用于实施本发明的代表性实施例和模式的详细描述配合附图和权利要求显而易见。
附图说明
通过以下参考附图对示例性实施例进行描述,将更好地理解本公开,其中:
图1为现有技术的服务器的软件带安装的方块图。
图2为现有技术的服务器的硬件带安装的方块图。
图3为允许对所需不同类型的服务器进行有效配置的示例服务器配置和组装过程的流程图。
图4为服务器的基板的方块图。
图5为提供服务器的软件带配置参数至平台控制器中心的过程的示意图。
图6A与图6B为提供服务器的软件带配置参数至平台控制器中心的过程的流程图。
图7为提供服务器的硬件带配置参数至硬件逻辑的过程的示意图。
图8A与图8B为提供硬件带配置参数至硬件逻辑的过程的流程图。
本发明容许各种修改和替代形式,并已通过附图中的示例示出了一些代表性的实施例,且将在此详细地描述。然而,应理解的是,本发明并不限于所公开的特定形式。相反地,本公开将涵盖由所附权利要求所限定的本发明的精神和范围内的所有修改,等同物和替代物。
符号说明
10:平台控制器中心芯片
12:配置参数输出
14:PCIe汇流排
16:SATA汇流排总线
18:SPI接口
20:串行外围接口快闪存储器芯片
30:存储器映射
32:保留区域
34:PCH软件带区域
36:保留区域
38:BIOS区域
40:描述符映射区域
42:签章区域
50、52、66:表
60:处理器
62:逻辑电路
64:输入引脚
110:综合固件映像档
112:可编程逻辑控制器
114、130:基板
116、118、120:服务器
132:主机板
134:处理器
140:基板管理控制器
146:平台控制器中心
148:SPI快闪存储器芯片
150:电子擦除式可复写只读存储器
152:平台逻辑控制器
156:串行汇流排
160:BIOS固件映像档
162:软件带结构
630:PCH软件带表
640:板标识映像档
642:板标识版本字段
644:板SKU标识字段
646:校验和字段
648:签章字段
650:产品名称字段
652:自定义数据字段
654:可选数据字段
660:所需软件带结构
662:结构标头字段
664:校验和字段
666:服务器产品列表字段
668:服务器标识字段
670:可选数据字段
672:软件带目录字段
860:所需硬件带结构
862:结构标头字段
864:检验和字段
866:服务器产品列表字段
868:服务器标识字段
870:可选数据字段
872:硬件带目录字段
880:配置表
具体实施方式
本发明可以多种不同形式实施。在附图中显示出并将在此详细描述代表性的实施例,其理解将本公开的内容视为本公开的原理的示例或说明,且不以在限制本发明的广泛方面而对所示的实施例的公开。在这种情况下,例如在摘要、发明内容和实施方式所述部分中公开但未在权利要求中明确阐述的要素和限制,不应通过暗示、推断而单独或集体地并入权利要求中。除非特别声明,为了详细描述的目的:单一形式可包含复数个,反之亦然;“包括”是指“包括但不限于”。此外,本文中可使用诸如“约”、“几乎”、“基本上”、“近似”等近似的词语,其意义上为例如为“接近或接近于”、“3-5%的”或“可接受的生产公差”,或其任何符合逻辑的组合。
上述方法和系统允许通过提供具有与不同服务器类型对应的多个硬件和软件带的固件映像档来生产不同类型的服务器。在组装时,从基板读取板标识字段(Board IDfield),以确定所需的服务器类型。接着,从固件映像档复制适当的硬件和软件带,来配置服务器以获取适当的功能。此过程允许减少所释放的组合固件映像档的数量,并减少服务器的基板的硬件逻辑电路的修改。尽管这些示例涉及服务器,但是本文所述的原理可以应用于可以在主机板上运行相同固件映像档的任何电子产品,其中此主机板具有现在可以自动执行的不同硬件改变要求。这些缩减在生产过程中允许多种不同的服务器选项,而无需增加硬件或重新编程软件。
图3示出使用相同基板及其他装置生产不同类型的服务器的示例的过程。此过程包括编辑综合固件映像档110,其包括不同类型的服务器的硬件与软件带的不同模块。综合固件映像档110减少不同类型的服务器生产所需的组合固件映像档释放(releases)的数量。此过程也通过使用可编程逻辑控制器(112)来减少指定功能的硬件逻辑电路的修改。综合固件映像档110写入至基板(114)的存储器中。接着,生产操作员将基板安装至服务器机箱内,并且基于所需类型的服务器(116)选择正确功能。固件映像档和可编程逻辑控制器中的配置参数允许生产不同的服务器118,例如储存服务器、计算服务器、图形处理器(GPU)服务器或网络交换服务器。服务器118的这类生产不需要多个固件映像档或复杂的硬件逻辑电路。此过程也提供一种机制,用于检查基板是否具有组合固件映像档的正确规定,并输出用于所请求的服务器类型的硬件逻辑。本过程在综合固件映像档110中包含固件算法,以减少所释放的固件映像档的数量,同时仍允许不同的服务器设计以使用例如基板的共同组件。此过程也包括一种灵活的方法,以减少在基板上用于设置服务器处理器功能的硬件寄存器的修改。
图4为服务器120中的硬件与存储器元件的方块图,其可配置基于服务器的类型指示不同的功能。服务器120可以是几种类型的其中之一,每一类型包括例如基板130的共同组件。例如,服务器类型可以包括如上所述的储存服务器、计算服务器、GPU服务器或网络交换服务器。
服务器120包括基板130与主机板132。主机板132可以包括处理器134或其他可配置元件。基板130是一种适应最大变量和独立要求的优化设计。因此,基板设计者理想地考虑安装在基板中的可用于不同类型的服务器的所有可能的硬件组件。主机板132也可以包括特定于服务器类型的所需功能的特定组件。例如,GPU服务器的主机板包括多个GPU,而储存服务器的主机板包括多个固态硬盘或硬盘。基板130安装基板管理控制器(baseboardmanagement controller,BMC)140和用于基板管理控制器140的基本输入输出系统(BIOS)。基板130也包括平台控制器中心(PCH)146与SPI快闪存储器芯片148。在此示例中,PCH 146包括内部PCI根控制器(root controller)与内部SATA控制器。基板130包括标识存储器,例如电子擦除式可复写只读存储器(EEPROM)150。关联于服务器120的标识数据储存于EEPROM150中。基板130也包括平台逻辑控制器152。平台逻辑控制器152包括多个硬件寄存器,其与处理器134上的多个配置输入连接。虽然,参考BIOS来执行各种配置功能,但是统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)也可以执行相同的功能。系统管理汇流排154允许基板上的元件彼此通信。
基板管理控制器140的BIOS的示例固件算法依据储存于EEPROM 150中的板标识,对不同功能的PCH 146的软件带参数进行重新编程。在此示例中,板标识包括某些服务器标识信息,其可以包括唯一签章、产品名称、自定义数据(custom data)与校验和字段(checksum field)。因此,板标识将传达所需的服务器类型与服务器的对应功能。BIOS包括储存于SPI快闪存储器芯片148的e模块(eModule)中的BIOS固件映像档160。固件映像档包括各种所需的软件带结构162,其中每一软件带结构162关联于一个可能的板标识(ID)。BIOS固件映像档160将在BIOS的eModule内部建立PCH软件带作为称作“所需软件带”的结构。如下所述,软件带参数允许PCH 146经由串行汇流排156,例如SATA汇流排或PCIe汇流排,通过参考软件带参数的值来配置主机板132上的硬件组件,以选择适当的控制器。电路路由(circuit routing)在平台控制器中心146的电源启动顺序期间执行。
使用所需类型的服务器的正确板标识,BIOS可以读取板标识,以得知其电源启动顺序期间正在初始化的服务器类型。接着,BIOS可以比对储存于SPI快闪存储器芯片148上的软件带参数与eModule的所需软件带。如果软件带参数与所需软件带之间的内容不同,表示基板130安装在新的服务器机箱类型中。在此情况下,BIOS将SPI快闪存储器芯片148的软件带参数重新编程为eModule的所需软件带结构。接着,BIOS触发硬件电力循环。之后,BIOS将要求PCH 146再次识别软件带参数并通过PCH 146改变基板硬件的行为。因此,此算法通过SPI接口调整SPI快闪存储器芯片148的软件带结构162的值。如果BMC 140具有存取SPI快闪存储器芯片148的能力,则此算法可以由BMC 140运行。
图5示出提供软件带参数以生产具有特定功能的服务器的过程的流程图。在启动时,图4的PCH 146的内部控制器从SPI快闪存储器芯片148读取软件带并配置其硬件逻辑输出信号(500)。BMC 140的BIOS读取储存于EEPROM 150的板标识的服务器标识字段(502)。接着,BIOS从储存于服务器主机的BIOS eModule读取软件带的参数(504)。在比对服务器标识之后,BIOS重新编程软件带参数,以确定SPI快闪存储器芯片148的软件带参数是否与服务器标识匹配(506)。接着,BIOS将控制PCH 146以启动电力循环(508)。在PCH 146执行电力循环之后,服务器将重置,以读取现在储存于SPI快闪存储器芯片148的软件带(510)。
图6A与图6B示出由BIOS执行的程序的流程图,以比对与重新编程如图5所示的软件带参数。首先,BIOS启动软件带服务程序(600)。接着,BIOS确定电力循环是否已启动(602)。如果电力循环已启动,BIOS从EEPROM 150读取板标识(604)。BIOS通过比对板标识的签章字段与储存于如图4所示的SPI快闪存储器芯片148的所需软件带结构162所列出的服务器标识,识别所需的服务器产品(606)。软件带结构也可以储存于在主机板内部的可由BOIS存取的其他实体。
BIOS确定板标识的签章是否与所需软件带结构中的任一服务器标识匹配(608)。如果签名没有与任一服务器标识匹配,则存在错误配置,并且BIOS将传送系统事件日志(system event log,SEL)到BMC 140(610)。接着,BIOS将停止开机自我测试程序(612)。如果签章匹配,BIOS从图4的SPI快闪存储器芯片148读取软件带参数(614)。BIOS比对软件带参数与储存于eModule上的所需软件带结构(616)。BIOS通过比较来确定从SPI快闪存储器芯片148读取的软件带是否正确(618)。如果与所需软件带结构中的签名相关联的参数匹配,则BIOS继续自我开机测试程序(620)。如果未找到匹配,则BIOS利用来自所需软件带结构的合适的软件带重新编程SPI快闪存储器芯片148中的软件带(622)。接着,BIOS发送用于PCH 146的命令,以执行电力循环(624)。
图6A示出可储存于SPI快闪存储器芯片148的示例PCH软件带表630。PCH软件带表630包括定义PCH 146的不同输出端口的配置的位。可以看出,软件带表630包括SATA汇流排或PCIe汇流排的输出端口配置。
图6A也示出储存于EEPROM 150的示例板标识结构640。板标识映像档640包括板标识版本字段642、板SKU标识字段644、校验和字段646、签章字段648、产品名称字段650、自定义数据字段652与可选数据字段654。板标识结构640是描述基板/服务器平台的标识的数据结构。版本字段642是描述结构的纲要的释放版本(release version)。板SKU标识字段644是描述基板的唯一编号。校验和字段646是用于记录制造厂建立的结构完整性的杂凑值(hash value)。签章字段648是记录安全检查的结构完整性的杂凑值。产品名称字段650是描述具有不同机箱类型的系统的字串、自定义数据字段652是可用于用户特定设置的字段。
图6B示出储存于eModule的所需软件带结构660。所需软件带结构660包括结构标头字段662、校验和字段664、服务器产品列表字段666、服务器标识字段668、可选数据字段670与软件带目录字段672。各种软件带参数储存于软件带参数字段674中。软件带目录字段672提供软件带参数字段674中所储存的软件带的映射。服务器的每一类型与关联于服务器的类型的软件带参数的对应标识一起储存于服务器标识字段668中。
基板BIOS的固件算法可以基于板标识的内容,调整可编程输入输出(input/output,I/O)芯片的配置,其中可编程输入输出芯片例如为图4的平台逻辑控制器。由于输出信号的状态必须始终存在于处理器134,在此示例中的可编程I/O芯片的输出信号可配置为漏极开路(open-drain)且可提供最大100Ω的导通电阻。一致的信号是必要的,因此处理器134可以在电源启动顺序期间对其输入引脚进行取样。接着,处理器134对用于电源启动顺序的不同阶段的链路/功能以及内部配置控制器寄存器进行初始化。类似于eModule的所需软件带结构,BIOS固件映像档160可以具有各种软件带,其与每一可能的板标识匹配。硬件带在BIOS内部建立为如图6B所示的“所需软件带”结构660。
图7示出提供硬件带参数以配置服务器的处理器的过程的示意图。在启动时,图4的CPU 134的内部控制器取样其输入引脚的状态并配置其链接功能(700)。BIOS或BMC 140读取储存于EEPROM 150的板标识的服务器标识字段(702)。接着,BIOS从平台逻辑控制器152读取硬件带的配置(704)。BIOS发送SMBus读取命令至EEPROM 150且接着检索包括服务器标识字段的板标识信息的区块。在比对服务器识别之后,BIOS调整配置,以确定硬件带配置是否与服务器标识匹配(706)。接着,BIOS将控制PCH 146以启动电力循环(708)。在PCH146执行电力循环之后,CPU 134将重置,并执行从连接至平台逻辑控制器152的输出的输入引脚的状态所确定的功能(710)。
图8A与图8B示出由BIOS(图4中)执行程序以比对和重新编程如图7所示的硬件带参数的流程图。此程序可与图5、图6A和图6B所示的程序同时运行。首先,BIOS启动硬件带服务程序(800)。接着,BIOS确定电力循环是否已启动(802)。如果电力循环已启动,BIOS从EEPROM 150读取板标识(804)。BIOS通过比对来自板标识的签章字段与储存于BIOSeModule的所需硬件带所列出的服务器标识,以识别所需服务器产品(806)。硬件带结构也可以储存于在主机板内部的可由BOIS存取的其他实体。
BIOS确定来自板标识的签章是否与所需硬件带结构中的任一服务器标识匹配(808)。如果签章没有与任一服务器标识匹配,则存在错误配置(且不具有当前UEFI BIOS支持),并且BIOS将传送系统事件日志(SEL)到BMC 140(810)。接着,BIOS将停止开机自我测试程序(812)。如果签章(808)匹配,表示UEFI BIOS支持主机板,BIOS从平台逻辑控制器152读取硬件带参数(814)。BIOS比对硬件带参数与储存于eModule上的所需硬件带结构(816)。BIOS通过比对结果,以确定从平台逻辑控制器152读取的硬件带是否正确(818)。如果与所需软件带结构中的签名相关联的参数匹配,BIOS继续开机自我测试程序(820)。如果未找到匹配,BIOS利用来自所需硬件带结构的合适的硬件带重新编程平台逻辑控制器152中的硬件带(822)。接着,BIOS发送用于PCH 146的命令,以执行电力循环(824)。
图8B示出所需硬件带结构860的示例。所需硬件带结构860包括结构标头字段862、检验和字段864、服务器产品列表字段866、服务器标识字段868、可选数据字段870与硬件带目录字段872。各种硬件带参数储存于硬件带参数字段874中。硬件带目录872提供硬件带参数字段874中所储存的硬件带的映射。服务器的每一类型与关联于服务器的类型的对应正确储存的软件带参数一起储存于服务器标识字段868中。图8B示出配置表880,其中配置表880示出平台逻辑控制器152的输出到处理器134的功能输入引脚的状态。示例配置表880包括允许处理器激活重要特征(例如LLC&MLC BIST、TXT)的设定。这些特征通过识别编程I/O芯片的信号高/低输出来启用/禁用。UEFI BIOS读取编程I/O芯片的设定值,且接着比对设定值与硬件带结构。
为了防止在生产线中配置错误的“板标识”,上述算法都会检查板标识的签章是否与所需软件或硬件结构中的服务器标识匹配。如果没有匹配,BIOS发送系统事件日志(SEL)至BMC 140以发出警报,并且停止开机自我测试程序,以防止服务器运行及初始化错误的功能。一旦服务器被安排用于客户的各种用途的批量生产,生产现场的操作员可以轻易使用单一固件映像档和客户物料清单来配置服务器上的正确功能而无需改变基板。上述过程减少固件回复管理、维护和释放的工作量以及考虑了对物料清单的硬件修改。
图6A-图6B与图8A-图8B的流程图为如图4的BMC 140的示例机器可读指令的代表示例,用于提供正确的软件和硬件配置参数。在这些示例中,机器可读指令包括用于执行的算法,通过:(a)处理器、(b)控制器和/或(c)一个或多个其他合适的处理装置。此算法可体现在储存在例如快闪存储器、CD-ROM、软性磁盘、硬盘驱动器、数字(多功能)光盘(DVD)或其他存储器(储存)装置的有形媒体上的软件中。然而,所属技术领域技术人员是容易地理解,整个算法和/或其部分可以替代地由处理器之外的装置执行和/或以公知的方式在固件或特定硬件中来实现(例如,它可由专用集成电路(application specific integratedcircuit,ASIC)、可编程逻辑装置(programmable logic device,PLD)、现场可编程逻辑装置(field programmable logic device,FPLD)、现场可编程门阵列(field programmablegate array,FPGA)、离散逻辑等)。例如,接口的任何或所有组件可以由软件、硬件和/或固件来实现。并且,由流程图所表示的一些或全部机器可读指令可以手动实现。此外,虽然参考图6A-图6B与图8A-图8B所示的流程图描述了示例算法,然而本领域技术人员将容易地理解,可替代地使用许多其它方法实现示例性机器可读指令。例如,可改变方块的执行顺序和/或可改变、消除或组合某一些方块。
本申请中所使用的用语,如“组件”、“模块”、“系统”等通常旨表示计算机相关的实体、硬件(例如,电路)、硬件与软件的组合、软件或与具有一个或多个特定功能的操作机器的相关的实体。例如,组件可为(但不限于)程序执行于处理器(例如,数字信号处理器)上、处理器、对象、可执行程序,执行线程、程序和/或计算机。作为说明,在控制器上执行的应用程序和控制器都可以是组件。一个或多个组件可以驻留在程序和/或执行线程之中,且组件可被本地化在计算机上和/或分布在两个或更多个计算机之间。此外,“装置”可以特定设计的硬件的形式出现;通过执行硬件上的软件以使通用的硬件特定化,使得硬件能够执行特定的功能;储存在计算机可读取媒体(computer-readable medium)上的软件;或其组合。
本文使用的用语仅用于描述特定实施例为目的,而并非限制本发明。如本文所使用的单数形式“一”和“该”,也可能包含复数形式,除非上下文另有明确指出。此外,在实施方式和/或权利要求中使用的“包含”、“具有”、“附于”或其变型的用语,这些用语包含以类似于用语“包括”的方式。
除非另外定义,在此使用的全部用语(包括技术及科学用语)具有与本发明所属领域的普通技术人员通常理解的相同涵义。另外,这些用语,例如在通常使用的字典中定义的用语,应被解读成具有与相关技术及本发明的背景或上下文一致的意思,而不应以理想化或过度正式的方式解读,除非在此特别定义。
虽然上面已描述了本发明的各种实施例,然而,应理解的是,它们仅作为示例而非被限制的。在不脱离本发明的精神或范围的情况下,可根据本公开对所公开的实施例进行诸多修改。因此,本发明范围不应受任何上述实施例的限制。相反的,本发明的范围应根据所附权利要求及其等同物来定义。
尽管已相对于一个或多个实现方式显示与描述了本发明,但在阅读和理解本说明书与附图后,所属技术领域技术人员将想到相同的更改和修改。此外,虽然本发明的特定特征可能仅针对一些实施中的一个而被公开,但这样的特征可与其他实施的一个或多个其他特征组合,以对于任何给定的或特定的应用可能是所期望与有利的。
Claims (12)
1.一种使用固件映像档配置服务器的功能的方法,所述方法包括:
由基本输入输出系统在固件映像档中的带结构中储存多个所需参数与对应的多个服务器标识;
通过基本输入输出系统或统一可扩展固件接口,从基板上的存储器读取包括服务器产品类型的板标识;
通过基本输入输出系统或统一可扩展固件接口,比对所述服务器产品类型与所述带结构中的所述多个所需参数对应的所述多个服务器标识;
通过基本输入输出系统或统一可扩展固件接口,利用所述多个所需参数重新编程多个参数;
通过基本输入输出系统或统一可扩展固件接口,载入经比对得到的服务器标识的对应所需参数至所述基板上的基板元件,以执行服务器功能;以及
如果所述多个服务器标识未与服务器产品类型匹配,则由基本输入输出系统或统一可扩展固件接口传送系统错误日志。
2.如权利要求1所述的方法,其中所述存储器是电子擦除式可复写只读存储器EEPROM。
3.如权利要求1所述的方法,其中所述基板元件为平台控制器中心,且其中所述多个所需参数为软件带,其在串行汇流排上将所述平台控制器中心的多个输出信号配置到主机板。
4.如权利要求1所述的方法,其中所述基板元件为逻辑电路,其具有至主机板上的处理器的多个配置输入的多个输出,且其中所述多个所需参数为硬件参数,其设定所述逻辑电路的所述多个输出的状态。
5.如权利要求1所述的方法,还包括若所述多个服务器标识未与所述服务器产品类型匹配,则由基本输入输出系统或统一可扩展固件接口停止开机自我测试程序。
6.如权利要求1所述的方法,其中所述基本输入输出系统安装在所述基板上。
7.一种可配置服务器,包括:
存储器,储存包括服务器产品类型的板标识;
基本输入输出系统,其包括具有硬件带结构的固件映像档,所述硬件带结构包括多个所需参数与对应的多个服务器标识,并且适于读取包括服务器产品类型的板标识,以比对所述服务器产品类型与所述硬件带结构中的所述多个所需参数对应的所述多个服务器标识,利用所述多个所需参数重新编程多个参数,并且如果所述多个服务器标识未与服务器产品类型匹配,则传送系统错误日志;
逻辑电路,具有根据来自所述多个所需参数之一的多个硬件带参数所设置的多个输出组,且所述多个所需参数具有与所述服务器产品类型匹配的服务器标识;以及
处理器,具有多个配置输入,以致能多个功能之一,所述处理器基于所述多个配置输入的状态执行所述多个功能中的功能,其中所述多个配置输入耦接所述逻辑电路的多个输出。
8.如权利要求7所述的服务器 ,其中所述存储器是电子擦除式可复写只读存储器EEPROM。
9.如权利要求7所述的服务器 ,所述逻辑电路是可编程逻辑控制器。
10.如权利要求7所述的服务器,其中所述存储器与所述基本输入输出系统安装在基板上,且所述处理器安装在主机板上。
11.一种可配置服务器,包括:
存储器,储存包括服务器产品类型的板标识;
基本输入输出系统,其包括具有软件带结构的固件映像档,所述软件带结构包括多个所需参数与对应的多个服务器标识,并且适于读取包括服务器产品类型的板标识,以比对所述服务器产品类型与所述软件带结构中的所述多个所需参数对应的所述多个服务器标识,利用所述多个所需参数重新编程多个参数,并且如果所述多个服务器标识未与服务器产品类型匹配,则传送系统错误日志;
快闪存储器,储存来自所述多个所需参数之一的软件带参数,所述多个所需参数具有与所述服务器产品类型匹配的服务器标识;
可配置硬件元件;
串行汇流排,耦接所述可配置硬件元件;以及
平台控制器中心,耦接所述快闪存储器,所述平台控制器中心读取所述软件带参数以及在所述串行汇流排上传送多个配置参数至所述可配置硬件元件。
12.如权利要求11所述的服务器,还包括基板,其安装所述存储器、所述基本输入输出系统、所述快闪存储器与所述平台控制器中心,以及主机板,其安装所述可配置硬件元件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/122,387 | 2018-09-05 | ||
US16/122,387 US10489338B1 (en) | 2018-09-05 | 2018-09-05 | Method and system for streamlined server design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110879720A CN110879720A (zh) | 2020-03-13 |
CN110879720B true CN110879720B (zh) | 2023-03-31 |
Family
ID=65033531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811619529.6A Active CN110879720B (zh) | 2018-09-05 | 2018-12-28 | 可配置服务器及配置服务器的功能的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10489338B1 (zh) |
EP (1) | EP3620916B1 (zh) |
JP (1) | JP6825029B2 (zh) |
CN (1) | CN110879720B (zh) |
TW (1) | TWI698753B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908943A (zh) * | 2019-12-09 | 2020-03-24 | 迈普通信技术股份有限公司 | 一种板卡自动适配方法、装置、网络设备及存储介质 |
US11100230B1 (en) | 2019-12-31 | 2021-08-24 | Management Services Group, Inc. | Modular embedded chassis with firmware for removably coupled compute devices, and methods and systems for the same |
US12147541B2 (en) | 2020-06-08 | 2024-11-19 | Hewlett-Packard Development Company, L.P. | Secure boot up of computing devices |
US11599087B2 (en) * | 2020-10-21 | 2023-03-07 | Dell Products L.P. | System and method of utilizing information handling system identity types with motherboards of information handling systems |
US11487550B1 (en) * | 2020-12-07 | 2022-11-01 | Amazon Technologies, Inc. | Event communication management |
US12105856B2 (en) * | 2021-10-22 | 2024-10-01 | Dell Products, L.P. | Validation and registration for information handling systems |
US12001560B2 (en) * | 2021-10-28 | 2024-06-04 | Quanta Computer Inc. | Method and system for avoiding boot failure from platform firmware resilience execution |
CN114327536A (zh) * | 2021-11-30 | 2022-04-12 | 浪潮电子信息产业股份有限公司 | 一种服务器运维方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905566A (zh) * | 2014-04-22 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种服务器启动信息远程查看及导出方法 |
US9122501B1 (en) * | 2014-09-08 | 2015-09-01 | Quanta Computer Inc. | System and method for managing multiple bios default configurations |
CN106557344A (zh) * | 2015-09-29 | 2017-04-05 | 广达电脑股份有限公司 | 用于自动安装系统软件的计算机可读介质、服务器及方法 |
CN106998255A (zh) * | 2016-01-22 | 2017-08-01 | 腾讯科技(深圳)有限公司 | 一种反馈处理服务器、网络系统以及反馈处理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093516A1 (en) * | 2002-11-12 | 2004-05-13 | Hornbeek Marc William Anthony | System for enabling secure remote switching, robotic operation and monitoring of multi-vendor equipment |
WO2014080872A2 (ja) * | 2012-11-20 | 2014-05-30 | 太陽誘電株式会社 | 再構成可能な半導体装置の論理構成方法 |
WO2014130005A1 (en) * | 2013-02-19 | 2014-08-28 | Empire Technology Development Llc | Testing and repair of a hardware accelerator image in a programmable logic circuit |
US20140297922A1 (en) * | 2013-03-29 | 2014-10-02 | Nitin V. Sarangdhar | Method and apparatus for managing serial peripheral interface (spi) flash |
CN104468637B (zh) * | 2013-09-12 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 一种下载以及安装客户端的方法和设备 |
US9128729B1 (en) * | 2014-09-08 | 2015-09-08 | Quanta Computer Inc. | System and method for automatically configuring bios performance profiles |
US10037170B2 (en) | 2015-12-18 | 2018-07-31 | Mitac Computing Technology Corporation | Motherboard and a method for boot-up |
US9805200B2 (en) * | 2016-02-01 | 2017-10-31 | Quanta Computer, Inc. | System and method for firmware verification |
US9710284B1 (en) | 2016-02-02 | 2017-07-18 | Mitac Computing Technology Corporation | System for programmably configuring a motherboard |
US10229883B2 (en) * | 2016-10-01 | 2019-03-12 | Intel Corporation | Systems, methods, and apparatuses for implementing late fusing of processor features using a non-volatile memory |
CN108337279B (zh) * | 2017-01-20 | 2021-01-29 | 阿里巴巴集团控股有限公司 | 一种智能设备的控制方法及装置 |
-
2018
- 2018-09-05 US US16/122,387 patent/US10489338B1/en active Active
- 2018-12-17 TW TW107145381A patent/TWI698753B/zh active
- 2018-12-28 CN CN201811619529.6A patent/CN110879720B/zh active Active
-
2019
- 2019-01-16 EP EP19152132.7A patent/EP3620916B1/en active Active
- 2019-03-20 JP JP2019053084A patent/JP6825029B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905566A (zh) * | 2014-04-22 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种服务器启动信息远程查看及导出方法 |
US9122501B1 (en) * | 2014-09-08 | 2015-09-01 | Quanta Computer Inc. | System and method for managing multiple bios default configurations |
CN106557344A (zh) * | 2015-09-29 | 2017-04-05 | 广达电脑股份有限公司 | 用于自动安装系统软件的计算机可读介质、服务器及方法 |
CN106998255A (zh) * | 2016-01-22 | 2017-08-01 | 腾讯科技(深圳)有限公司 | 一种反馈处理服务器、网络系统以及反馈处理方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI698753B (zh) | 2020-07-11 |
EP3620916A1 (en) | 2020-03-11 |
TW202011214A (zh) | 2020-03-16 |
CN110879720A (zh) | 2020-03-13 |
US10489338B1 (en) | 2019-11-26 |
JP2020038604A (ja) | 2020-03-12 |
EP3620916B1 (en) | 2023-07-19 |
JP6825029B2 (ja) | 2021-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110879720B (zh) | 可配置服务器及配置服务器的功能的方法 | |
US8943302B2 (en) | Method of flashing bios using service processor and computer system using the same | |
US10146551B2 (en) | Initializing and reconfiguring replacement motherboards | |
US10698696B2 (en) | Chipset fuse programming system | |
US11334359B2 (en) | Systems and methods for management of dynamic devices | |
US12153685B2 (en) | Systems and methods for vulnerability proofing when using a bootable image | |
US12137112B2 (en) | Systems and methods for vulnerability proofed cluster management | |
US12130931B2 (en) | Systems and methods for vulnerability proofing interdependent IHS components | |
US12141294B2 (en) | Systems and methods for context-aware vulnerability risk scores | |
US12189784B2 (en) | Systems and methods for vulnerability proofing when generating IHS updates | |
US12147544B2 (en) | Systems and methods for vulnerability proofing during IHS provisioning | |
US12174968B2 (en) | Systems and methods for vulnerability proofing when adding and replacing IHS hardware | |
US12235970B2 (en) | Systems and methods for aggregated vulnerability proofing of an IHS | |
US20240232370A9 (en) | Systems and methods for vulnerability proofing when updating an ihs | |
US12141295B2 (en) | Systems and methods for vulnerability proofing machine learning recommendations | |
US12135794B2 (en) | Systems and methods for validated vulnerability proofing | |
US12223059B2 (en) | Systems and methods for vulnerability proofing when configuring an IHS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |