CN117421055A - 启动控制装置、方法和计算机系统 - Google Patents

启动控制装置、方法和计算机系统 Download PDF

Info

Publication number
CN117421055A
CN117421055A CN202311423106.8A CN202311423106A CN117421055A CN 117421055 A CN117421055 A CN 117421055A CN 202311423106 A CN202311423106 A CN 202311423106A CN 117421055 A CN117421055 A CN 117421055A
Authority
CN
China
Prior art keywords
cluster
signal
clusters
peripheral interface
serial peripheral
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
Application number
CN202311423106.8A
Other languages
English (en)
Inventor
张文杰
杨佳星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxin Semiconductor Co Ltd filed Critical Shanghai Zhaoxin Semiconductor Co Ltd
Priority to CN202311423106.8A priority Critical patent/CN117421055A/zh
Publication of CN117421055A publication Critical patent/CN117421055A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及启动控制装置、方法和计算机系统。计算机系统的启动控制装置用于对多个簇的启动进行控制,各所述簇设置在对应的中央处理单元中且包括至少一个芯片组,芯片组包括增强型串行外设接口控制器,所述装置包括基板管理控制器,接收对应于所述多个簇中第一簇的第一启动完成信号,第一启动完成信号是第一簇从第一地址读取并执行完对应的基本输入输出系统后生成的;向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号,以使第二簇响应于启动使能信号从所述第一地址读取并执行对应的基本输入输出系统;启动完成信号包括第一启动完成信号。通过基板管理控制器在多个簇之间进行协调,本公开的实施例能够针对更广泛的CPU架构实现启动。

Description

启动控制装置、方法和计算机系统
技术领域
本公开涉及电子设备的启动,尤其涉及启动控制装置、方法和计算机系统。
背景技术
在常见的计算机系统中,以x86平台为例,例如两路通用的服务器产品是由一颗平台控制单元(Platform Controller Hub,PCH)芯片挂载一颗串行外设接口(SerialPeripheral Interface,SPI)闪存来执行基本输入输出系统相关代码。对于增强型串行外设接口(enhanced SPI,eSPI),当其工作模式为从连接闪存共享(Slave Attach FlashSharing即SAFS,下同)模式时,也是通过一颗PCH芯片来执行基本输入输出系统相关代码的。图1示出了现有技术的计算机系统的架构图。如图1所示,现有技术只有一颗PCH芯片(即南桥芯片,包含一个增强型串行外设接口控制器)和基板管理控制器(baseboardmanagement controller,缩写为BMC)通过增强型串行外设接口进行交互,从而完成对于以SPI总线挂载至BMC端的基本输入输出系统(BIOS)的读取、写入、擦除(read/write/erase)操作,进而实现系统基于增强型串行外设接口SAFS模式的启动。
然而,还存在其他架构的计算机系统。例如,对于包含多个簇(或节点)的计算机系统,主簇(Master cluster)和从簇(Slave cluster)(在本公开中,每个簇各自可以相当于一个片上系统,即System On Chip,缩写为SOC)可以各自集成自己的南桥芯片(即PCH芯片)。对于这样的计算机系统,使用常规的基于增强型串行外设接口协议的SAFS模式无法实现启动。
发明内容
有鉴于此,本公开提出了启动控制装置、方法和计算机系统。
根据本公开的一方面,提供了计算机系统的启动控制装置,用于对多个簇的启动进行控制,各所述簇设置在对应的中央处理单元(central processing unit,缩写为CPU)中且包括至少一个芯片组,芯片组包括增强型串行外设接口控制器,所述装置包括基板管理控制器,接收对应于所述多个簇中第一簇的第一启动完成信号,第一启动完成信号是第一簇从第一地址读取并执行完对应的基本输入输出系统后生成的;向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号,以使第二簇响应于启动使能信号从所述第一地址读取并执行对应的基本输入输出系统;启动完成信号包括第一启动完成信号。通过基板管理控制器在多个簇之间进行协调,本公开的实施例能够针对更广泛的CPU架构实现启动。
通过基板管理控制器在多个簇之间进行协调,根据本公开的各方面的启动控制装置、方法和计算机系统能够针对更广泛的CPU架构实现启动。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出现有技术的计算机系统的架构图。
图2示出根据本公开一实施例的启动控制装置200的示意框图。
图3示出多层可扩展MUX的多路复用单元的示意图。
图4示出计算机系统300的示例框图。
图5示出计算机系统500的示例框图。
图6示出一个CPU包含两个簇的计算机系统600的架构的示意框图。
图7示出两个CPU各自包含两个簇的计算机系统700的架构示意框图。
图8示出四个CPU各自包含一个簇的计算机系统800的架构示意框图。
图9示出作为一个具体示例的启动控制方法的流程图。
图10示出计算机系统启动过程的示意波形图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本发明人意识到,常规的基于增强型串行外设接口协议的SAFS启动(boot)模式在很多计算机系统中不适用,从而无法实现启动。由此,本公开提出了与传统SAFS模式完全不同的启动模式。如本文所描述的启动控制装置、方法和计算机系统,每个簇(cluster)可以代表一个启动单元,通过基板管理控制器在多个簇之间进行协调,可以直接控制多个簇按顺序进行启动,使得包含多插槽(socket)、多芯片组(包含多个增强型串行外设接口控制器)的计算机系统也可以实现启动。
在计算机系统启动时,作为主簇(Master cluster)和从簇(Slave cluster)的多个簇可以由基板管理控制器进行协调控制,来分别、按顺序执行基本输入输出系统(BIOS)。对于通过增强型串行外设接口访问基本输入输出系统、且包含多个簇的计算机系统,可以先从闪存读取并执行基本输入输出系统以启动从簇、再从闪存读取并执行基本输入输出系统以启动主簇。这是完全不同于现有技术的启动模式,并且没有定义在标准的增强型串行外设接口文档中。
本公开的上下文中,一个CPU可以对应于计算机主板上的一个安装插槽(也可以对应于一个片上系统)。一个CPU单元可以包括一个或多于一个簇,每个簇可以制作于一个裸片(即die,也称为裸晶、或晶粒)上。在一个具体实现中,每个簇可以包含一个、两个或更多个芯片组(即chipset,包含北桥芯片和南桥芯片)。在一个具体实现中,每个芯片组可以连接至少一个核心(即CPU core),例如2个或8个核心。在一个具体实现中,可以采用对称结构,使每个簇所包含的核心的数量一致。在本公开中,当从簇启动完毕后,可以主动通知BMC从簇已经启动完毕,BMC再通知主簇进行启动。
图2示出根据本公开一实施例的启动控制装置200的示意框图。如图2所示,该启动控制装置用于对多个簇的启动进行控制,各所述簇设置在对应的中央处理单元中并且包括至少一个芯片组,所述芯片组包括增强型串行外设接口控制器。启动控制装置200包括BMC202,其被配置为接收对应于所述多个簇中第一簇的第一启动完成信号,其中,所述第一启动完成信号是所述第一簇从第一地址读取并执行完对应的基本输入输出系统后生成的。BMC 202向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号,以使所述第二簇响应于所述启动使能信号从第一地址读取并执行对应的基本输入输出系统;其中,所述启动完成信号包括所述第一启动完成信号。
在一个具体实现中,在与BMC 202连接的增强型串行外设接口控制器总线上传送至少两次对第一地址的请求。可以通过例如USB分析仪等仪器在增强型串行外设接口控制器总线上靠近BMC 202一端抓取到相应的波形,从而直观观察到根据本公开的启动控制中存在至少两次对第一地址的请求。该波形的示例将在后续的图10中具体说明。
在一个可能的实现方式中,启动控制装置也可以进一步包括多路复用单元。所述多路复用单元包括多个输出端子、至少一个输入端子和至少一个选择端子,各所述输出端子连接到对应的簇的增强型串行外设接口,各所述选择端子和各所述输入端子连接到所述基板管理控制器;所述基板管理控制器,还用于向所述多路复用单元发送控制信号,所述控制信号用于指示需要进行信号传输的目标输出端子并且依赖于所述启动使能信号,所述目标输出端子为与所述第二簇连接的输出端子;各所述选择端子,用于根据所述控制信号导通相应输入端子与所述目标输出端子之间的通路,以使得所述启动使能信号从基板管理控制器传输至所述第二簇。
多路复用单元可以包含一个或多于一个多路复用器(multiplexer,缩写为MUX,也称为多工器)。在多路复用单元包含一个MUX的情况下(在这种情况下,所述MUX被分为一个层),MUX的输入端子连接到BMC的增强型串行外设接口,MUX的输出端子分别连接到不同的簇(例如,第一簇和第二簇)的增强型串行外设接口,MUX的选择端子连接到BMC以从BMC接收用于在不同簇(例如,第一簇和第二簇)之间进行切换的控制信号。
在一个具体实现中,所述控制信号可以根据启动完成信号的电平而改变。例如,可以通过启动完成信号的反相或者值递增作为触发来控制MUX的切换。
在一个可能的实现方式中,计算机系统中可以包括多个中央处理单元。各中央处理单元中可以设置有一个簇,也可以各自设置有至少两个簇。
图3示出多层可扩展MUX的多路复用单元的示意图。在计算机系统包括多于两个簇(例如下文图4、图7、图8所说明)的情况下,可以使用图3所例示的多路复用单元。如图3所示,在一个可能的实现方式中,在多路复用单元包含多个MUX的情况下,所述多个多路复用器被划分为多个层,上一层多路复用器(如图3中的MUX 0)的输出端子连接到下一层多路复用器(如图3中的MUX 1和2)的输入端子,其中第一层的多路复用器的输入端子连接到所述基板管理控制器的增强型串行外设接口,最下一层的各多路复用器的输出端子分别连接到对应的簇的增强型串行外设接口,各所述多路复用器的选择端子连接到所述基板管理控制器;各所述多路复用器的选择端子,用于根据所述控制信号导通自身的输入端子与能连接到所述目标输出端子的输出端子之间的通路,进而导通第一层的多路复用器的输入端子与所述目标输出端子之间的通路。举例来说,根据所述控制信号(该控制信号同时输入MUX 0、1和2的选择端子),当图3中的MUX 1右边的输出端子为目标输出端子时,MUX 0的输入端子与其左边的输出端子之间的通路会被导通、MUX 1的输入端子与其右边的输出端子之间的通路会被导通,进而导通MUX 0(第一层的多路复用器)的输入端子和MUX 1右边的输出端子(目标输出端子)之间的通路。
在一个可能的实现方式中,默认导通基板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口,并响应于检测到上电,板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口进行握手操作,以使所述第一簇在完成握手操作后执行基本输入输出系统。
在一个可能的实现方式中,所述第一簇是多个所述中央处理单元中的第一中央处理单元中能正常工作且未被禁用的簇,所述第一启动完成信号是在确定所述第一簇执行完对应的基本输入输出系统后发出的。在一个具体实现中,在各所述第一簇启动完毕后,基本输入输出系统可以主动触发第一启动完成信号。
在一个可能的实现方式中,多路复用单元的控制信号可以根据第一启动完成信号的触发而改变,从而导通多路复用单元的输入端子与同所述第二簇的增强型串行外设接口相连接的目标输出端子之间的通路。然后,基板管理控制器可以向第二簇发送启动使能信号。
在一个可能的实现方式中,使所述第二簇响应于所述启动使能信号从所述第一地址读取并执行完对应的基本输入输出系统后返回第二启动完成信号,所述启动完成信号包括所述第一启动完成信号和所述第二启动完成信号,所述第二簇是所述多个中央处理单元中的第二中央处理单元中能正常工作且未被禁用的簇,所述第二启动完成信号是在确定顺序启动的所述第二簇执行完对应的基本输入输出系统后发出的。
在一个具体实现中,该第一、第二簇可以包括在同一个CPU中。
在一个可能的实现方式中,第一簇包括多个核心,所述第一簇的其中一个核心执行完基本输入输出系统,可以视为第一簇启动完成。所述第二簇也包括多个核心,所述第二簇的其中一个核心执行完基本输入输出系统,可以视为第二簇启动完成。在一个具体实现中,第二簇中编号最小的一个核心为计算机系统引导处理器(BootStrap Processor,缩写为BSP),且基本输入输出系统是由引导处理器负责执行的。在一个具体实现中,引导处理器执行完基本输入输出系统,表示整个计算机系统的启动完成。所述第二启动完成信号是所述第二簇在确定所述引导处理器启动完成后发出的。
在一个可能的实现方式中,各所述簇包括一个或多于一个芯片组,每个芯片组连接到共用该芯片组的一个或多于一个核心。各所述簇中所包含的核心的数量可以相同也可以不同,在本公开中不作限制。
在一个可能的实现方式中,所述多个簇的数量至少为4个,所述多个簇中至少两个簇通过自身的第一管脚进行启动完成信号的发送以及通过自身的第二管脚进行启动使能信号的接收,所述第一管脚和所述第二管脚与所述基板管理控制器连接。在本公开中,“连接”一词不限于元件/模块之间的直接相连,也包含经由中继模块等其它元件/模块进行的间接相连。
在一个具体实现中,默认导通基板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口。响应于检测到上电,基板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口进行握手操作,以使所述第一簇在完成握手操作后执行基本输入输出系统。
图4示出计算机系统300的示例框图。如图4所示,计算机系统300可以包括BMC302、第一簇304、第二簇306。各所述簇设置在对应的中央处理单元中,所述多个簇中的第一簇304,用于从第一地址读取并执行完基本输入输出系统后,向所述基板管理控制器发送第一启动完成信号;所述基板管理控制器,用于在接收到启动完成信号之后,向在所述启动完成信号所对应的簇之后启动的第二簇306发送启动使能信号;所述第二簇306,用于在接收到启动使能信号后,从所述第一地址读取并执行对应的基本输入输出系统;其中,所述启动完成信号包括所述第一启动完成信号。
在一个具体实现中,计算机系统300还可以包括在BMC 302协调控制下的更多个簇。在一个具体实现中,每个簇可以制作于一个裸晶(die)上。在计算机系统的启动控制中,作为启动单元的各簇的基本输入输出系统代码大部分相同,但针对各簇存在一些差异。例如,每个簇执行的第一部分的基本输入输出系统代码是相同的,这部分代码存放在相同的地址、并由所有的簇共用。有差异的代码可以被存放在不同的地址中。
图5示出计算机系统500的示例框图。图5中例示了一个CPU包含一个簇的配置。如图5所示,计算机系统500包括BMC 502、第一簇504和第二簇506。在计算机系统500中,CPU0和CPU1分别包括一个簇。图5可以适用于例如南桥在簇内部的两路多芯片组平台。
当计算机系统500进行启动时,可以先将存储有基本输入输出系统(BIOS)508的ROM挂载至BMC 502的SPI控制器上。如箭头1所示,BMC 502发送给多路复用单元510的默认控制信号使多路复用单元510导通BMC 502的增强型串行外设接口和第一簇504的增强型串行外设接口;响应于检测到上电,BMC 502的增强型串行外设接口与第一簇504的增强型串行外设接口进行握手操作;握手完成后,第一簇504读取并执行基本输入输出系统508。如箭头2所示,执行完基本输入输出系统508后,第一簇504发送启动完成信号(Boot_Done)给BMC502。如箭头3所示,BMC 502通过由第一簇504发送来的启动完成信号(Boot_Done)获知第一簇504已启动完成,BMC 502改变发送给多路复用单元510的控制信号,使多路复用单元510导通BMC 502的增强型串行外设接口和第二簇506的增强型串行外设接口。如箭头4所示,BMC 502通过发送启动使能信号(Boot_En)给第二簇506,使第二簇506读取并执行基本输入输出系统508。
在一个具体实现中,例如第一簇504被预设为从簇,且第一簇504的启动使能信号(图中未示出)被设置为默认为允许启动的状态(例如电平状态),以便第一簇504可以在计算机系统500上电后自行启动。
在一个具体实现中,第一簇504和第二簇506所用的基本输入输出系统508可以存储在同一颗ROM中,在ROM的起始位置有例如4KB的空间用于存储主簇和从簇的基本输入输出系统。在一个具体实现中,主簇与从簇所执行的基本输入输出系统代码也可以存在附加的差异部分。对ROM的访问请求可以由每个簇中的串行外设接口控制器决定。这些对ROM的访问请求可以被转换成增强型串行外设接口的访问请求发送给BMC 502的增强型串行外设接口控制器,然后再由BMC 502将相应SPI中对应地址的数据(即基本输入输出系统)通过增强型串行外设接口反馈给相应的簇。
在一个具体实现中,如图5所示的计算机系统500可以利用以下流程进行启动:
将存储有基本输入输出系统508的ROM挂载到BMC 502的串行外设接口控制器下;
BMC 502发送给多路复用单元510的默认控制信号使多路复用单元510默认导通第一簇504的增强型串行外设接口到BMC的增强型串行外设接口(如箭头1所示);
第一簇504启动完成后,第一簇504向BMC 502发送启动完成信号(Boot_Done),以通知BMC 502第一簇504已启动完成(如箭头2所示);
BMC 502收到启动完成信号(Boot_Done)后,BMC 502改变发送给多路复用单元510的控制信号,使多路复用单元510导通第二簇506的增强型串行外设接口和BMC 502的增强型串行外设接口(如箭头3所示);
BMC 502向第二簇506发送启动使能信号(Boot_EN),以通知第二簇506进行启动(如箭头4所示);
第二簇506启动完毕后,系统启动完成。
尽管图5示出了两个簇,但本领域技术人员将可理解,本公开的方案可以包括更多个簇。在大于两路的多簇(多增强型串行外设接口控制器)计算机系统中,进行启动控制的示例流程可以概述如下:
1.除了第一个启动的簇,其余每个簇都需要有Boot_Done、Boot_EN的两根信号线供BMC获知及控制启动流程;
2.每个簇中的增强型串行外设接口控制器均需要连接至一个MUX,且MUX需要由BMC通过控制信号进行控制;
3.响应于BMC收到一个启动完成信号(Boot_Done),BMC向下一个簇发送启动使能信号(Boot_EN),以通知下一个簇进行启动。
图6示出一个CPU包括两个簇的计算机系统600的架构的示意框图。如图6所示,系统600包括BMC 602、第一簇604和第二簇606。与图5所示的示例实施方式相比,图6的区别主要在于将第二簇与第一簇封装到同一个CPU中。与图5类似,计算机系统600利用多路复用单元610执行第一簇604、第二簇606之间的切换。
在一个具体实现中,第一簇604和第二簇606可以各自执行一次基本输入输出系统608,每个簇中的一个核心负责执行基本输入输出系统608。每个簇可以具有属于自己的增强型串行外设接口控制器,所以一个CPU可以包含多个增强型串行外设接口控制器,增强型串行外设接口控制器的数量可以与簇的数量相对应。
图7示出两个CPU各自包括两个簇的计算机系统700的架构示意框图。如图7所示,系统700包括BMC 702、第一簇704、第二簇706、第三簇708和第四簇710。与图5相比,图7的系统700增加了每个CPU内部所包括的簇的数量。
在一个具体实现中,可以在计算机系统700的主板上配置多路复用单元710,并利用多路复用单元710执行上述四个簇之间的切换。BMC 702内部可以针对不同型号的中央处理单元建立相应的数据库,用于保存不同中央处理单元包含的簇、以及每个簇中包含的核心的相关信息,以便于控制不同型号CPU启动的流程。计算机系统700可以按照每个CPU所对应的插槽在主板上的顺序来启动。
在一个具体实现中,每个CPU包含至少一个簇,每个簇对应一个启动完成信号(Boot_Done)、启动使能信号(Boot_EN)、增强型串行外设接口。
图8示出四个CPU分别包括一个簇的计算机系统800的示例架构框图。计算机系统800包括BMC 802、第一簇804、第二簇806、第三簇808和第四簇810。与图5相比,图8的计算机系统800扩展了CPU(或SOC)的数量。与图7类似,计算机系统800利用多路复用单元810执行第一簇804、第二簇806、第三簇808和第四簇810之间的切换。
图9示出作为一个具体示例的启动控制方法的流程图。如图9所示,启动控制方法可以包括:接收对应于所述多个簇中第一簇的第一启动完成信号(步骤902);以及向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号(步骤904),以使各所述第二簇响应于所述启动使能信号从第一地址读取并执行对应的基本输入输出系统;其中,所述启动完成信号包括所述第一启动完成信号。
在一个具体实现中,所述方法还包括通过增强型串行外设接口控制器总线发送至少两次对所述第一地址的读取请求。
在一个具体实现中,启动控制方法还可以包括如下步骤:
向多路复用单元发送控制信号,所述控制信号用于指示需要进行信号传输的目标输出端子并且依赖于所述启动使能信号,所述目标输出端子为所述第二簇连接的输出端子;
所述多路复用单元的选择端子,用于根据所述控制信号导通相应输入端子与所述目标输出端子之间的通路,以使得所述启动使能信号从所述基板管理控制器传输至所述第二簇;
其中,所述多路复用单元包括多个输出端子、至少一个输入端子和至少一个选择端子,各所述输出端子连接到对应的簇的增强型串行外设接口。
如上所述,本公开的技术方案可以应用于服务器或数据中心,也可以应用于其他电子设备,只要存在类似于基板管理控制器的概念并支持增强型串行外设接口的SAFS启动模式,本公开就可以适用。
需要说明的是,在计算机系统启动时,每个簇通过增强型串行外设接口所获取的第一条数据的地址都是0xFFFFFFF0。根据本公开的技术方案,在计算机系统启动时,在增强型串行外设接口控制器总线上会多次出现对地址0xFFFFFFF0的请求。
图10示出了计算机系统启动过程的示意波形图。在计算机系统启动时,可以在靠近基板管理控制器端的增强型串行外设接口控制器总线上使用仪器(例如USB分析仪)来抓取数据波形图。如图10所示,波形图示出了从1至7的七个波形区段。在区段1,发送数据之前,先写入数据b(即十六进制数B),并将时钟信号拉低。区段2-7是一个闪存读取请求的不同部分。区段2(“PUT FLASH NP”)表示这是一个针对闪存的未发布(Non-Posted)请求。区段3(“cycle type=flash read”)表示这是一个闪存读取请求,且其标识(tag)为0。区段4(“length=4”)表示该请求指示从闪存读取4字节的数据。区段5表示该请求指示从闪存地址0xFFFFFFF0处开始读取数据。区段6为该请求的循环冗余校验(CRC)。相隔一定时间段后,在区段7,波形再次示出对地址0xFFFFFFF0的读取请求。后续以此类推,还可以出现更多次对地址0xFFFFFFF0的请求。本领域技术人员都了解闪存读取请求中各区段的定义,此次就不再赘述了。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本公开中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本公开披露的各实施例。

