CN117742935A - 一种服务器中处理器信息的带外查询/配置方法及服务器 - Google Patents

一种服务器中处理器信息的带外查询/配置方法及服务器 Download PDF

Info

Publication number
CN117742935A
CN117742935A CN202311525757.8A CN202311525757A CN117742935A CN 117742935 A CN117742935 A CN 117742935A CN 202311525757 A CN202311525757 A CN 202311525757A CN 117742935 A CN117742935 A CN 117742935A
Authority
CN
China
Prior art keywords
cpu
bus
bmc
buses
cpus
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
CN202311525757.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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies 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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202311525757.8A priority Critical patent/CN117742935A/zh
Publication of CN117742935A publication Critical patent/CN117742935A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种服务器中处理器CPU信息的带外查询/配置方法,应用于服务器中的基板管理控制器BMC,服务器中配置有多个CPU,每个CPU与BMC之间均通过多个总线连接。该方法包括:BMC接收带外管理命令,带外管理命令用于查询/配置多个CPU的信息;响应于带外管理命令,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU,并且BMC同步通过多个总线中的第二总线访问多个CPU中的第二CPU;BMC获取第一CPU和第二CPU的信息,或者,对第一CPU和第二CPU的信息进行配置。这样,BMC通过多个总线并行访问多个CPU,并对各个CPU中的信息进行查询/配置,提升了BMC查询/配置多个CPU中的信息的效率。

Description

