一种BMC芯片托管系统及其控制方法
技术领域
本发明属于服务器专用芯片技术领域,具体涉及一种BMC芯片托管系统及其控制方法。
背景技术
BMC,是Baseboard Management Controller的缩写,基板管理控制器。
随着服务器性能的快速发展,服务器所用芯片的频率越来越快,同时客户对于服务器的稳定性方面的要求越来越高。在目前的服务器结构中,对服务器主板的管理大多采用BMC芯片来进行管理,BMC芯片可以实现温度以及风扇转速的监测及控制,从而实现对主板更好的维护。客户对于服务器在性能方面要求越来越高的同时,稳定性方面的要求同样越来越高。在实际应用中,BMC芯片会受到各种各样的干扰,比如电磁辐射等,会使得BMC芯片失效。当BMC芯片失效之后,风扇失去控制,在服务器中集成大量专用芯片会产生大量的热,如不及时散热,整个服务器有工作异常的风险。BMC芯片失效前的状态如果没有保存,也就失去了分析BMC芯片失效原因的机会。同时,BMC芯片失效,也就无法发送报警信息到控制室。
现有技术中现有的服务器风扇管理设计中,比较先进的采用一旦BMC芯片失效之后,使用固定方式控制风扇的方式,在服务器内部,采用BMC芯片作为风扇转速的控制器,并且BMC芯片在正常工作状态下输出周期性的脉冲信号作为喂狗信号,将BMC芯片连接单片机,该单片机作为BMC芯片工作状态的监测单元,通过监测BMC丢出的喂狗信号,实现对BMC是否正常工作的监测,当BMC芯片失效后,调控风扇转速,保证系统的正常散热。在上述步骤中,采用二选一的选通器作为失效后风扇控制信号与正常控制信号的切换选择;同时该选通器连接高电平信号,作为BMC芯片失效后的风扇控制信号,使风扇处于全速转动状态;采用固定方式不能很好的控制风扇的功耗,因为风扇全速运行,会造成资源浪费,而且即使风扇全速运行,也无法检测服务器的工作状态,如果系统出现功耗急剧升高的现象,无法关闭服务器;同时无法通知远端管理系统BMC芯片出现问题,进行系统维护。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种BMC托管芯片及其控制方法,是非常有必要的。
发明内容
本发明的目的在于,针对上述BMC芯片失效后风扇失去控制,无法分析BMC芯片失效的原因,服务报警的缺陷,提供一种BMC芯片托管系统及其控制方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种BMC芯片托管系统,包括BMC托管芯片和服务器主板,BMC托管芯片连接有BMC芯片、温度传感器、风扇以及电源;温度传感器、风扇以及电源设置在服务器主板上;
BMC托管芯片与BMC芯片通过控制总线连接,BMC托管芯片与电源通过电源控制线连接,BMC托管芯片通过风扇控制信号线与风扇连接;
BMC托管芯片用于判断BMC芯片失效;在BMC芯片失效时,根据接收到的温度传感器的温度检测信息,生成风扇控制参数和电源控制参数,并将所述风扇控制参数发送到风扇以控制风扇转速,将所述电源控制参数发送到电源以控制电源关闭。
进一步地,BMC托管芯片与BMC芯片还通过网线连接,BMC托管芯片还连接有远端管理单元;
在BMC芯片失效时,BMC托管芯片还与远端管理单元进行网络通信;
在BMC芯片正常工作时,BMC托管芯片将BMC芯片发送的风扇控制参数转发给风扇,以及将BMC芯片发送的电源控制参数转发给电源;BMC托管芯片将温度传感器发送的温度检测信息转发给BMC芯片;BMC托管芯片还将BMC芯片发送的第一网络通信数据转发到远端管理单元,或者,将远端管理单元的发送的第二网络通信数据转发到BMC芯片。
进一步地,BMC托管芯片包括逻辑控制模块,逻辑控制模块连接有BMC失效检测模块、BMC运行信息存储模块、第一网络接口以及第二网络接口;
逻辑控制模块还与电源、风扇以及温度传感器连接;
BMC失效检测模块和BMC运行信息存储模块还通过控制总线与BMC芯片连接;
所述BMC托管芯片通过所述第一网络接口与所述BMC芯片通信连接,以及通过所述第二网络接口与所述远端管理单元通信连接;
BMC芯片失效时,BMC托管芯片通过第二网络接口发送第三网络通信数据至远端管理单元,或者,通过第二网络接口接收来自远端管理单元的第四网络通信数据;第三网络通信数据包括BMC托管芯片接收到的温度传感器发送的温度检测信息、BMC托管芯片发送给风扇的风扇控制参数以及BMC托管芯片发送给电源的电源控制参数;第四网络通信数据包括远端管理单元发送给BMC托管芯片的风扇控制参数及电源控制参数;
BMC芯片正常工作时,BMC托管芯片通过第一网络接口接收来自BMC芯片的第一网络通信数据,并通过第二网络接口将所述第一网络通信数据发送至所述远端管理单元,或者,通过第二网络接口接收来自远端管理单元的第二网络通信数据,并通过第一网络接口将所述第二网络通信数据发送至BMC芯片;第一网络通信数据包括BMC芯片接收到的温度传感器发送的温度检测信息、BMC芯片发送给风扇的风扇控制参数以及BMC芯片发送给电源的电源控制参数;第二网络通信数据包括远端管理单元发送给BMC芯片的风扇控制参数及电源控制参数;
BMC运行信息存储模块用于保存BMC芯片发送给电源、风扇的控制参数以及BMC芯片的状态信息;
BMC失效检测模块用于检测BMC芯片是否处于失效状态;
逻辑控制模块用于根据BMC芯片是否失效判断BMC托管芯片是处于转发BMC芯片数据给风扇和电源的状态,还是处于接管BMC芯片的控制风扇和电源功能状态。
进一步地,控制总线包括BMC接口状态线、电源控制总线、温度检测总线及风扇控制总线。
进一步地,风扇控制信号线采用PWM风扇控制信号线。
本发明还提供一种基于上述BMC托管芯片系统的控制方法,包括如下步骤:
判断BMC芯片是否失效;
当判断BMC芯片失效时,BMC托管芯片接收温度传感器发送的温度检测信息;以及,根据所述温度检测信息,生成风扇控制参数和电源控制参数,并将所述风扇控制参数发送到风扇;以及将电源控制参数给电源。
进一步地,还包括:
当判断BMC芯片失效时,BMC托管芯片还与远端管理单元进行网络通信,BMC托管芯片发送第三网络通信数据至远端管理单元,或者,接收来自远端管理单元的第四网络通信数据;第三网络通信数据包括BMC托管芯片接收到的温度传感器发送的温度检测信息、BMC托管芯片发送给风扇的风扇控制参数以及BMC托管芯片发送给电源的电源控制参数;第四网络通信数据包括远端管理单元发送给BMC托管芯片的风扇控制参数及电源控制参数。
进一步地,还包括:
当判断BMC芯片正常工作时,BMC托管芯片将BMC芯片发送的风扇控制参数转发给风扇,以及将BMC芯片发送的电源控制参数转发给电源;BMC托管芯片将温度传感器发送的温度检测信息转发给BMC芯片;BMC托管芯片还将BMC芯片发送的第一网络通信数据转发到远端管理单元,或者,将远端管理单元的发送的第二网络通信数据转发到BMC芯片;第一网络通信数据包括BMC芯片接收到的温度传感器发送的温度检测信息、BMC芯片发送给风扇的风扇控制参数以及BMC芯片发送给电源的电源控制参数;第二网络通信数据包括远端管理单元发送给BMC芯片的风扇控制参数及电源控制参数。
进一步地,根据温度检测信息,生成风扇控制参数和电源控制参数,包括:
当所述温度检测信息对应的温度属于预设温度范围时,BMC托管芯片维持BMC芯片失效前的控制风扇参数和电源控制参数不变;
当所述温度检测信息对应的温度不属于预设温度范围时,计算温度变化率;
当所述温度变化率大于第一阈值时,生成风扇控制参数,用于提高风扇转速;
当所述温度变化率大于第二阈值时,生成电源控制参数,用于关闭服务器电源,同时BMC托管芯片发送警报到远端管理单元。
进一步地,当判断BMC芯片正常工作时,BMC托管芯片还记录BMC芯片发送的BMC芯片各个接口的状态信息;BMC各个接口状态信息包括BMC的处理器内部寄存器信息以及各外设状态信息;
当判断BMC芯片失效时,BMC托管芯片还通过第二网络接口发送保存的BMC芯片状态信息到远端管理单元;通过记录并发送BMC芯片失效前的状态信息,可以供分析BMC芯片失效的原因。
进一步地,所述判断BMC芯片是否失效包括:
接收BMC芯片发送的校验脉冲,其中,所述校验脉冲包括多个脉冲信号,且所述多个脉冲信号的宽度均不相同;
当脉冲信号的宽度与相应的标准信号的宽度不同时,确定所述脉冲信号为异常脉冲信号,并统计异常脉冲信号次数;
当所述异常脉冲信号次数大于阈值时,判定BMC芯片失效。
进一步地,所述校验脉冲分为若干组,每组包括约定个数的脉冲信号,当检测到任意一组出现异常脉冲信号次数大于阈值时,判定BMC芯片失效。
进一步地,所述警报包括SNMP警报。
本发明的有益效果在于:BMC托管芯片在服务器运行过程中,起到维持服务器运行的作用。为防止BMC芯片由于未知原因失效,而导致降温风扇失去控制,服务器温度过高,报警功能失效,进而管理员无法及时排除故障,可能出现安全事故等一系列现象,引入BMC托管芯片,BMC芯片正常时,BMC托管芯片起转发作用,BMC芯片失效时,起托管作用,同时保存并发送BMC芯片失效前的状态,分析BMC芯片失效原因的机会;让风扇和电源以BMC芯片失效前的状态运行,避免了不控制风扇出现安全事故,或者让风扇全速运行,造成资源浪费。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明系统结构图;
图2为本发明的BMC托管芯片结构图;
图3为本发明的方法流程图;
其中,1-BMC托管芯片;1.1-逻辑控制模块;1.2-BMC失效检测模块;1.3-BMC运行信息存储模块;1.4-第一网络接口;1.5-第二网络接口;2-BMC芯片;3-电源;4-风扇;5-温度传感器;6-远端管理单元。
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1所示,本发明提供一种BMC芯片托管系统,包括BMC托管芯片1和服务器主板,BMC托管芯片1连接有BMC芯片2、温度传感器5、风扇4以及电源3;温度传感器、风扇4以及电源3设置在服务器主板上;
BMC托管芯片1与BMC芯片2通过控制总线连接,BMC托管芯片1与电源3通过电源控制线连接,BMC托管芯片1通过风扇控制信号线与风扇4连接;控制总线包括BMC接口状态线、电源控制总线、温度检测总线及风扇控制总线;风扇控制信号线采用PWM风扇控制信号线;
BMC托管芯片1用于判断BMC芯片2失效;在BMC芯片2失效时,根据接收到的温度传感器5的温度检测信息,生成风扇控制参数和电源控制参数,并将所述风扇控制参数发送到风扇4以控制风扇转速,将所述电源控制参数发送到电源3以控制电源关闭;
BMC托管芯片1与BMC芯片2还通过网线连接,BMC托管芯片1还连接有远端管理单元6;
在BMC芯片2失效时,BMC托管芯片1还与远端管理单元6进行网络通信;
在BMC芯片2正常工作时,BMC托管芯片1将BMC芯片2发送的风扇控制参数转发给风扇4,以及将BMC芯片2发送的电源控制参数转发给电源3;BMC托管芯片1将温度传感器5发送的温度检测信息转发给BMC芯片2;BMC托管芯片1还将BMC芯片2发送的第一网络通信数据转发到远端管理单元6,或者,将远端管理单元6的发送的第二网络通信数据转发到BMC芯片2。
如图2所示,BMC托管芯片1包括逻辑控制模块1.1,逻辑控制模块1.1连接有BMC失效检测模块1.2、BMC运行信息存储模块1.3、第一网络接口1.4以及第二网络接口1.5;
逻辑控制模块1.1还与电源3、风扇4以及温度传感器5连接;
BMC失效检测模块1.2和BMC运行信息存储模块1.3还通过控制总线与BMC芯片2连接;
所述BMC托管芯片1通过所述第一网络接口1.4与所述BMC芯片2通信连接,以及通过所述第二网络接口1.5与所述远端管理单元6通信连接;
BMC芯片2失效时,BMC托管芯片1用于发送第三网络通信数据至远端管理单元6,或者,接收来自远端管理单元6的第四网络通信数据;第三网络通信数据包括BMC托管芯片1接收到的温度传感器5发送的温度检测信息、BMC托管芯片1发送给风扇4的风扇控制参数以及BMC托管芯片1发送给电源3的电源控制参数;第四网络通信数据包括远端管理单元6发送给BMC托管芯片1的风扇控制参数及电源控制参数;
BMC芯片2正常工作时,BMC托管芯片1用于接收来自BMC芯片2的第一网络通信数据,并将所述第一网络通信数据发送至所述远端管理单元6,或者,接收来自远端管理单元6的第二网络通信数据,并将所述第二网络通信数据发送至BMC芯片2;第一网络通信数据包括BMC芯片2接收到的温度传感器5发送的温度检测信息、BMC芯片2发送给风扇4的风扇控制参数以及BMC芯片2发送给电源3的电源控制参数;第二网络通信数据包括远端管理单元6发送给BMC芯片2的风扇控制参数及电源控制参数;
BMC运行信息存储模块1.3用于保存BMC芯片2发送给电源3、风扇4的控制参数以及BMC芯片2的状态信息;
BMC失效检测模块1.2用于检测BMC芯片2是否处于失效状态;
逻辑控制模块1.1用于根据BMC芯片2是否失效判断BMC托管芯片1是处于转发BMC芯片2数据给风扇和电源的状态,还是处于接管BMC芯片2的控制风扇和电源功能状态。
如图3所示,本发明还提供一种BMC芯片托管系统的控制方法,包括如下步骤:
判断BMC芯片是否失效;
当判断BMC芯片失效时,BMC托管芯片接收温度传感器发送的温度检测信息;以及,根据所述温度检测信息,生成风扇控制参数和电源控制参数,并将所述风扇控制参数发送到风扇,以及将电源控制参数给电源;BMC托管芯片还与远端管理单元进行网络通信,BMC托管芯片发送第三网络通信数据至远端管理单元,或者,接收来自远端管理单元的第四网络通信数据;第三网络通信数据包括BMC托管芯片接收到的温度传感器发送的温度检测信息、BMC托管芯片发送给风扇的风扇控制参数以及BMC托管芯片发送给电源的电源控制参数;第四网络通信数据包括远端管理单元发送给BMC托管芯片的风扇控制参数及电源控制参数;BMC托管芯片还通过第二网络接口发送保存的BMC芯片状态信息到远端管理单元;通过记录并发送BMC芯片失效前的状态信息,可以供分析BMC芯片失效的原因;
当判断BMC芯片正常工作时,BMC托管芯片将BMC芯片发送的风扇控制参数转发给风扇,以及将BMC芯片发送的电源控制参数转发给电源;BMC托管芯片将温度传感器发送的温度检测信息转发给BMC芯片;BMC托管芯片还将BMC芯片发送的第一网络通信数据转发到远端管理单元,或者,将远端管理单元的发送的第二网络通信数据转发到BMC芯片;第一网络通信数据包括BMC芯片接收到的温度传感器发送的温度检测信息、BMC芯片发送给风扇的风扇控制参数以及BMC芯片发送给电源的电源控制参数;第二网络通信数据包括远端管理单元发送给BMC芯片的风扇控制参数及电源控制参数;BMC托管芯片还记录BMC芯片发送的BMC芯片各个接口的状态信息;BMC各个接口状态信息包括BMC的处理器内部寄存器信息以及各外设状态信息;
上述根据温度检测信息,生成风扇控制参数和电源控制参数,包括:
当所述温度检测信息对应的温度属于预设温度范围时,BMC托管芯片维持BMC芯片失效前的控制风扇参数和电源控制参数不变;
当所述温度检测信息对应的温度不属于预设温度范围时,计算温度变化率;
当所述温度变化率大于第一阈值时,生成风扇控制参数,用于提高风扇转速;
当所述温度变化率大于第二阈值时,生成电源控制参数,用于关闭服务器电源,同时BMC托管芯片发送警报到远端管理单元;
上述判断BMC芯片是否失效包括:接收BMC芯片发送的校验脉冲,其中,所述校验脉冲包括多个脉冲信号,且所述多个脉冲信号的宽度均不相同;当脉冲信号的宽度与相应的标准信号的宽度不同时,确定所述脉冲信号为异常脉冲信号,并统计异常脉冲信号次数;当所述异常脉冲信号次数大于阈值时,判定BMC芯片失效;
所述校验脉冲分为若干组,每组包括约定个数的脉冲信号,当检测到任意一组出现异常脉冲信号次数大于阈值时,判定BMC芯片失效;
以每组约定的脉冲信号个数5个,次数阈值为2次为例,约定5个脉冲信号分别为第一脉冲信号、第二脉冲信号、第三脉冲信号、第四脉冲信号以及第五脉冲信号,第一脉冲信号的宽度为1个时钟周期,第二脉冲信号的宽度为2个时钟周期,第三脉冲信号的宽度为3个时钟周期,第四脉冲信号的宽度为4个时钟周期,第五脉冲信号的宽度为5个时钟周期,第一脉冲信号、第二脉冲信号、第三脉冲信号、第四脉冲信号以及第五脉冲信号按序号顺序依次发送,若出现2次以上,例如出现3次异常脉冲信号,则判定BMC芯片失效。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。