Claims (21)

1.一种计算机系统的启动控制装置,其特征在于,用于对多个簇的启动进行控制,各所述簇设置在对应的中央处理单元中并且包括至少一个芯片组,所述芯片组包括增强型串行外设接口控制器,所述装置包括:
基板管理控制器,被配置为:
接收对应于所述多个簇中第一簇的第一启动完成信号,其中,所述第一启动完成信号是所述第一簇从第一地址读取并执行完对应的基本输入输出系统后生成的;以及
向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号,以使所述第二簇响应于所述启动使能信号从所述第一地址读取并执行对应的基本输入输出系统;
其中,所述启动完成信号包括所述第一启动完成信号。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:多路复用单元,所述多路复用单元包括多个输出端子、至少一个输入端子和至少一个选择端子,各所述输出端子连接到对应的簇的增强型串行外设接口,各所述选择端子和各所述输入端子连接到所述基板管理控制器;
所述基板管理控制器,还用于向所述多路复用单元发送控制信号,所述控制信号用于指示需要进行信号传输的目标输出端子并且依赖于所述启动使能信号,所述目标输出端子为与所述第二簇连接的输出端子;
各所述选择端子,用于根据所述控制信号导通相应输入端子与所述目标输出端子之间的通路,以使得所述启动使能信号从所述基板管理控制器传输至所述第二簇。
3.根据权利要求1所述的装置,其特征在于,所述中央处理单元为多个,各所述中央处理单元中设置有一个或至少两个所述簇。
4.根据权利要求2所述的装置,其特征在于,所述中央处理单元为多个,各所述中央处理单元中设置有两个以上的簇;
所述多路复用单元包括至少一个多路复用器,所述至少一个多路复用器被划分为至少一个层,上一层多路复用器的输出端子连接到下一层多路复用器的输入端子,其中第一层的多路复用器的输入端子连接到所述基板管理控制器的增强型串行外设接口,最下一层的各多路复用器的输出端子连接到对应的簇的增强型串行外设接口,各所述多路复用器的选择端子连接到所述基板管理控制器;
各所述多路复用器的选择端子,用于根据所述控制信号导通自身的输入端子与能连接到所述目标输出端子的输出端子之间的通路。
5.根据权利要求3或4所述的装置,其特征在于,所述第一簇是多个所述中央处理单元中的第一中央处理单元中能正常工作且未被禁用的簇,所述第一启动完成信号是在确定所述第一簇执行完对应的基本输入输出系统后发出的;并且/或者
使所述第二簇响应于所述启动使能信号从对应的第一地址读取并执行完对应的基本输入输出系统后返回第二启动完成信号,所述启动完成信号包括所述第一启动完成信号和所述第二启动完成信号,所述第二簇是多个中央处理单元中的第二中央处理单元中能正常工作且未被禁用的簇,所述第二启动完成信号是在确定所述第二簇执行完对应的基本输入输出系统后发出的。
6.根据权利要求5所述的装置,其特征在于,
所述第二簇包括多个核心,其中一个核心为所述计算机系统的引导处理器,响应于所述引导处理器启动完成,所述计算机系统的启动完成,其中,所述第二启动完成信号是所述第二簇在确定所述引导处理器启动完成后发出的。
7.根据权利要求1所述的装置,其特征在于,各所述簇中的每个芯片组连接到共用该芯片组的一个或多于一个核心。
8.根据权利要求1所述的装置,其特征在于,所述多个簇的数量至少为4个,所述多个簇中至少两个簇通过自身的第一管脚进行启动完成信号的发送以及通过自身的第二管脚进行启动使能信号的接收,所述第一管脚和所述第二管脚与所述基板管理控制器连接。
9.根据权利要求1所述的装置,其特征在于:
默认导通基板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口,并响应于检测到上电,基板管理控制器的增强型串行外设接口和第一簇的增强型串行外设接口进行握手操作,以使所述第一簇在完成握手操作后执行基本输入输出系统。
10.一种计算机系统,其特征在于,包括:多个簇和基板管理控制器,各所述簇设置在对应的中央处理单元中并且包括至少一个芯片组,所述芯片组包括增强型串行外设接口控制器,
所述多个簇中的第一簇,用于从第一地址读取并执行完所述第一簇对应的基本输入输出系统后,向所述基板管理控制器发送第一启动完成信号;
所述基板管理控制器,用于在接收到启动完成信号之后,向在所述启动完成信号所对应的簇之后启动的第二簇发送启动使能信号;
所述第二簇,用于在接收到启动使能信号后,从所述第一地址读取并执行对应的基本输入输出系统;
其中,所述启动完成信号包括所述第一启动完成信号。
11.根据权利要求10所述的系统,其特征在于,所述系统还包括:多路复用单元,所述多路复用单元包括多个输出端子、至少一个输入端子和至少一个选择端子,各所述输出端子连接到对应的簇的增强型串行外设接口,所述选择端子连接到所述基板管理控制器的增强型串行外设接口;
所述基板管理控制器,还用于向所述多路复用单元发送控制信号,所述控制信号用于指示需要进行信号传输的目标输出端子并且依赖于所述启动使能信号,所述目标输出端子为与所述第二簇连接的输出端子;
所述多路复用单元,用于根据所述控制信号导通相应输入端子与所述目标输出端子之间的通路,以使得所述启动使能信号从所述基板管理控制器传输至所述第二簇。
12.根据权利要求10所述的系统,其特征在于,所述系统还包括:多个中央处理单元,各所述中央处理单元中设置有一个或至少两个所述簇。
13.根据权利要求11所述的系统,其特征在于,所述中央处理单元为多个,各所述中央处理单元中设置有两个以上的簇;
所述多路复用单元包括至少一个多路复用器,所述至少一个多路复用器被划分为至少一个层,上一层多路复用器的输出端子连接到下一层多路复用器的输入端子,其中第一层的多路复用器的输入端子连接到所述基板管理控制器的增强型串行外设接口,最下一层的各多路复用器的输出端子连接到对应的簇的增强型串行外设接口,各所述多路复用器的选择端子连接到所述基板管理控制器;
各所述多路复用器的选择端子,用于根据所述控制信号导通自身的输入端子与能连接到所述目标输出端子的输出端子之间的通路。
14.根据权利要求11或13所述的系统,其特征在于,所述第一簇包括多个所述中央处理单元中的第一中央处理单元中能正常工作且未被禁用的簇,所述第一启动完成信号是所述第一中央处理单元在确定所述第一簇执行完对应的基本输入输出系统后发出的;并且/或者
使所述第二簇响应于所述启动使能信号从所述第一地址读取并执行完对应的基本输入输出系统后返回第二启动完成信号,所述启动完成信号包括所述第一启动完成信号和所述第二启动完成信号,所述第二簇是多个所述中央处理单元中的第二中央处理单元中能正常工作且未被禁用的簇,所述第二启动完成信号是所述第二中央处理单元在确定所述第二簇执行完对应的基本输入输出系统后发出的。
15.根据权利要求14所述的系统,其特征在于,
其中一个核心为所述计算机系统的引导处理器,响应于所述引导处理器启动完成,所述计算机系统的启动完成,其中,所述第二启动完成信号是所述第二簇在确定所述引导处理器启动完成后发出的。
16.根据权利要求10所述的系统,其特征在于,各所述簇包括一个或多于一个芯片组,每个芯片组连接到共用该芯片组的一个或多于一个核心。
17.根据权利要求10所述的系统,其特征在于,所述多个簇的数量至少为4个,所述多个簇中至少两个簇通过自身的第一管脚进行启动完成信号的发送以及通过自身的第二管脚进行启动使能信号的接收,所述第一管脚和所述第二管脚与所述基板管理控制器连接。
18.一种计算机系统的启动控制方法,其特征在于,用于对多个簇的启动进行控制,各所述簇设置在对应的中央处理单元中并且包括至少一个芯片组,所述芯片组包括增强型串行外设接口控制器,所述方法包括:
接收对应于所述多个簇中第一簇的第一启动完成信号,其中,所述第一启动完成信号是所述第一簇从第一地址读取并执行完对应的基本输入输出系统后生成的;以及
向在启动完成信号所对应的簇之后启动的第二簇发送启动使能信号,以使所述第二簇响应于所述启动使能信号从所述第一地址读取并执行对应的基本输入输出系统;
其中,所述启动完成信号包括所述第一启动完成信号。
19.根据权利要求18所述的方法,其特征在于,还包括:
向多路复用单元发送控制信号,所述控制信号用于指示需要进行信号传输的目标输出端子并且依赖于所述启动使能信号,所述目标输出端子为与所述第二簇连接的输出端子;
所述多路复用单元的选择端子,其特征在于,用于根据所述控制信号导通相应输入端子与所述目标输出端子之间的通路,以使得所述启动使能信号传输至所述第二簇;
其中,所述多路复用单元包括多个输出端子、至少一个输入端子和至少一个选择端子,各所述输出端子连接到对应的簇的增强型串行外设接口。
20.根据权利要求18所述的方法,其特征在于,所述第二簇包括多个核心,其中一个核心为所述计算机系统的引导处理器,响应于所述引导处理器启动完成,所述计算机系统的启动完成。
21.根据权利要求18所述的方法,其特征在于,还包括:通过增强型串行外设接口控制器总线发送至少两次对所述第一地址的读取请求。
CN202311423106.8A 2023-10-30 2023-10-30 启动控制装置、方法和计算机系统 Pending CN117421055A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311423106.8A CN117421055A (zh) 2023-10-30 2023-10-30 启动控制装置、方法和计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311423106.8A CN117421055A (zh) 2023-10-30 2023-10-30 启动控制装置、方法和计算机系统

Publications (1)

Publication Number Publication Date
CN117421055A true CN117421055A (zh) 2024-01-19

Family

ID=89528029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311423106.8A Pending CN117421055A (zh) 2023-10-30 2023-10-30 启动控制装置、方法和计算机系统

Country Status (1)

Country Link
CN (1) CN117421055A (zh)

Similar Documents

Publication Publication Date Title
US7739487B2 (en) Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from
US9542201B2 (en) Network bios management
EP3002677A1 (en) System and method for managing multiple bios default configurations
JP5701259B2 (ja) ホストからのメモリ装置のブーティング
US8943302B2 (en) Method of flashing bios using service processor and computer system using the same
US7822964B2 (en) Booting apparatus for booting a computer and method therefor and computer with a booting apparatus
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
CN105814541A (zh) 计算机设备及计算机设备内存启动的方法
US10691468B2 (en) Techniques of retrieving bios data from BMC
US9298371B1 (en) System and method of reducing write cycles and increasing longevity of non-volatile memory in baseboard management controller (BMC)
US10430181B1 (en) Retrieving updated firmware code
CN111159090B (zh) 一种信息处理方法、装置和电子设备
CN110297726B (zh) 具有串行存在检测数据的计算机系统及内存模块控制方法
US11144326B2 (en) System and method of initiating multiple adaptors in parallel
US9946552B2 (en) System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC)
CN109725940B (zh) 用于计算系统启动的方法和计算系统
CN111930575B (zh) 一种固件获取方法、装置及电子设备
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
CN117421055A (zh) 启动控制装置、方法和计算机系统
US10628309B1 (en) Loading a serial presence detect table according to jumper settings
CN113468028B (zh) 用于计算设备的设备管理方法、计算设备、装置和介质
CN113392052B (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
CN117331676B (zh) 系统管理模式进入方法、处理器和计算机系统
WO2018063722A1 (en) Accessing memory coupled to a target node from an initiator node
US10803008B2 (en) Flexible coupling of processor modules

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