一种服务器中处理器信息的带外查询/配置方法及服务器
本申请是分案申请,原申请的申请号是202211296847.X,原申请日是2022年10月21日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务器中处理器CPU信息的带外查询/配置方法及服务器。
背景技术
服务器中的处理器(central processing unit,CPU)中常配置有带外管理服务模块(out of band system management service module,OOBMSM)。通过该OOBMSM可以为CPU提供带外接口。基于该带外接口,服务器中的基板管理控制器(baseboard managementcontroller,BMC)可以查询/配置CPU中的信息。但当服务器中CPU的数量为多个时,BMC查询/配置CPU中的信息时常需要花费较多的时间。
发明内容
本申请提供了一种服务器中处理器CPU信息的带外查询/配置方法、服务器及计算机存储介质,能够提升服务器中BMC查询/配置CPU中信息的效率。
第一方面,本申请提供一种服务器中处理器CPU信息的带外查询/配置方法,应用于服务器中的基板管理控制器BMC,服务器中配置有多个CPU,每个CPU与BMC之间均通过多个总线连接。该方法包括:BMC接收带外管理命令,带外管理命令用于查询/配置多个CPU的信息;响应于带外管理命令,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU,并且BMC同步通过多个总线中的第二总线访问多个CPU中的第二CPU;BMC获取第一CPU和第二CPU的信息,或者,对第一CPU和第二CPU的信息进行配置。
本申请实施例,在对CPU中的信息进行带外查询/配置时,BMC通过多个总线并行访问多个CPU,并对各个CPU中的信息进行查询/配置。由此,提升了BMC查询/配置多个CPU中的信息的效率。同时,由于BMC可以通过多个总线访问CPU,因此,当一个总线出现故障时,BMC也可以通过其他的总线访问CPU,提升了系统的可靠性。
在一种可能的实现方式中,带外管理命令为:用于查询多个CPU的信息的查询指令,或者,用于配置多个CPU的信息的配置指令。
在一种可能的实现方式中,带外管理命令为:用于收集多个CPU中崩溃日志(CrashLog)的日志收集指令。此时,BMC获取第一CPU和第二CPU的信息,具体包括:BMC通过第一总线获取第一CPU中的CrashLog,并同步通过第二总线获取第二CPU中的CrashLog。
在一种可能的实现方式中,当服务器出现宕机时,带外管理命令为日志收集指令。
在一种可能的实现方式中,多个总线包括:平台环境式控制接口PECI总线,增强型双向二线制同步串行I3C总线,或者,高速串行计算机扩展总线标准PCIE总线中的三个或任意两个。
在一种可能的实现方式中,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU,包括:BMC通过多个总线中的第一总线发送I/O请求;若在预设时间内接收到响应于I/O请求的响应消息,则BMC通过第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU,包括:BMC确定与多个总线中的第一总线连接的总线接口未被占用,BMC通过第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,方法还包括:在第一总线出现故障,或,第一总线连接的总线接口被占用的情况下,BMC通过多个总线中除第一总线之外的总线访问多个CPU中的任意一个CPU。这样,多个总线互为备份,有效提升了带外查询/配置CPU信息的可靠性。
第二方面,本申请提供一种服务器中处理器CPU信息的带外查询/配置装置,部署于服务器中的基板管理控制器BMC,服务器中配置有多个CPU,每个CPU与BMC之间均通过多个总线连接。该装置包括:接收模块,用于接收带外管理命令,带外管理命令用于查询/配置多个CPU的信息。访问模块,用于响应于带外管理命令,通过多个总线中的第一总线访问多个CPU中的第一CPU,并且同步通过多个总线中的第二总线访问多个CPU中的第二CPU。查询/配置模块,用于获取第一CPU和第二CPU的信息,或者,对第一CPU和第二CPU的信息进行配置。
在一种可能的实现方式中,带外管理命令为:用于查询多个CPU的信息的查询指令,或者,用于配置多个CPU的信息的配置指令。
在一种可能的实现方式中,带外管理命令为:用于收集多个CPU中崩溃日志(CrashLog)的日志收集指令。此时,查询/配置模块在获取第一CPU和第二CPU的信息时,具体用于:BMC通过第一总线获取第一CPU中的CrashLog,并同步通过第二总线获取第二CPU中的CrashLog。
在一种可能的实现方式中,当服务器出现宕机时,带外管理命令为日志收集指令。
在一种可能的实现方式中,多个总线包括:平台环境式控制接口PECI总线,增强型双向二线制同步串行I3C总线,或者,高速串行计算机扩展总线标准PCIE总线中的三个或任意两个。
在一种可能的实现方式中,访问模块在通过多个总线中的第一总线访问多个CPU中的第一CPU时,具体用于:通过多个总线中的第一总线发送I/O请求;若在预设时间内接收到响应于I/O请求的响应消息,则通过第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,访问模块在通过多个总线中的第一总线访问多个CPU中的第一CPU时,具体用于:BMC确定与多个总线中的第一总线连接的总线接口未被占用,BMC通过第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,方法还包括:在第一总线出现故障,或,第一总线连接的总线接口被占用的情况下,访问模块通过多个总线中除第一总线之外的总线访问多个CPU中的任意一个CPU。
第三方面,本申请提供一种服务器,包括:多个处理器CPU;基板管理控制器BMC,每个CPU与BMC之间均通过多个总线连接,BMC用于执行第一方面中所描述的方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面中所描述的方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种服务器内BMC和CPU连接的示意图;
图2是本申请实施例提供的一种服务器内BMC和CPU连接的示意图;
图3是本申请实施例提供的一种服务器内BMC和CPU连接的示意图;
图4是本申请实施例提供的一种服务器中CPU信息的带外查询/配置方法的流程示意图;
图5是本申请实施例提供的一种BMC对服务器中一个CPU中的信息进行查询/配置的过程示意图;
图6是本申请实施例提供的一种BMC收集n个CPU中CrashLog的示意图;
图7是本申请实施例提供的一种服务器中处理器CPU信息的带外查询/配置装置的结构示意图。
具体实施方式
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
示例性的,图1示出了一种服务器内BMC和CPU连接的示意图。如图1所示,服务器中可以配置有BMC和多个CPU(即CPU 1至CPU n)。各个CPU均通过平台环境式控制接口(platform environment control interface,PECI)总线与BMC连接。每个CPU中均配置有用于提供带外接口的OOBMSM。该带外接口可以为PECI总线接口,BMC中配置有PECI控制器(controller)。其中,PECIcontroller可以提供PECI总线接口。BMC中的PECI总线接口可以通过PECI总线与CPU中的PECI总线接口连接。
BMC也称为带外控制器,运行有带外管理模块,通过独立的管理通道对服务器进行远程维护和管理。该带外管理模块是非业务模块的管理单元,完全独立于服务器的操作系统之外,可以通过服务器的带外管理接口(例如包括PECI接口、PCIE接口、I3C接口等)与基本输入输出系统(basic input output system,BIOS)和操作系统(operating system,OS)(或OS管理单元)进行通信。
示例性的,带外管理模块可以包括计算机设备运行状态的管理单元、处理器外的管理芯片中的管理系统、计算机设备主板管理单元、系统管理模块(system managementmode,SMM)等。需要说明的,本申请实施例对带外管理模块的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以带外管理模块为BMC软件为例进行说明。下述实施例中描述的BMC执行某个步骤,可以理解为是:带外控制器调用带外管理模块执行该步骤。
在图1中,PECI总线只支持一对一访问,即BMC一次只能访问一个CPU。由于服务器中配置有多个CPU,因此,当BMC查询/配置这些CPU中的信息时,所花费的时间较查询/配置单个CPU将成倍增加。另外,当PECI总线出现故障时,BMC将无法查询/配置CUP的信息,可靠性较低。
有鉴于此,本申请实施例提供了一种服务器中CPU信息的带外查询/配置方法,在该方法中,BMC可以基于多个总线并行访问多个CPU,并对各个CPU中的信息进行查询/配置。由此,提升了BMC查询/配置多个CPU中的信息的效率。同时,由于BMC可以通过多个总线访问CPU,因此,当一个总线出现故障时,BMC也可以通过其他的总线访问CPU,提升了系统的可靠性。
示例性的,图2示出了另一种服务器内BMC和CPU连接的示意图。如图2所示,服务器中可以配置有BMC和多个CPU(即CPU 0至CPU n)。各个CPU均通过PECI总线、增强型双向二线制同步串行(improved inter-integrated circuit,I3C)总线、高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)总线与BMC连接。在BMC中可以配置有PECI controller、I3Ccontroller和PCIEcontroller。其中,PECI controller可以提供PECI总线接口,I3C controller可以提供I3C总线接口,PCIE controller可以提供PCIE总线接口。在各个CPU中均可以配置有PECI总线接口、I3C总线接口和PCIE总线接口。
在一些实施例中,BMC和各个CPU间也均可以通过PECI总线、I3C总线和PCIE总线中的任意两个连接。此时,BMC中可以配置有与两者连接的总线相关的控制器。BMC和各个CPU中均可以配置有与两者连接的总线相关的总线接口。例如,如图3的(A)所示,BMC和各个CPU间也均可以通过PECI总线和I3C总线连接。在图3的(A)中,在BMC中可以配置有PECIcontroller和I3C controller,在各个CPU中均可以配置有PECI总线接口和I3C总线接口。如图3的(B)所示,BMC和各个CPU间也均可以通过PECI总线和PCIE总线连接。在图3的(B)中,在BMC中可以配置有PECI controller和PCIEcontroller,在各个CPU中均可以配置有PECI总线接口和PCIE总线接口。如图3的(C)所示,BMC和各个CPU间也均可以通过I3C总线和PCIE总线连接。在图3的(C)中,在BMC中可以配置有I3C controller和PCIE controller,在各个CPU中均可以配置有I3C总线接口和PCIE总线接口。
以上即是对本申请实施例中服务器内BMC和CPU连接的相关介绍。接下来,基于图2和/或图3中所描述的服务器内BMC和CPU连接,对本申请实施例提供的一种服务器中CPU信息的带外查询/配置方法进行介绍。
示例性的,图4示出了一种服务器中CPU信息的带外查询/配置方法。其中,服务器中配置有BMC和多个CPU,每个CPU与BMC之间均通过多个总线连接。为便于理解,下面以BMC为执行主体进行描述,当然,执行主体为BMC中的某个模块、单元或者组件的方案,仍在本申请的保护范围之内。如图4所示,该方法可以包括以下步骤:
S401、BMC接收带外管理命令,带外管理命令用于查询/配置多个CPU的信息。
本实施例中,带外管理命令可以用于查询/配置多个CPU的信息。此时,带外管理命令可以为用于查询多个CPU的信息的查询指令。该查询指令可以由系统自动触发,比如每间隔预设时长触发一次。示例性的,该查询指令可以用于查询CPU的温度,使用率、内存的拓扑结构等。
另外,带外管理命令可以用于配置多个CPU的信息。此时,带外管理命令可以为用于配置多个CPU的信息的配置指令。该配置指令可以但不限于由用户触发。其中,用户可以通过BMC所提供的配置界面下发配置指令。示例性的,用户可以通过配置界面对CPU的功率、频率等进行配置,也可以配置需要上报的信息或者不需要上报的信息,亦可以配置各个总线的位宽、速率,内存的频率、时序,风扇的转速、模式(比如电压模式或脉冲宽度调制(pulse width modulation,PWM)模式)等。
此外,带外管理命令还可以是用于收集多个CPU中崩溃日志(CrashLog)的日志收集指令。此时,带外管理命令可以是在服务器宕机时由服务器中的一个或多个CPU触发。
在一些实施例中,带外管理命令可以为英特尔协议中规定的命令。例如,可以为通用总线命令(generalbuscommands)、设备特定命令(device specific commands)等。其中,通用总线命令可以包括:Ping-Electrical Interface and PECI over SMBUS,GetDIB-PECI Electrical and PECI over SMBUS。设备特定命令可以包括:GetTemp()、RDpkgConfig()、WrPkgConfig()、RdIAMSR()、RdIAMSREx()、WrIAMSR()、RdPCIConfig()、WrPCIConfig()、RdPCIConfigLocal()、WrPCIConfigLocal()、RDEndPointConfig()、WrEndPointConfig()、CrashDump()、Telemetry()等。
其中,Ping-Electrical Interface and PECI over SMBUS可以用于测试CPU有无响应。GetDIB-PECI Electrical and PECI over SMBUS可以用于返回CPU的版本信息。
GetTemp()可以用于查询CPU中的温度。RdPkgConfig()可以用于提供对CPU内封装配置空间的读取权限,包括各种电源和热管理功能。WrPkgConfig()可以用于提供对CPU内部包配置空间的写访问,包括各种电源和热管理功能。RdIAMSR()可以用于提供对硬件检测架构(machine check architecture,MCA)中定义的寄存器的读取访问。RdIAMSREx()可以用于提供对特定的MCA中定义的寄存器的读取访问。WrIAMSR()可以用于提供对MCA架构中定义的寄存器的写入访问。RdPCIConfig()可以用于提供与CPU连接PCI设备的寄存器的读取访问。WrPCIConfig()可以用于提供与CPU连接PCI设备的寄存器的写入访问。RdPCIConfigLocal()可以用于提供CPU内部集成的PCI设备的寄存器的读取访问。WrPCIConfigLocal()可以用于提供CPU内部集成的PCI设备的寄存器的写入访问。RDEndPointConfig()可以用于提供外设组件互连标准(peripheral componentinterconnection,PCI)中内存映射I/O的读取访问。WrEndPointConfig()可以用于提供PCI中内存映射I/O的写入访问。CrashDump()可以用于收集CrashLog。
在一些实施例中,BMC在获取到带外管理命令后,即可以执行S402。
S402、响应于带外管理命令,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU,并且BMC同步通过多个总线中的第二总线访问多个CPU中的第二CPU。
本实施例中,BMC在获取到带外管理命令后,可以通过多个总线中的第一总线访问多个CPU中的第一CPU,并且BMC同步通过多个总线中的第二总线访问多个CPU中的第二CPU。当然,BMC也可以利用其他的总线访问多个CPU中的第三CPU、第四CPU等。示例性的,BMC可以为各个CPU均开启一个线程,以访问各个CPU。
S403、BMC获取第一CPU和第二CPU的信息,或者,对第一CPU和第二CPU的信息进行配置。
本实施例中,BMC在通过第一总线访问第一CPU成功时,其可以获取第一CPU中的信息,或者,对第一CPU中的信息进行配置。BMC在通过第二总线访问第二CPU成功时,其可以获取第二CPU中的信息,或者,对第二CPU中的信息进行配置。示例性的,BMC可以为各个CPU均开启一个线程,以获取各个CPU中的信息,或者对各个CPU中的信息进行配置。
示例性的,BMC可以查询该CPU的温度,内存的拓扑结构,或者,收集CPU中的崩溃日志(CrashLog)等。BMC可以对该CPU的功率、频率等进行配置,也可以配置需要上报的信息或者不需要上报的信息,亦可以配置各个总线的位宽、速率,内存的频率、时序,风扇的转速、模式(比如电压模式或脉冲宽度调制(pulse width modulation,PWM)模式)等。
这样,在对CPU中的信息进行带外查询/配置时,BMC通过多个总线并行访问多个CPU,并对各个CPU中的信息进行查询/配置。由此,提升了BMC查询/配置多个CPU中的信息的效率。同时,由于BMC可以通过多个总线访问CPU,因此,当一个总线出现故障时,BMC也可以通过其他的总线访问CPU,提升了系统的可靠性。
为便于理解,下面以BMC对服务器中一个CPU中的信息进行查询/配置为例进行说明。
示例性的,图5示出了一种BMC对服务器中一个CPU中的信息进行查询/配置的过程。为便于理解,同样以BMC为执行主体进行描述,当然,执行主体为BMC中的某个模块、单元或者组件的方案,仍在本申请的保护范围之内。如图5所示,该过程可以包括以下步骤:
S501、BMC判断其上第j个总线接口是否故障,j的初始值为1。
本实施例中,BMC在查询/配置服务器内第i个(i的初始值为1)CPU中的信息时,可以先判断其上第j个总线接口是否故障。当判断出出现故障时,可以执行S502;否则,执行S503。
在一些实施例中,BMC可以通过其上第j个总线接口向该第i个CPU发送一个数据包。若第i个CPU在预设时间内没有响应,或者,第i个CPU通过向BMC返回了用于表征第j个总线接口出现故障的消息,BMC则可以确定第i个CPU中的第j个总线接口出现故障。若第i个CPU在预设时间内有响应,且第i个CPU向BMC返回了用于表征第j个总线接口未出现故障的消息,BMC则可以确定其上第j个总线接口未出现故障。
在一些实施例中,BMC在确定出其上第j个总线接口出现故障后,其还可以记录该第j个总线接口出现故障的信息。这样,在后续再次对其上第j个总线接口进行故障判断时,其可以直接利用其记录的信息进行判断。
S502、j=j+1,并判断j是否大于m,m为BMC上总线接口的总数量,且m≥2。
本实例中,BMC在判断出其上第j个总线接口出现故障时,其可以对其上第(j+1)个总线接口进行判断。此时,BMC可以将j置为(j+1)。同时,BMC可以判断j是否大于其上配置的总线接口的总数量m。当j>m时,表明已完成对其上所有总线接口的判断,此时可以结束,或者,等待其他的总线接口空闲时,再重新进行判断。当j≤m时,表明未完成对其上所有总线接口的判断,此时BMC可以返回执行S501。
S503、BMC判断其上第j个总线接口是否被占用。
本实施例中,当BMC判断出其上第j个总线接口未出现故障时,表明该总线接口可用。这时,BMC可以根据其内存储的总线接口是否被占用的信息,判断该第j个总线接口是否被占用。当第j个总线接口被占用时,BMC可以对其上第(j+1)个总线接口进行判断,即返回执行S502。当第j个总线接口未被占用时,BMC可以通过该第j个总线接口查询/配置第i个CPU中的信息,即执行S504。
在一些实施例中,当BMC通过一个总线接口访问一个CUP时,BMC可以将该总线接口标记为占用。
S504、BMC通过其上与第j个总线接口相连的总线查询/配置第i个CPU中的信息。
本实施例中,BMC在判断出其上第j个总线接口未出现故障且可用时,其可以通过与该第j个总线接口相连的总线与第i个CPU进行交互,以完成对第i个CPU中的信息的查询/配置。
应理解的是,BMC在对服务器中其他的CPU中的信息的查询/配置时,可以参考图5中全部的步骤或部分的步骤中的描述,此处不再赘述。在一些实施例中,上述实施例的执行步骤顺序也可以是先判断总线接口是否被占用,再判断是否故障。
接下来,以BMC收集CPU中的崩溃日志(CrashLog)为例,进行说明。
示例性的,如图6所示,服务器中配置有BMC和n个CPU(即CPU 1至CPU n)。BMC和每个CPU间均通过PCIE总线、I3C总线和PECI总线连接。在服务器宕机后,BMC需要收集每个CPU的CrashLog用于故障分析诊断,因此快速完成CrashLog的收集是减少服务器宕机时间、及时恢复服务器业务的重要条件之一。
本申请实施例中,包含n个CPU的服务器产生故障宕机,BMC接收到CrashLog的收集指令,响应于该指令,BMC可以为每个CPU开启一个线程用于收集对应CPU的CrashLog(以下简称CPU收集线程),共启动n个CPU收集线程进行并发收集。BMC完成一个CPU的CrashLog收集可以发送多次输入/输出(input/output,I/O)请求。每次I/O请求均可以用于请求获取一部分数据。以每个CPU收集线程发送一次I/O请求为例,每个CPU收集线程均可以抢占三个总线接口,为尽快完成收集任务,每个CPU收集线程均将优先抢占高速接口,在抢占失败或该接口故障的情况下再抢占次一级接口。
CPU收集线程抢占总线接口的顺序可以根据总线接口速率而定,优先抢占速率高的接口。例如,抢占顺序可以为:PCIE总线接口->I3C总线接口->PECI总线接口。当然,也可以是其他的抢占顺序,具体可根据实际情况而定,此处不做限定。
以BMC中收集CPU 1中CrashLog的CPU收集线程举例:该CPU收集线程第一次I/O请求可以抢占到PCIE总线接口并完成;第二次I/O请求可以抢占PCIE总线接口失败,抢占I3C总线接口成功并完成;第三次I/O请求可以抢占PCIE总线接口成功,而本次I/O请求失败(PCIE总线接口故障),抢占I3C总线接口成功并完成;第四次I/O请求判断PCIE总线接口故障,直接抢占I3C总线接口失败,再次抢占PECI总线接口成功并完成。最终所有CPU收集线程均顺利完成CrashLog收集。
在图6中,由于在收集n个CPU中的CrashLog时,是采用三根总线同时收集3个CPU中的CrashLog,而不是仅使用一根总线依次收集各个CPU中的CrashLog。因此,收集n个CPU中CrashLog的时间大幅减少,效率提升大于300%,且三个总线接口可互为备份,有效提升了收集CrashLog的成功率。
基于上述实施例中的方法,本申请实施例提供了一种服务器中处理器CPU信息的带外查询/配置装置。示例性的,图7示出了一种服务器中处理器CPU信息的带外查询/配置装置。该装置可以部署于服务器中的基板管理控制器BMC中。该服务器中配置有多个CPU,每个CPU与BMC之间均通过多个总线连接。如图7所示,该服务器中处理器CPU信息的带外查询/配置装置700包括:接收模块701,用于接收带外管理命令,带外管理命令用于查询/配置多个CPU的信息。访问模块702,用于响应于带外管理命令,通过多个总线中的第一总线访问多个CPU中的第一CPU,并且同步通过多个总线中的第二总线访问多个CPU中的第二CPU。查询/配置模块703,用于获取第一CPU和第二CPU的信息,或者,对第一CPU和第二CPU的信息进行配置。
在一种可能的实现方式中,带外管理命令为:用于查询多个CPU的信息的查询指令,或者,用于配置多个CPU的信息的配置指令。
在一种可能的实现方式中,带外管理命令为:用于收集多个CPU中崩溃日志(CrashLog)的日志收集指令。此时,查询/配置模块703在获取第一CPU和第二CPU的信息时,具体用于:BMC通过第一总线获取第一CPU中的CrashLog,并同步通过第二总线获取第二CPU中的CrashLog。
在一种可能的实现方式中,当服务器出现宕机时,带外管理命令为日志收集指令。
在一种可能的实现方式中,多个总线包括:平台环境式控制接口PECI总线,增强型双向二线制同步串行I3C总线,或者,高速串行计算机扩展总线标准PCIE总线中的三个或任意两个。
在一种可能的实现方式中,访问模块702在通过多个总线中的第一总线访问多个CPU中的第一CPU时,具体用于:通过第一总线发送I/O请求;若在预设时间内接收到响应于I/O请求的响应消息,则通过多个总线中的第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,访问模块702在通过多个总线中的第一总线访问多个CPU中的第一CPU时,具体用于:BMC确定与第一总线连接的总线接口未被占用,BMC通过多个总线中的第一总线访问多个CPU中的第一CPU。
在一种可能的实现方式中,方法还包括:在第一总线出现故障,或,第一总线连接的总线接口被占用的情况下,访问模块702通过多个总线中除第一总线之外的总线访问多个CPU中的任意一个CPU。
应当理解的是,上述装置用于执行上述实施例中描述的模型训练方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本申请实施例提供了一种服务器,包括:多个处理器CPU;基板管理控制器BMC,每个CPU与BMC之间均通过多个总线连接,BMC用于执行上述实施例中所描述的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中所描述的方法。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (10)

1.一种处理器CPU的信息查询/配置方法,其特征在于,应用于服务器中的基板管理控制器BMC,所述服务器中配置有多个CPU,每个所述CPU与所述BMC之间均通过多个总线连接;所述方法包括:
所述BMC接收带外管理命令,所述带外管理命令用于查询/配置所述多个CPU中的第一CPU的信息;
响应于所述带外管理命令,所述BMC通过所述多个总线中的第一总线访问所述第一CPU;
当所述第一总线出现故障,或,所述BMC与所述第一总线连接的总线接口被占用的情况下,所述BMC通过所述多个总线中的除所述第一总线之外的总线访问所述第一CPU;
所述BMC获取所述第一CPU的信息,或者,对所述第一CPU进行配置。
2.根据权利要求1所述的方法,其特征在于,所述带外管理命令还用于查询/配置所述多个CPU中的第二CPU的信息;
所述响应于所述带外管理命令,所述BMC通过所述多个总线中的第一总线访问所述第一CPU,包括:
响应于所述带外管理命令,所述BMC通过所述多个总线中的第一总线访问所述第一CPU,并同步通过所述多个总线中的第二总线访问所述第二CPU,所述第一总线和所述第二总线为不同的总线。
3.根据权利要求1或2所述的方法,其特征在于,所述带外管理命令为:用于收集所述CPU中崩溃日志CrashLog的日志收集指令;所述BMC获取所述第一CPU的信息包括:
所述BMC通过所述第一总线获取所述第一CPU中的CrashLog。
4.根据权利要求3所述的方法,其特征在于,当所述服务器出现宕机时,所述带外管理命令为所述日志收集指令。
5.根据权利要求1-4任一所述的方法,其特征在于,所述多个总线包括:平台环境式控制接口PECI总线,增强型双向二线制同步串行I3C总线,和,高速串行计算机扩展总线标准PCIE总线中的至少两个。
6.根据权利要求1-5任一所述的方法,其特征在于,所述BMC通过所述多个总线中的第一总线访问所述第一CPU,包括:
所述BMC通过所述多个总线中的第一总线发送I/O请求;
若在预设时间内接收到响应于所述I/O请求的响应消息,则所述BMC通过所述第一总线访问所述多个CPU中的第一CPU。
7.根据权利要求1-5任一所述的方法,其特征在于,所述BMC通过所述多个总线中的第一总线访问所述第一CPU,包括:
所述BMC确定与所述多个总线中的第一总线连接的总线接口未被占用,所述BMC通过所述第一总线访问所述多个CPU中的第一CPU。
8.根据权利要求1-7任一所述的方法,其特征在于,所述所述带外管理命令用于查询/配置所述多个CPU中的第一CPU的信息,包括:
配置所述第一CPU的功率、频率,以及所述各个总线的位宽、速率,内存的频率、时序,风扇的转速、模式。
9.一种服务器,其特征在于,包括:
多个处理器CPU;
基板管理控制器BMC,每个所述CPU与所述BMC之间均通过多个总线连接,所述BMC用于执行权利要求1-8中任一所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在处理器上运行时,使得所述处理器执行如权利要求1-8任一所述的方法。
CN202311525757.8A 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器 Pending CN117742935A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311525757.8A CN117742935A (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202311525757.8A CN117742935A (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器
CN202211296847.XA CN115756824B (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202211296847.XA Division CN115756824B (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器

Publications (1)

Publication Number Publication Date
CN117742935A true CN117742935A (zh) 2024-03-22

Family

ID=85352678

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311525757.8A Pending CN117742935A (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器
CN202211296847.XA Active CN115756824B (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211296847.XA Active CN115756824B (zh) 2022-10-21 2022-10-21 一种服务器中处理器信息的带外查询/配置方法及服务器

Country Status (2)

Country Link
CN (2) CN117742935A (zh)
WO (1) WO2024082831A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117742935A (zh) * 2022-10-21 2024-03-22 超聚变数字技术有限公司 一种服务器中处理器信息的带外查询/配置方法及服务器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140144520A (ko) * 2013-06-11 2014-12-19 삼성전자주식회사 프로세서 모듈, 마이크로 서버 및 프로세서 모듈의 제어 방법
CN103488605A (zh) * 2013-09-24 2014-01-01 许继集团有限公司 多处理器并行通讯的总线架构
US10402207B2 (en) * 2016-06-16 2019-09-03 Quanta Computer Inc. Virtual chassis management controller
CN106921547B (zh) * 2017-01-25 2020-05-08 华为技术有限公司 管理设备的装置和方法
US20210318981A1 (en) * 2021-03-09 2021-10-14 Janusz Jurski Selection of Communication Protocol for Management Bus
CN113886317B (zh) * 2021-09-28 2023-07-18 苏州浪潮智能科技有限公司 一种bmc适配多平台cpu的方法、装置及存储介质
CN114138644A (zh) * 2021-11-29 2022-03-04 山东云海国创云计算装备产业创新中心有限公司 Bmc调试方法及监控方法、系统、装置、设备、介质
CN114528234B (zh) * 2022-01-11 2023-03-21 飞腾信息技术有限公司 用于多路服务器系统的带外管理方法及装置
CN115167629A (zh) * 2022-07-09 2022-10-11 深圳市深之蓝科技有限公司 一种双路服务器cpu主板
CN117742935A (zh) * 2022-10-21 2024-03-22 超聚变数字技术有限公司 一种服务器中处理器信息的带外查询/配置方法及服务器

Also Published As

Publication number Publication date
WO2024082831A1 (zh) 2024-04-25
CN115756824B (zh) 2023-11-03
CN115756824A (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
EP1133733B1 (en) Host controller interface descriptor fetching unit
US4363094A (en) Communications processor
US9146797B2 (en) Method for ensuring remediation of hung multiplexer bus channels
JPH10334043A (ja) 制御及び割り込みラインのマスキングによるpci及びeisaマスタの分離
JP2021531530A (ja) デバッグコントローラ回路
CN111090600B (zh) 一种总线共享的方法
CN115756824B (zh) 一种服务器中处理器信息的带外查询/配置方法及服务器
WO2022057464A1 (zh) 一种灵活配置的多计算节点服务器主板结构和程序
CN116244229B (zh) 硬件控制器的访问方法、装置、存储介质和电子设备
TWI739127B (zh) 提供系統資料之方法、系統及伺服器
WO2014206078A1 (zh) 内存访问方法、装置及系统
CN116541227A (zh) 故障诊断方法、装置、存储介质、电子装置及bmc芯片
CN114528234B (zh) 用于多路服务器系统的带外管理方法及装置
US8346975B2 (en) Serialized access to an I/O adapter through atomic operation
JP2003316521A (ja) 記憶制御装置
US9003068B2 (en) Service channel for connecting a host computer to peripheral devices
GB1595471A (en) Computer system
CN115543759A (zh) 操作系统的日志查阅方法、装置、电子设备及存储介质
JP2001188751A (ja) データ転送装置
US20140223066A1 (en) Multi-Node Management Mechanism
CN113961489B (zh) 数据访问的方法、装置、设备及存储介质
JPH1097489A (ja) 磁気ディスク装置のブロック長変換方法及びブロック長変換装置
CN114253877B (zh) Liunx系统下的高速外围组件互联PCIE设备扫描方法及装置
US7478025B1 (en) System and method to support dynamic partitioning of units to a shared resource
JPH06324957A (ja) バス監視装置

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