CN113826073A - 可动态配置的基板管理控制器 - Google Patents
可动态配置的基板管理控制器 Download PDFInfo
- Publication number
- CN113826073A CN113826073A CN202080034001.1A CN202080034001A CN113826073A CN 113826073 A CN113826073 A CN 113826073A CN 202080034001 A CN202080034001 A CN 202080034001A CN 113826073 A CN113826073 A CN 113826073A
- Authority
- CN
- China
- Prior art keywords
- configuration
- management controller
- baseboard management
- devices
- response
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 238000004891 communication Methods 0.000 claims description 63
- 230000004044 response Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000002405 diagnostic procedure Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- 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/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文所描述的方法、系统、装置和计算机可读存储介质被配置为将基板管理控制器动态配置为监控服务器的状态。例如,可以将配置模式提供给所述基板管理控制器。所述配置模式指定要由所述基板管理控制器监控的所述服务器的设备中的每个设备。所述配置模式还针对所述设备中的每个设备指定附加配置细节。基于包括在所述配置模式中的所述配置信息,所述基板管理控制器针对所述设备中的每个设备执行发现序列,以验证这样的设备被通信地耦接到所述基板管理控制器。如果所述发现序列成功,则所述基板管理控制器开始监控所述设备。然而,如果所述发现序列失败,则所述基板管理控制器发出错误消息,从而使得合适的人员能够修复问题。
Description
背景技术
基板管理控制器通常被实现为安装在服务器母板上的片上系统(SoC)。它们负责监控服务器的运行状况并且控制被耦接到母板的某些设备,诸如用于使服务器母板冷却的风扇。云服务器硬件的扩展使得被插入到服务器母板中的设备增加了。这些设备中的一些设备无法被基板管理控制器发现。同样,与这些设备相关联的某些配置数据(诸如,地址信息和设备属性)被硬编码到基板管理控制器的固件中。在服务器配置的数量有限的情况下,这不是什么大问题。然而,云提供方维护服务器的许多定制配置,这些定制配置是针对云提供方的客户的特定需求而定制的。云提供方可以维护成百上千或者甚至成千上万个这种定制配置的服务器,这些定制配置的服务器中的每个服务器都需要基板管理控制器,该基板管理控制器维护基于服务器的唯一设备配置的硬编码固件。
发明内容
为了按照简化形式来介绍对构思的选择而提供本发明内容,下面在具体实施方式中对这些构思进行了进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或者本质特征,也不旨在被用于限制所要求保护的主题的范围。
本文所描述的方法、系统、装置和计算机可读存储介质被配置为:将基板管理控制器动态配置为监控计算设备(例如,服务器)的状态。例如,可以将配置模式提供给基板管理控制器。配置模式指定要由基板管理控制器监控的计算设备的设备中的每个设备。配置模式还针对设备中的每个设备指定附加配置细节。基于包括在配置模式中的配置信息,基板管理控制器对设备中的每个设备执行发现序列以验证这些设备被通信地耦接到基板管理控制器。如果发现序列执行成功,则基板管理控制器开始监控设备。然而,如果发现序列执行失败,则基板管理控制器发出错误消息,从而使合适的人员能够修复问题(例如,更新配置模式)。
下面参考附图对其他特征和优点以及各种示例实施例的结构和操作进行了详细描述。要注意的是,示例实施方式不限于本文所描述的特定实施例。本文仅出于说明性目的而呈现这种示例实施例。基于本文所包含的教导,对于(多个)相关领域的技术人员而言,附加实施方式将是显而易见的。
附图说明
被并入本文并且形成本说明书的一部分的附图图示了本申请的示例实施例,并且与本说明书一起进一步用于解释示例实施例的原理以及使相关领域的技术人员能够形成和使用示例实施例。
图1示出了根据示例实施例的用于将基板管理控制器配置为监控多个设备的示例系统的框图。
图2示出了根据另一示例实施例的用于将基板管理控制器配置为监控多个设备的示例系统的框图。
图3示出了根据示例实施例的用于将基板管理控制器配置为监控多个设备的方法的流程图。
图4示出了根据示例实施例的用于配置安装到母板的基板管理控制器的系统的框图。
图5示出了根据示例实施例的用于执行发现序列的方法的流程图。
图6示出了根据示例实施例的用于执行发现序列的系统的框图。
图7描绘了可以被配置为执行本文所公开的技术的处理器的框图。
当结合附图时,本文所描述的实施方式的特征和优点将通过下面所阐述的详细描述变得更显而易见,在这些附图中,相同的附图标记始终标识对应的元件。在附图中,相同的附图标记通常指示相同的、在功能上类似的和/或在结构上类似的元件。元件首次出现的附图由对应的附图标记中的(多个)最左边的数字指示。
具体实施方式
I.介绍
本说明书和附图公开了许多示例实施方式。本申请的范围不限于所公开的实施方式,而是还囊括所公开的实施方式的组合以及对所公开的实施方式的修改。本说明书中对“一种实施方式”、“实施例”、“示例实施例”、“示例实施方式”等的引用指示:所描述的实施方式可以包括特定特征、结构或者特性,但是每种实施方式可以不一定包括特定特征、结构或者特性。此外,这种短语不一定是指相同的实施方式。进一步地,当结合实施方式对特定特征、结构或者特性进行描述时,提出:其在(多个)相关领域的技术人员的知识范围内以结合所明确描述的或者未明确描述的其他实施方式来实施这种特征、结构或者特性。
在讨论中,除非另有说明,否则诸如“基本上”和“大约”等形容词修饰本公开的实施方式的一个或多个特征的条件或者关系特性,应该被理解为表示该条件或者特性被定义为在针对所预期的应用的实施方式的操作可接受的容差内。
此外,要理解的是,本文所使用的空间描述(例如,“在…上方”、“在…下方”、“上”、“左”、“右”、“下”、“顶部”、“底部”、“垂直的”、“水平的”等)仅用于说明目的,并且本文所描述的结构的实际实施方式可以按照任何定向或者方式在空间上被布置。
如下对许多示例性实施例进行了描述。应该注意,本文所提供的任何章节标题/子章节标题不旨在是限制性的。贯穿本文对实施方式进行了描述,并且任何类型的实施方式都可以被包括在任何章节/子章节下。此外,在任何章节/子章节中所公开的实施方式可以按照任何方式与在相同章节/子章节和/或不同章节/子章节中所描述的任何其他实施方式所组合。
II.示例实施方式
本文所描述的实施例将基板管理控制器动态配置为监控计算设备(例如服务器)的状态。例如,可以将配置模式提供给基板管理控制器。配置模式指定要由基板管理控制器监控的计算设备的设备中的每个设备。配置模式还针对设备中的每个设备指定附加配置细节。基于包括在配置模式中的配置信息,基板管理控制器对设备中的每个设备执行发现序列以验证这些设备被通信地耦接到基板管理控制器。如果发现序列执行成功,则基板管理控制器开始监控设备。然而,如果发现序列执行失败,则基板管理控制器发出错误消息,从而使合适的人员能够修复问题(例如,更新配置模式)。
前面提供了若干优点。例如,不再需要用指定被耦接到基板管理控制器的设备的值以及这些设备的属性来静态地对基板管理控制器的固件进行硬编码。相反,基板管理控制器只需要处理配置模式并且经由发现序列来动态配置基板管理控制器。在计算设备的设备被改变或者被去除的情况下,反映经过改变的配置的更新过的配置模式被提供给基板管理控制器,该基板管理控制器然后根据更新过的配置模式来执行发现序列。在先前的解决方案中,配置发生这种改变需要进行固件更新,在该固件更新中,将用新的硬编码值来对固件进行重写以反映新的设备配置。这种固件更新需要长时间的验证周期以确保固件不会导致基板管理控制器出现故障。前述技术实际上去除了该验证周期,因为固件不是被手动地重写的,而是经由配置模式驱动的发现序列而更新的。
图1示出了根据示例实施例的用于将基板管理控制器102配置为监控多个设备106的示例系统100的框图。如在图1中所示出的,系统100包括基板管理控制器102和多个设备106。基板管理控制器102可以被配置为:监控计算机、服务器和/或基板管理控制器102被包括在其中的其他硬件设备的状态。基板管理控制器102可以被包括在待被监控的设备的母板、基板或者主电路板上。基板管理控制器102可以被实现为片上系统(SoC)、专用集成电路(ASIC)、微控制器等。
基板管理控制器102可以被实现在实现IPMI(智能平台管理接口)计算机接口规范的系统或者其他系统中,以提供独立于主机系统的CPU(中央处理单元)、固件(例如,BIOS(基本输入/输出系统)或者UEFI(统一可扩展固件接口))和操作系统)的管理能力和监控能力。例如,基板管理控制器102可以是被嵌入在计算机的母板上的微控制器或者其他处理器类型,并且可以被配置为:管理系统管理软件与平台硬件之间的接口。例如,如本文在别处进一步描述的,被内置到计算机中的传感器可以向基板管理控制器102报告参数,诸如温度、冷却风扇速度、电力状态、操作系统(OS)状态等。基板管理控制器102监控传感器,并且如果任何参数不在预设限制内,则可以经由网络连接来向系统管理员发送警报,从而指示计算机可能出现故障。可以使管理员能够远程地与基板管理控制器102通信以采取纠正措施,诸如重置或者重启计算机以使挂起的OS再次运行。这些能力可以节省计算机的总拥有成本。
为了监控计算设备的状态,基板管理控制器102可以监控计算设备的多个设备(例如设备106)。例如,给定的计算设备(例如,服务器)可以包括任何数量的以下设备:这些设备可以被耦接到主板管理控制器102所附接的主电路板(或者,母板)和/或被耦接在不同的电路板上,该不同的电路板被耦接到主电路板(例如,经由一个或多个扩展槽、电缆、连接器等)。设备106的示例包括但不限于:电源单元、风扇、温度传感器、湿度传感器、存储器(例如,随机存取存储器(RAM),诸如,静态RAM(SRAM)、动态RAM(DRAM)等)、存储设备(例如,硬盘驱动器、固态驱动器等)、中央处理单元(CPU)、硬件加速器、视频卡、声卡、存储控制器、网络控制器、其他外围设备(诸如但不限于:基于PCI-Express的外围设备)等。考虑到特定的计算设备(诸如,服务器)可以包括机架和硬件设备机架,待被监控的设备106的总数可以从几百到甚至几千。
为了将基板管理控制器102配置为监控这种设备106,可以向基板管理控制器102提供配置模式104。配置模式104指定待被包括在由基板管理控制器102监控并且被耦接到基板管理控制器102的计算设备中的设备(例如,设备106)。配置模式104可以包括指定被监控的计算设备的配置的信息(例如,元数据)。例如,配置模式104可以标识每个设备106,并且可以指定每个设备106所在的逻辑地址、每个设备106所在的物理地址(例如,机架4的扩展槽1)、与每个设备106相关联的一个或多个配置寄存器的逻辑地址、针对(多个)这种配置寄存器中的每个配置寄存器的预期值、由每个设备106利用的通信协议等。配置模式104可以包括一个或多个用户生成的文件和/或一个或多个自动生成的文件(例如,经由图形用户界面,用户(例如,管理员)在该图形用户界面中指定上述信息的值,并且该图形用户界面基于指定的值来自动生成配置模式104)。根据实施例,配置模式104可以根据JavaScript对象表示法(JSON)格式、可扩展标记语言(XML)格式或者适合于组织和/或传输数据的任何其他格式被格式化。
使用配置模式104,基板管理控制器102可以执行自动发现序列以发现每个设备106并且验证每个设备106被包括在被监控的计算设备中。在验证出每个设备106被包括在计算设备中之后,基板管理控制器102可以接受配置模式104作为用于计算设备的配置,并且监控设备106(例如,设备106的风扇速度、温度、湿度、耗电量等)。在验证成功之后,还可以在任何其他类似配置的计算设备上利用配置模式104。在确定至少一个设备106不被包括在计算设备中或者表现出非预期行为时,基板管理控制器102可以提供错误信号以向管理员通知问题。然后,管理员可以采取必要的纠正措施来修复问题。下面参考图2对有关基板管理控制器102的附加细节进行了描述。
图2示出了根据另一示例实施例的用于将基板管理控制器202配置为监控多个设备206A至206N的示例系统200的框图。如在图2中所示出的,系统200包括基板管理控制器202和多个设备206A至206N,其中N是任何正整数。基板管理控制器202是基板管理控制器102的示例,并且设备206A至206N是设备106的示例,如上面参考图1所描述的。基板管理控制器202包括处理器208、存储器210和一个或多个通信接口230。如在图2中进一步示出的,存储器210可以存储操作系统212、应用层214、配置进程216、传感器数据记录(SDR)218、一个或多个风扇算法220、一个或多个电力策略222、诊断进程224、设备监控器226和系统事件日志(SEL)228。存储器210的示例包括但不限于:非易失性存储器设备(例如,闪速存储器、铁电RAM、电可擦除可编程只读存储器(EEPROM)等)、易失性存储器设备(例如DRAM、SRAM等)等。
在一些实施例中,处理器208可以被配置为执行被存储在存储器210中的多个计算线程、计算程序和/或应用(例如,操作系统212、应用层214、(多个)风扇算法220、电力策略222、诊断进程224、设备监控器226、配置进程216等。在一些实施例中,处理器208可以各自包括一个或多个处理器核。
操作系统212可以被配置为:管理一个或多个硬件组件(例如,处理器208、存储器210、(多个)通信接口230等)和在基板管理控制器202上执行的软件(例如,应用层214、(多个)风扇算法220、电力策略222、诊断进程224、设备监控器226、配置进程216等)。
应用层214可以是经由(多个)通信接口230来将操作系统212和/或设备206A至206N与配置进程216、诊断进程224和/或设备监控器226接口连接的抽象层。(多个)通信接口230可以包括适合于接收配置模式204的(多个)接口。这种接口的示例包括但不限于:局域网(LAN)接口、低引脚数(LPC)接口和I2C(内部集成电路)接口。I2C接口与I2C串行计算机总线接口连接,该I2C串行计算机总线被用于在短距离板内通信中将低速外围集成电路(IC)附接到处理器和微控制器。如(多个)相关领域的技术人员所周知的,I2C总线是同步的、多主的、多从的、分组交换的以及单端的。(多个)通信接口230还可以包括适合于与设备206A至206N通信的(多个)接口。这种接口的示例包括但不限于:系统管理总线(SMBus)接口、电力管理总线(PMBus)接口、I2C总线接口、基于管理组件传输协议(MCTP)的总线接口等。
配置模式204可以是配置模式104的示例,如上面参考图1所描述的。配置模式204可以指定待被包括在由基板管理控制器202监控并且被耦接到基板管理控制器202的计算设备中的设备(例如,设备206A至206N)。配置模式204可以包括指定被监控的计算设备的配置的信息(例如,元数据)。例如,配置模式204可以标识每个设备206(例如,经由标识每个设备206的标识符),指定设备206A至206N中的每个设备所在的逻辑地址,设备206A至206N中的每个设备所在的物理地址(例如,机架4的扩展槽1)、与设备206A至206N中的每个设备相关联的一个或多个配置寄存器的逻辑地址、针对(多个)这种配置寄存器中的每个配置寄存器的预期值、由设备206A至206N中的每个设备利用的通信协议。根据实施例,配置模式204可以根据JavaScript对象表示法格式、可扩展标记语言(XML)格式或者适合于组织和/或传输数据的任何其他格式被格式化。
配置模式204可以经由(多个)通信接口230被提供给基板管理控制器202。例如,存储配置模式204的计算设备(例如,计算机、膝上型计算机、平板等)可以经由(多个)通信接口230被耦接到基板管理控制器202。计算设备可以经由(多个)通信接口230来将配置模式204传递给基板管理控制器202。配置模式204可以被存储在基板管理控制器202的存储器210中(被示出为配置模式204’)。
在存储了配置模式204’之后,应用层214可以发起配置进程216。配置进程216可以被配置为验证配置模式204’。例如,配置模式204’可以被数字签名。数字签名可以基于针对配置模式204’而计算的散列,该散列使用生成配置模式204的实体的私钥被加密。与实体相关联的公钥可以与配置模式204一起被提供给基板管理控制器202。配置进程216可以被配置为:使用公钥来对散列进行解密并且还针对配置模式204’计算其自己的散列。如果该散列值与已解密的散列值相匹配,则配置进程216可以确定配置模式204’有效。如果散列值不匹配,则配置进程216可以使得发出错误信号和/或将错误记录在系统事件日志228中,从而向用户通知无效的配置模式204’。前述进程有利地防止了未经授权的配置模式篡改基板管理控制器202的配置。
配置进程216还可以被配置为:确定配置模式204’是否被正确地格式化。例如,配置进程216可以被配置为:确定配置进程216是否根据预定格式化模式(例如,JSON、XML等)被格式化。例如,配置进程216可以确定配置模式204’是否利用合适的语法和/或结构(例如,确保使用左大括号‘{’和右大括号‘}’来对JSON对象进行封装,确保键值对通过逗号‘,’被隔开等)。如果配置进程216确定配置模式204’未被正确地格式化,则配置进程216可以使得发出错误信号和/或将错误记录在系统事件日志228中,从而向用户通知无效的配置模式204’。
在验证了配置模式204’并且确定其被正确地格式化之后,配置进程216可以被配置为:读取配置模式204’并且确定要由基板管理控制器202监控的设备(例如,设备206A至206N)中的每个设备,并且执行发现序列以验证这些设备被耦接到基板管理控制器202。例如,配置进程216可以使处理器208向由配置模式204’指定的设备206A至206N中的每个设备发出请求(或者,“ping”)并且等待经由(多个)通信接口230来自设备206A至206N中的每个设备的响应。可以根据由设备利用的通信协议(如由配置模式204指定的)来对请求进行传输。如果没有接收到响应,则基板管理控制器202可以提供错误信号和/或在系统错误日志228中记录事件以向管理员通知问题。然后,管理员可以采取必要的纠正措施来修复问题。例如,配置模式204’可能错误地标识了设备206A至206N中的特定设备。因此,管理员可以更新配置模式204并且将更新过的模式提供给基板管理控制器202。
在从特定设备接收到响应时,配置进程216对与该设备(如由配置模式204’指定的)相关联的配置寄存器进行读取。配置寄存器所在的地址也由配置模式204’指定。因此,配置进程216使处理器208向这些地址发出读取请求。配置模式204’还可以指定针对这种寄存器的预期值。配置进程216可以将从配置寄存器读取的内容与预期值进行比较。如果内容与值相匹配,则配置进程216可以确定相关联的设备被耦接到基板管理控制器202。如果设备206A至206N中的每个设备提供了响应并且每个设备的配置寄存器的内容与其相应的期望值相匹配,则基板管理控制器202可以接受配置模式204’作为用于计算设备的配置。在验证成功之后,还可以在任何其他类似配置的计算设备上利用配置模式204’。此外,在基板管理控制器202外部的实体可以向基板管理控制器202进行查询(例如,经由(多个)通信接口230)以获得配置模式204’。这种实体包括但不限于:机架管理器、机箱管理器、数据中心管理器等。这种实体可以使用配置模式204’来确定计算设备的配置。
如果内容不匹配,则配置进程216可以确定设备未被耦接到基板管理控制器202和/或设备有缺陷。在这种情况下,基板管理控制器202可以提供错误信号以向管理员通知问题。然后,管理员可以采取必要的纠正措施来修复问题。例如,管理员可以用正确的配置来更新配置模式204并且将更新过的模式提供给基板管理控制器202。
从特定设备的配置寄存器读取的内容可以与设备的属性对应。例如,内容可以指定设备的标识符(例如,设备名称、型号、序列号等)、设备的一个或多个参数(例如,风扇速度限制、温度限制和/或湿度限制、电力特性和/或电力限制、默认初始化设定等)等。因此,这种属性可以被利用来唯一地标识设备206A至206N中的每个设备,并且因此,被利用来验证这些设备206A至206N被耦接到基板管理控制器202。配置寄存器还可以包括错误寄存器,这些错误寄存器存储指示相关联的设备是否已经发生错误、过错和/或故障的值。配置模式204’还可以指定这种错误寄存器的地址。
配置进程216可以利用这种属性来填充传感器数据记录218。配置进程216还用包括在配置模式204’中的信息(例如,每个设备206A至206N所在的逻辑地址、设备206A至206N中的每个设备所在的物理地址、与每个设备206A至206N相关联的配置寄存器的逻辑地址、由每个设备206A至206N利用的通信协议等)来填充传感器数据记录218。因此,传感器数据记录218包括要由基板管理控制器202监控的设备206A至206N的完整列表以及与其相关联的属性。
配置模式204’还可以指定特定于由基板管理控制器202监控的计算设备的配置的一个或多个风扇算法和/或电力管理策略。风扇算法和/或电力策略可以指定将如何基于特定因素(诸如,测得的温度、湿度和/或电力读数)来对设备206A至206N中的特定设备(例如,风扇、电源)进行控制。在成功验证设备206A至206N之后,配置进程216可以将这种风扇算法和/或电力策略存储在存储器210中(分别被示出为(多个)风扇算法220和电力策略222)。
设备监控器226可以被配置为:根据被存储在传感器数据记录218中的信息来监控设备206A至206B。例如,设备监控器226可以被配置为:对由传感器数据记录218指定的设备206A至206N的特定配置寄存器进行读取,该传感器数据记录218存储这些设备206A至206N的操作参数(例如,当前温度、当前湿度等)和/或指示设备206A至206N是否已经发生错误、过错和/或故障的值(即错误寄存器)。如果操作参数不在预定阈值内(例如,温度太高、所消耗的电力太多等)和/或错误寄存器指示已经出现错误、过错和/或故障,则设备监控器226可以在系统事件日志228中记录事件。该事件还可以指定故障设备所在的物理位置。按照这种方式,维修技术人员可以轻松地对设备进行定位和维修。
设备监控器226还可以使基板管理控制器202执行补救措施。例如,设备监控器226可以向诊断进程224提供命令。诊断进程224可以向设备206A至206N中的一个或多个设备发出命令以补救被监控的计算设备所表现出的问题。例如,诊断进程224可以使处理器208向风扇发出命令以改变其风扇速度(例如,根据(多个)风扇算法220),可以使处理器208向设备206A至206N中的设备发出命令以控制其耗电模式(例如,根据电力策略222),可以使处理器208发出命令以重启设备206A至206N中的设备等。
因此,在示例实施例中,基板管理控制器可以被配置为:按照各种方式来监控多个设备。例如,图3示出了根据示例实施例的用于将基板管理控制器配置为监控多个设备的方法的流程图300。在实施例中,流程图300可以由在图4中所示出的系统400实现,但是该方法不限于该实施方式。图4示出了根据示例实施例的用于配置被安装到母板420的基板管理控制器402的系统400的框图。如在图4中所示出的,系统400包括基板管理控制器402和多个设备406。基板管理控制器402和设备406是基板管理控制器202和设备206A至206N的示例,如上面参考图2所描述的。主板管理控制器402被安装在母板420上。如在图4中所进一步示出的,基板管理控制器402包括配置进程416、应用层414、设备监控器426和一个或多个通信接口430,它们是配置进程216、应用层214、设备监控器226和(多个)通信接口230(如上面参考图2所分别描述的)的示例。配置进程416可以包括模式接口408、模式验证器410和设备发现器412。配置进程416、设备监控器426和应用层414可以被存储在基板管理控制器的存储器(例如,存储器210,如在图2中所示出的)中。基板管理控制器402可以经由通信总线434被通信地耦接到设备406。通信总线434的示例包括但不限于:SMBus、PMBus、I2C总线、基于MCTP的总线等。基于有关流程图300和图4的系统400的讨论,对于(多个)相关领域的技术人员而言,其他结构实施例和操作实施例将是显而易见的。
流程图300开始于步骤302。在步骤302中,接收指定与母板相关联并且通过通信总线被耦接到基板管理控制器的多个设备的配置模式。例如,参考图4,基板管理控制器420经由(多个)通信接口430接收配置模式404(例如,来自使用计算机的系统400的管理员、来自根据管理进程的计算机等)并且将配置模式404存储在基板管理控制器402的存储器(例如,存储器210,如在图2中所示出的)。配置模式404由配置进程416的模式接口408经由应用层414接收。配置模式404指定与母板420相关联并且通过通信总线434被耦接到基板管理控制器402的设备406。配置模式404是示例配置模式204,如上面参考图2所描述的。设备406可以被附接到母板420和/或可以被附接到被通信地耦接到母板420的另一电路板。
根据一个或多个实施例,多个设备包括以下至少一项:温度传感器、湿度传感器、风扇、电力单元、存储器设备、中央处理器单元或者硬件加速器。
根据一个或多个实施例,配置模式符合JSON格式。例如,参考图4,配置模式404符合JSON格式。
根据一个或多个实施例,基板管理控制器被配置为:确定与配置模式相关联的数字签名有效并且确定配置模式是否根据预定格式化模式被格式化。例如,参考图4,模式接口408可以将配置模式404提供给模式验证器410。模式验证器410可以确定与配置模式404相关联的数字签名有效并且确定配置模式404是否根据预定格式化模式(例如,JSON格式)被格式化。在模式验证器410确定数字签名无效和/或配置模式404未被合适地格式化的情况下,模式验证器410可以记录错误(例如,在系统事件日志228(如在图2中所示出的)中)。
在步骤304中,针对多个设备中的每个设备,基于配置模式而在通信总线上执行发现序列以验证设备被通信地耦接到基板管理控制器并且确定设备的属性。例如,参考图4,响应于模式验证器410确定数字签名有效并且配置模式404被合适地格式化,模式验证器410可以将配置模式404提供给设备发现器412。设备发现器412可以基于配置模式404在通信总线434上执行发现序列以验证每个设备406被耦接到基板管理控制器402并且确定设备的属性。下面参考图5和图6对有关发现序列的附加细节进行了描述。
在步骤306中,响应于验证出设备被通信地耦接到基板管理控制器,对设备的操作进行监控。例如,参考图4,设备监控器426响应于设备发现器412验证出设备406被通信地耦接到基板管理控制器402而监控设备406的操作。
根据一个或多个实施例,配置模式还针对多个设备中的每个设备指定设备所在的地址、设备的一个或多个配置寄存器所在的地址、针对一个或多个配置寄存器中的每个配置寄存器的预期值、由设备利用的通信协议或者设备所在的物理位置。
图5示出了根据示例实施例的用于执行发现序列的方法的流程图500。在实施例中,流程图500可以由在图6中所示出的系统600实现,但是该方法不限于该实施方式。图6示出了根据示例实施例的用于执行发现序列的系统600的框图。如在图6中所示出的,系统600包括基板管理控制器602和设备606。基板管理控制器602和设备606是基板管理控制器402和设备406(如上面参考图4所分别描述的)的示例。基板管理控制器602被安装在母板620上。设备606可以被附接到母板620和/或可以被附接到被通信地耦接到母板620的另一电路板。如在图6中所进一步示出的,基板管理控制器602包括:配置进程616、应用层614和一个或多个通信接口630,它们是配置进程416、应用层414和(多个)通信接口430(如上面参考图4所分别描述的)的示例;以及处理器608、系统事件日志628和传感器数据记录618,它们是处理器208、系统事件逻辑228和传感器数据记录218(如上面参考图2所分别描述的)的示例。配置进程616可以包括设备发现器612,该设备发现器612是设备发现器412的示例,如上面参考图4所描述的。配置进程616、应用层414、系统事件日志628和传感器数据记录618可以被存储在基板管理控制器602的存储器(例如,存储器210,如在图2中所示出的)中。如在图6中所进一步示出的,配置模式604已经被提供给基板管理控制器602并且被存储在基板管理控制器602的存储器中。基板管理控制器602可以经由通信总线634被通信地耦接到设备606。设备606可以包括一个或多个配置寄存器638。通信总线634是通信总线434的示例,如上面参考图4所描述的。要注意的是,基板管理控制器602可以对任何数量的设备执行发现序列。然而,为了简洁起见,图6针对单个设备(即,设备606)描绘了发现序列。基于有关流程图500和图6的系统600的讨论,对于(多个)相关领域的技术人员而言,其他结构实施例和操作实施例将是显而易见的。
流程图500开始于步骤502。在步骤502中,向设备传输请求。例如,参考图6,设备发现器612可以读取配置模式604以确定设备606所在的地址并且向设备606发出请求610(例如,“ping”)。请求610被提供给应用层614,这使得处理器608经由(多个)通信接口630来发出请求610。(多个)通信接口630经由通信总线634将请求610提供给设备606。
在步骤504中,从设备接收响应。例如,参考图6,设备606经由通信总线634向(多个)通信接口630提供响应622。(多个)通信接口630将响应622提供给处理器608,该处理器608经由应用层614将响应622提供给设备发现器612。要注意的是,如果没有接收到响应622(例如,在预定时间段之后),则设备发现器612可以在系统错误日志628中记录错误。
在步骤506中,响应于从设备接收到响应,读取与设备相关联的(多个)配置寄存器的内容。例如,参考图6,设备发现器612可以读取配置模式604并且确定设备606的(多个)配置寄存器638的地址。设备发现器612可以使用(多个)地址来向(多个)配置寄存器638发出读取请求624。读取请求624可以被提供给应用层614,这使得处理器608经由(多个)通信接口630来发出读取请求624。(多个)通信接口630可以经由通信总线634来提供读取请求624。作为响应,设备606可以发出包括(多个)配置寄存器638的内容的响应626。响应626可以经由通信总线634而被提供给(多个)通信接口630。(多个)通信接口630可以将响应626提供给处理器608,该处理器608经由应用层614将响应626提供给设备发现器612。
在步骤508中,确定(多个)配置寄存器中的每个配置寄存器的内容是否与由配置模式针对(多个)配置寄存器中的每个配置寄存器指定的预期值相匹配。例如,参考图6,设备发现器612确定(多个)配置寄存器638的经由响应626而接收到的内容是否与如由配置模式604针对(多个)配置寄存器638中的每个配置寄存器638指定的预期值相匹配。如果确定内容与预期值不匹配,则流程继续至步骤510。否则,流程继续至步骤512。
根据一个或多个实施例,设备的(多个)配置寄存器的内容指定设备的属性。例如,参考图6,设备606的(多个)配置寄存器638的内容指定设备606的属性。
在步骤510中,提供指示内容不匹配的错误信号。例如,参考图6,设备发现器612可以发出错误信号628,该错误信号628被记录在系统错误日志628中。
在步骤512中,确定设备被耦接到基板管理控制器。例如,参考图6,设备发现器612确定设备606被耦接到基板管理控制器602。
根据一个或多个实施例,(多个)配置寄存器的内容(被示出为内容636)被存储在基板管理控制器的传感器数据记录中。例如,参考图6,配置寄存器638的经由响应626而接收到的内容被存储在传感器数据记录618中。
III.示例基板管理控制器实施方式
图7描绘了处理器(或者,控制器)设备700的框图,以下组件可以被实现在该处理器(或者,控制器)设备700中:基板管理控制器102、基板管理控制器202、基板管理控制器402、基板管理控制器602(和/或其中所描述的组件(例如,处理器208、(多个)通信接口230、存储器210、操作系统212、应用层214、设备监控器226、电力策略222、传感器数据记录218、(多个)风扇算法220、诊断进程224、系统事件日志228和/或配置进程216(如在图1中所示出的)、通信接口420、应用层414、配置进程416、设备发现器412、模式验证器410、模式接口408和/或设备监控器426(如在图4中所示出的)、(多个)通信接口630、应用层614、传感器数据记录618、系统事件日志632、配置进程616、设备发现器和/或处理器608(如在图6中所示出的)和/或图3和图5的流程图中的任何流程图的步骤中的任何步骤。
处理器700可以包括中央处理单元(CPU)802(该中央处理单元(CPU)802可以是处理器208和/或处理器608的示例)、I/O控制器704、程序存储器706和数据存储器708(程序存储器706和/或数据存储器708可以是存储器210的示例)。CPU 702可以被配置为:执行处理器700的主要计算和数据处理功能。I/O控制器704(该I/O控制器704可以是(多个)通信接口230、(多个)通信接口430和/或(多个)通信接口630的示例)可以被配置为:经由一个或多个串行端口和/或一个或多个链路端口来控制到外部设备的通信。例如,I/O控制器704可以被配置为:将从数据存储器708读取的数据提供给一个或多个外部设备和/或将从(多个)外部设备接收到的数据存储到数据存储器708中。程序存储器706可以被配置为:存储被用于处理数据的程序指令。数据存储器708可以被配置为:存储待被处理的数据。
处理器700还包括一个或多个数据寄存器710、乘法器712和/或算术逻辑单元(ALU)714。(多个)数据寄存器710可以被配置为:存储用于中间计算的数据,准备要由CPU702处理的数据,用作用于数据传递的缓冲器,保持用于程序控制的标志等。乘法器712可以被配置为:接收被存储在(多个)数据寄存器710中的数据,使数据相乘,并且将结果存储到(多个)数据寄存器710和/或数据存储器708中。ALU 714可以被配置为:执行加法、减法、绝对值运算、逻辑运算(与、或、异或、非等)、移位运算、定点格式与浮点格式之间的转换等。
CPU 702还包括程序定序器716、程序存储器(PM)数据地址生成器718、数据存储器(DM)数据地址生成器720。程序定序器716可以被配置为:通过生成待从程序存储器706获取的指令的地址来管理程序结构和程序流。程序定序器716还可以被配置为:从指令高速缓冲存储器722获取(多个)指令,该指令高速缓冲存储器722可以存储N个最近执行的指令,其中N是正整数。PM数据地址生成器718可以被配置为:提供到程序存储器706的一个或多个地址,该一个或多个地址指定将从程序存储器706读取数据的位置或者数据将被写入程序存储器706的位置。DM数据地址生成器720可以被配置为:提供到数据存储器708的(多个)地址,该(多个)地址指定将从数据存储器708读取数据的位置或者数据将被写入数据存储器708的位置。
IV.进一步的示例实施例
技术(包括方法)可以由硬件(数字的和/或模拟的)或者硬件与软件和/或固件的组合实现。本文所描述的技术可以由一个或多个组件实现。实施例可以包括以下计算机程序产品:这些计算机程序产品包括被存储在任何计算机可用介质上的逻辑(例如,程序代码或者软件以及固件的形式),该任何计算机可用介质可以被集成在其他组件中或者与其他组件分离。这种程序代码在由一个或多个处理器执行时使设备如本文所描述的那样操作。可以实现实施例的设备可以包括存储装置,诸如存储驱动器、存储器设备以及其他类型的计算机可读存储介质。这种计算机可读存储介质的示例包括但不限于:硬盘、可移动磁盘、可移动光盘、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。更详细地,这种计算机可读存储介质的示例包括但不限于:与硬盘驱动器相关联的硬盘、可移动磁盘、可移动光盘(例如,CDROM、DVD等)、zip盘、磁带、磁存储设备、MEMS(微机电系统)存储装置、基于纳米技术的存储设备以及其他介质,诸如闪存卡、数字视频光盘、RAM设备、ROM设备等。这种计算机可读存储介质可以例如存储计算机程序逻辑(例如,程序模块),该计算机程序逻辑包括计算机可执行指令,这些计算机可执行指令在被执行时提供和/或维护本文参考图所描述的功能性的一个或多个方面以及其中的任何以及所有组件、步骤和功能和/或本文所描述的其他实施例。
这种计算机可读存储介质区别于通信介质(不包括通信介质)并且不与通信介质重叠。通信介质在已调制的数据信号(诸如,载波)中实施计算机可读指令、数据结构、程序模块或者其他数据。术语“已调制的数据信号”是指具有其按照对信号中的信息进行编码的方式被设置或者改变的特性中的一个或多个特性的信号。通过示例的方式而非限制,通信介质包括无线介质(诸如,声学无线介质、RF、红外无线介质和其他无线介质)以及通过接线而传输的信号。实施例还涉及这种通信介质。
V.附加示例实施例
一种由安装到母板的基板管理控制器实施的方法。该方法包括:接收配置模式,该配置模式指定与母板相关联并且通过通信总线被耦接到基板管理控制器的多个设备;针对多个设备中的每个设备,基于配置模式来在通信总线上执行发现序列以验证设备被通信地耦接到基板管理控制器并且确定设备的属性;以及响应于验证出设备被通信地耦接到基板管理控制器,监控设备的操作。
在前述方法的一种实施方式中,所述接收包括:确定与配置模式相关联的数字签名有效;以及确定配置模式是否根据预定格式化模式被格式化。
在前述方法的另一实施方式中,配置模式还针对多个设备中的每个设备指定以下至少一项:设备所在的地址;设备的一个或多个配置寄存器所在的地址;针对一个或多个配置寄存器中的每个配置寄存器的预期值;由设备利用的通信协议;或者设备所在的物理位置。
在前述方法的另一实施方式中,所述执行包括:针对多个设备中的每个设备:向设备传输请求;从设备接收响应;响应于从设备接收到响应,读取与设备相关联的一个或多个配置寄存器的内容;确定一个或多个配置寄存器中的每个配置寄存器的内容是否与由配置模式针对一个或多个配置寄存器中的每个配置寄存器指定的预期值相匹配;响应于确定出内容相匹配,确定设备被耦接到基板管理控制器;以及响应于确定出内容不匹配,提供指示内容不匹配的错误信号。
在前述方法的另一实施方式中,设备的一个或多个配置寄存器的内容指定设备的属性。
在前述方法的另一实施方式中,该方法还包括:将一个或多个配置寄存器的内容存储在基板管理控制器的传感器数据记录中。
在前述方法的另一实施方式中,配置模式符合JavaScript对象表示法(JSON)格式。
在前述方法的另一实施方式中,多个设备包括以下至少一项:温度传感器;湿度传感器;风扇;电源单元;存储器设备;中央处理器单元;硬件加速器;存储设备;存储控制器;或者网络控制器。
本文还对一种基板管理控制器进行了描述。该基板管理控制器包括:模式接口,用于接收指定被耦接到基板管理控制器的多个设备的配置模式;设备发现器,被配置为:针对多个设备中的每个设备,基于配置模式来执行发现序列以验证设备被耦接到基板管理控制器并且确定设备的属性;以及设备监控器,被配置为:响应于验证出设备被耦接到基板管理控制器,监控设备的操作。
在前述基板管理控制器的一种实施方式中,该基板管理控制器还包括:模式验证器,被配置为:确定与配置模式相关联的数字签名有效;并且确定配置模式是否根据预定格式化模式被格式化。
在前述基板管理控制器的另一实施方式中,配置模式还针对多个设备中的每个设备指定以下至少一项:设备所在的地址;设备的一个或多个配置寄存器所在的地址;针对一个或多个配置寄存器中的每个配置寄存器的预期值;由设备利用的通信协议;或者设备所在的物理位置。
在前述基板管理控制器的另一实施方式中,设备发现器还被配置为:针对多个设备中的每个设备:向设备传输请求;从设备接收响应;响应于从设备接收到响应,读取与设备相关联的一个或多个配置寄存器的内容;确定一个或多个配置寄存器中的每个配置寄存器的内容是否与由配置模式针对一个或多个配置寄存器中的每个配置寄存器指定的预期值相匹配;响应于确定出内容相匹配,确定设备被耦接到基板管理控制器;并且响应于确定出内容不匹配,提供指示内容不匹配的错误信号。
在前述基板管理控制器的另一实施方式中,设备的一个或多个配置寄存器的内容指定设备的属性。
在前述基板管理控制器的另一实施方式中,该基板管理控制器还包括:传感器数据记录,其中设备发现器被配置为:将一个或多个配置寄存器的内容存储在传感器数据记录中。
在前述基板管理控制器的另一实施方式中,配置模式符合JavaScript对象表示法(JSON)格式。
在前述基板管理控制器的另一实施方式中,多个设备包括以下至少一项:温度传感器;湿度传感器;风扇;电源单元;存储器设备;中央处理器单元;硬件加速器;存储设备;存储控制器;或者网络控制器。
本文还对一种控制器设备进行了描述。该控制器设备包括:接口,用于接收指定被耦接到控制器设备的多个设备的配置模式;至少一个处理器电路;以及至少一个存储器,存储被配置为要由至少一个处理器电路执行的程序代码,该程序代码包括:设备发现器,被配置为:针对多个设备中的每个设备,基于配置模式来执行发现序列以验证设备被耦接到控制器设备并且确定设备的属性;以及设备监控器,被配置为:响应于验证出设备被耦接到控制器设备,监控设备的操作。
在前述控制器设备的一种实施方式中,程序代码还包括:模式验证器,被配置为:确定与配置模式相关联的数字签名有效;并且确定配置模式是否根据预定格式化模式被格式化。
在前述控制器设备的一种实施方式中,配置模式还针对多个设备中的每个设备指定以下至少一项:设备所在的地址;设备的一个或多个配置寄存器所在的地址;针对一个或多个配置寄存器中的每个配置寄存器的预期值;由设备利用的通信协议;或者设备所在的物理位置。
在前述控制器设备的另一实施方式中,配置模式还指定以下至少一项:针对多个设备中的每个设备:设备所在的地址;设备的一个或多个配置寄存器所在的地址;针对一个或多个配置寄存器中的每个配置寄存器的预期值;由设备利用的通信协议;或者设备所在的物理位置。
在前述控制器设备的另一实施方式中,设备发现器还被配置为:针对多个设备中的每个设备:向设备传输请求;从设备接收响应;响应于从设备接收到响应,读取与设备相关联的一个或多个配置寄存器的内容;确定一个或多个配置寄存器中的每个配置寄存器的内容是否与由配置模式针对一个或多个配置寄存器中的每个配置寄存器指定的预期值相匹配;响应于出确定内容相匹配,确定设备被耦接到控制器设备;并且响应于出确定内容不匹配,提供指示内容不匹配的错误信号。
VI.结论
虽然上面已经对各种示例实施例进行了描述,但是应该理解,它们仅通过示例的方式而非限制被呈现出来。(多个)相关领域的普通技术人员要明白,在不脱离如在所附权利要求书中所定义的实施例的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。因此,本发明的广度和范围不应该受上述示例实施例中的任何示例实施例限制,而是应该只根据下面的权利要求书及其等效物而被限定。
Claims (15)
1.一种由安装到母板的基板管理控制器实施的方法,包括:
接收配置模式,所述配置模式指定与所述母板相关联且通过通信总线耦接到所述基板管理控制器的多个设备;
针对所述多个设备中的每个设备,基于所述配置模式来在所述通信总线上执行发现序列,以验证所述设备被通信地耦接到所述基板管理控制器并确定所述设备的属性;以及
响应于验证出所述设备被通信地耦接到所述基板管理控制器,监控所述设备的操作。
2.根据权利要求1所述的方法,其中,所述接收包括:
确定与所述配置模式相关联的数字签名有效;以及
确定所述配置模式是否根据预定格式化模式被格式化。
3.根据权利要求1所述的方法,其中,所述配置模式还针对所述多个设备中的每个设备指定以下至少一项:
所述设备所在的地址;所述设备的一个或多个配置寄存器所在的地址;
针对所述一个或多个配置寄存器中的每个配置寄存器的预期值;
由所述设备利用的通信协议;或者
所述设备所在的物理位置。
4.根据权利要求3所述的方法,其中,所述执行包括:
针对所述多个设备中的每个设备:
向所述设备传输请求;
从所述设备接收响应;
响应于从所述设备接收到所述响应,读取与所述设备相关联的一个或多个配置寄存器的内容;
确定所述一个或多个配置寄存器中的每个配置寄存器的所述内容是否与由所述配置模式针对所述一个或多个配置寄存器中的每个配置寄存器指定的所述预期值相匹配;
响应于确定出所述内容相匹配,确定所述设备被耦接到所述基板管理控制器;以及
响应于确定出所述内容不匹配,提供指示所述内容不匹配的错误信号。
5.根据权利要求4所述的方法,其中,所述设备的所述一个或多个配置寄存器的所述内容指定所述设备的所述属性。
6.根据权利要求4所述的方法,还包括:
将所述一个或多个配置寄存器的所述内容存储在所述基板管理控制器的传感器数据记录中。
7.根据权利要求1所述的方法,其中,所述配置模式根据JavaScript对象表示法(JSON)格式。
8.根据权利要求1所述的方法,其中,所述多个设备包括以下至少一项:
温度传感器;
湿度传感器;
风扇;
电源单元;
存储器设备;
中央处理器单元;
硬件加速器;
存储设备;
存储控制器;或者
网络控制器。
9.一种基板管理控制器,包括:
模式接口,用于接收配置模式,所述配置模式指定被耦接到所述基板管理控制器的多个设备;
设备发现器,被配置为:
针对所述多个设备中的每个设备,基于所述配置模式来执行发现序列,以验证所述设备被耦接到所述基板管理控制器并确定所述设备的属性;以及
设备监控器,被配置为:
响应于验证出所述设备被耦接到所述基板管理控制器,监控所述设备的操作。
10.根据权利要求9所述的基板管理控制器,还包括:
模式验证器,被配置为:
确定与所述配置模式相关联的数字签名有效;以及
确定所述配置模式是否根据预定格式化模式被格式化。
11.根据权利要求9所述的基板管理控制器,其中,所述配置模式还针对所述多个设备中的每个设备指定以下至少一项:
所述设备所在的地址;
所述设备的一个或多个配置寄存器所在的地址;
针对所述一个或多个配置寄存器中的每个配置寄存器的预期值;
由所述设备利用的通信协议;或者
所述设备所在的物理位置。
12.根据权利要求11所述的基板管理控制器,其中,所述设备发现器还被配置为:
针对所述多个设备中的每个设备:
向所述设备传输请求;
从所述设备接收响应;
响应于从所述设备接收到所述响应,读取与所述设备相关联的一个或多个配置寄存器的内容;
确定所述一个或多个配置寄存器中的每个配置寄存器的所述内容是否与由所述配置模式针对所述一个或多个配置寄存器中的每个配置寄存器指定的所述预期值相匹配;
响应于确定出所述内容相匹配,确定所述设备被耦接到所述基板管理控制器;以及
响应于确定出所述内容不匹配,提供指示所述内容不匹配的错误信号。
13.根据权利要求12所述的基板管理控制器,其中,所述设备的所述一个或多个配置寄存器的所述内容指定所述设备的所述属性。
14.根据权利要求12所述的基板管理控制器,还包括:
传感器数据记录,
其中,所述设备发现器被配置为:将所述一个或多个配置寄存器的所述内容存储在所述传感器数据记录中。
15.一种控制器设备,包括:
接口,用于接收配置模式,所述配置模式指定耦接到所述控制器设备的多个设备;
至少一个处理器电路;以及
至少一个存储器,存储被配置为要由所述至少一个处理器电路执行的程序代码,所述程序代码包括:
设备发现器,被配置为:
针对所述多个设备中的每个设备,基于所述配置模式来执行发现序列,以验证所述设备被耦接到所述控制器设备并确定所述设备的属性;以及
设备监控器,被配置为:
响应于验证出所述设备被耦接到所述控制器设备,监控所述设备的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410244128.6A CN118093032A (zh) | 2019-05-07 | 2020-04-06 | 可动态配置的基板管理控制器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/405,441 US11409544B2 (en) | 2019-05-07 | 2019-05-07 | Dynamically-configurable baseboard management controller |
US16/405,441 | 2019-05-07 | ||
PCT/US2020/026943 WO2020226812A1 (en) | 2019-05-07 | 2020-04-06 | Dynamically-configurable baseboard management controller |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410244128.6A Division CN118093032A (zh) | 2019-05-07 | 2020-04-06 | 可动态配置的基板管理控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113826073A true CN113826073A (zh) | 2021-12-21 |
CN113826073B CN113826073B (zh) | 2024-03-19 |
Family
ID=70465506
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410244128.6A Pending CN118093032A (zh) | 2019-05-07 | 2020-04-06 | 可动态配置的基板管理控制器 |
CN202080034001.1A Active CN113826073B (zh) | 2019-05-07 | 2020-04-06 | 可动态配置的基板管理控制器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410244128.6A Pending CN118093032A (zh) | 2019-05-07 | 2020-04-06 | 可动态配置的基板管理控制器 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11409544B2 (zh) |
EP (1) | EP3966682A1 (zh) |
CN (2) | CN118093032A (zh) |
WO (1) | WO2020226812A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080479A (zh) * | 2022-06-14 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 传输方法、服务器、设备、裸金属实例及基板管理控制器 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092918B (zh) * | 2018-10-23 | 2023-08-18 | 联想企业解决方案(新加坡)有限公司 | 计算节点和建立云集群的方法 |
US20210182166A1 (en) * | 2019-12-12 | 2021-06-17 | Western Digital Technologies, Inc. | Zoned namespace management of non-volatile storage devices |
US12045351B2 (en) * | 2020-04-24 | 2024-07-23 | Dell Products L.P. | System and method of authenticating firmware |
CN113708986B (zh) * | 2020-05-21 | 2023-02-03 | 富联精密电子(天津)有限公司 | 服务器监控装置、方法及计算机可读存储介质 |
US11469956B2 (en) * | 2020-07-22 | 2022-10-11 | Cisco Technology, Inc. | Server-management microservice storehouse for baseboard management controllers |
US11636214B2 (en) * | 2020-12-11 | 2023-04-25 | Hewlett Packard Enterprise Development Lp | Memory scan-based process monitoring |
CN112764818B (zh) * | 2021-01-26 | 2024-05-24 | 曙光信息产业(北京)有限公司 | 设备管理方法、装置、电子设备及可读存储介质 |
US11275638B1 (en) * | 2021-03-02 | 2022-03-15 | Quanta Computer Inc. | Systems and methods for storing debug information |
US11797190B2 (en) * | 2021-12-03 | 2023-10-24 | Western Digital Technologies, Inc. | Data storage device and method for providing a temperature-driven variable storage capacity point |
US20230236945A1 (en) * | 2022-01-21 | 2023-07-27 | Dell Products L.P. | System and method for configuring a server display |
US12066885B2 (en) * | 2022-06-16 | 2024-08-20 | Dell Products L.P. | Collection of forensic data after a processor freeze |
US11930611B2 (en) * | 2022-07-29 | 2024-03-12 | Dell Products, L.P. | Configurable chassis supporting replaceable hardware accelerator baseboards |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160048436A1 (en) * | 2014-08-15 | 2016-02-18 | Fujitsu Limited | Method and apparatus for verifying configuration |
CN107924698A (zh) * | 2015-08-28 | 2018-04-17 | 英特尔公司 | 存储器设备校验位读取模式 |
US20180365422A1 (en) * | 2017-06-15 | 2018-12-20 | International Business Machines Corporation | Service Processor and System with Secure Booting and Monitoring of Service Processor Integrity |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275216B2 (en) * | 2003-03-24 | 2007-09-25 | Microsoft Corporation | System and method for designing electronic forms and hierarchical schemas |
US7707282B1 (en) * | 2004-06-29 | 2010-04-27 | American Megatrends, Inc. | Integrated network and management controller |
CN102736967A (zh) * | 2011-04-13 | 2012-10-17 | 鸿富锦精密工业(深圳)有限公司 | 看门狗计时器测试系统及方法 |
US8597028B2 (en) * | 2011-10-10 | 2013-12-03 | Selfquest, Inc. | System and method for facilitating personal development using a computing device |
US10324888B2 (en) * | 2016-09-22 | 2019-06-18 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Verifying a communication bus connection to a peripheral device |
US20180091315A1 (en) * | 2016-09-27 | 2018-03-29 | Qualcomm Incorporated | Revocation and updating of compromised root of trust (rot) |
CN106484578A (zh) | 2016-10-14 | 2017-03-08 | 苏州国芯科技有限公司 | 一种基于可信计算机硬件的校验系统 |
US10691803B2 (en) * | 2016-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Secure execution environment on a server |
EP3618368A1 (en) * | 2018-08-30 | 2020-03-04 | Ovh | Systems and methods for applying a configuration |
-
2019
- 2019-05-07 US US16/405,441 patent/US11409544B2/en active Active
-
2020
- 2020-04-06 CN CN202410244128.6A patent/CN118093032A/zh active Pending
- 2020-04-06 CN CN202080034001.1A patent/CN113826073B/zh active Active
- 2020-04-06 EP EP20722139.1A patent/EP3966682A1/en active Pending
- 2020-04-06 WO PCT/US2020/026943 patent/WO2020226812A1/en unknown
-
2022
- 2022-06-30 US US17/854,137 patent/US11714661B2/en active Active
-
2023
- 2023-06-05 US US18/329,062 patent/US20230315490A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160048436A1 (en) * | 2014-08-15 | 2016-02-18 | Fujitsu Limited | Method and apparatus for verifying configuration |
CN107924698A (zh) * | 2015-08-28 | 2018-04-17 | 英特尔公司 | 存储器设备校验位读取模式 |
US20180365422A1 (en) * | 2017-06-15 | 2018-12-20 | International Business Machines Corporation | Service Processor and System with Secure Booting and Monitoring of Service Processor Integrity |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080479A (zh) * | 2022-06-14 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 传输方法、服务器、设备、裸金属实例及基板管理控制器 |
CN115080479B (zh) * | 2022-06-14 | 2024-03-26 | 阿里巴巴(中国)有限公司 | 传输方法、服务器、设备、裸金属实例及基板管理控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20200356380A1 (en) | 2020-11-12 |
CN113826073B (zh) | 2024-03-19 |
US11714661B2 (en) | 2023-08-01 |
US20230315490A1 (en) | 2023-10-05 |
WO2020226812A1 (en) | 2020-11-12 |
US11409544B2 (en) | 2022-08-09 |
CN118093032A (zh) | 2024-05-28 |
US20220326965A1 (en) | 2022-10-13 |
EP3966682A1 (en) | 2022-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113826073B (zh) | 可动态配置的基板管理控制器 | |
US11599642B2 (en) | Secure booting of information handling systems based on validated hardware | |
US20220207126A1 (en) | Validating secure assembly and delivery of information handling systems | |
US11514193B2 (en) | Validating secure assembly and delivery of multiple information handling systems installed in a shared chassis | |
US11574080B1 (en) | Secure transfer of service identity for information handling systems | |
US20230130694A1 (en) | Validation of fixed firmware profiles for information handling systems | |
US12099970B2 (en) | Validating secure modifications to information handling systems | |
US11423180B2 (en) | Secure identification of components installed in information handling systems | |
US20220207125A1 (en) | Secure data collection for validation of installed components of information handling systems | |
US20230127882A1 (en) | Generating an inventory certificate for validation of information handling systems | |
US20230127223A1 (en) | Physical port validation for information handling systems | |
US20230128572A1 (en) | Customer validation of information handling systems | |
US12105856B2 (en) | Validation and registration for information handling systems | |
US20240232364A9 (en) | Systems and methods for bmc firmware identity based access control | |
US11863691B2 (en) | Lockable device validation for information handling systems | |
US20240232371A9 (en) | Systems and methods for vulnerability proofing when generating ihs updates | |
US11983302B2 (en) | Assignment of service identity for information handling systems | |
US20240232363A9 (en) | Systems and methods to securely configure a factory firmware in a bmc | |
US20240104215A1 (en) | Systems and methods for secure firmware updates | |
US20240232374A9 (en) | Systems and methods for validated vulnerability proofing | |
US20240103825A1 (en) | Systems and methods for score-based firmware updates | |
US20240232370A9 (en) | Systems and methods for vulnerability proofing when updating an ihs | |
US20240232377A9 (en) | Systems and methods for vulnerability proofing interdependent ihs components | |
US20240134995A1 (en) | Systems and methods for context-aware vulnerability risk scores | |
US20240236136A9 (en) | Systems and methods for vulnerability proofed cluster management |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |