发明内容
本发明内容的一目的是在提供一种风扇转速控制系统及用以控制风扇转速的方法,借以有效地控制服务器系统内部的温度。
为达上述目的,本发明内容的一技术方案是关于一种风扇转速控制系统,用以控制至少一风扇。前述风扇转速控制系统包括基板管理控制器、可编程逻辑装置(complexprogrammablelogicdevice,CPLD)以及切换电路。于结构上,基板管理控制器电性耦接至所述风扇,可编程逻辑装置电性耦接至基板管理控制器,而切换电路电性耦接至风扇、基板管理控制器与可编程逻辑装置。
于操作上,基板管理控制器输出风扇脉波信号(fanpulsewavesignal)以及心跳位(heartbit),可编程逻辑装置接收心跳位,并根据心跳位判断基板管理控制器是否发生错误,用以于基板管理控制器发生错误时,产生及输出切换信号与接管脉波信号。切换电路是于基板管理控制器未发生错误时,接收及输出风扇脉波信号,而于基板管理控制器发生错误时,接收切换信号与接管脉波信号,以输出接管脉波信号。
根据本发明一实施例,前述基板管理控制器是于被致能后输出开始信号至可编程逻辑装置。
根据本发明另一实施例,前述基板管理控制器输出风扇的目前转速信号至可编程逻辑装置。
根据本发明再一实施例,前述可编程逻辑装置包括暂存器、控制模块以及至少一脉波产生模块。控制模块电性耦接至基板管理控制器与切换电路,而这些脉波产生模块电性耦接至控制模块。暂存器储存有风扇转速表,控制模块接收心跳位与目前转速信号,以根据心跳位判断基板管理控制器是否发生错误,而于判断基板管理控制器发生错误时输出切换信号以及根据风扇转速表与目前转速信号产生及输出一控制信号。这些脉波产生模块接收及根据控制信号产生及输出接管脉波信号。此外,当控制模块判断得知基板管理控制器恢复正常时,则输出回复信号至切换电路,以使切换电路接收及输出风扇脉波信号。
根据本发明又一实施例,前述可编程逻辑装置还包括时间控制模块以及开关单元。于结构上,时间控制模块电性耦接至控制模块,而开关单元电性耦接至这些脉波产生模块与时间控制模块。时间控制模块于接收到控制信号时开始计数,用以于超过一预设时间时产生及输出一导通信号。开关单元接收导通信号与接管脉波信号,用以根据导通信号而输出接管脉波信号。
为达上述目的,本发明内容的另一技术方案是关于一种用以控制风扇转速的方法,适用服务器,此服务器包括基板管理控制器、可编程逻辑装置、切换电路与风扇。前述方法包括以下步骤:
基板管理控制器产生及输出风扇脉波信号以及心跳位;
可编程逻辑装置接收心跳位,并根据心跳位判断基板管理控制器是否发生错误;
当可编程逻辑装置判断得知基板管理控制器发生错误时,产生及输出切换信号与接管脉波信号;以及
切换电路接收切换信号与接管脉波信号,并输出接管脉波信号;
其中,当基板管理控制器未发生错误时,切换电路接收及输出风扇脉波信号。
根据本发明一实施例,前述用以控制风扇转速的方法还包括:
基板管理控制器于被致能后输出开始信号;以及
基板管理控制器输出风扇的一目前转速信号。
根据本发明另一实施例,前述当可编程逻辑装置判断得知基板管理控制器发生错误时,产生及输出接管脉波信号的步骤包括:
接收目前转速信号;
当判断得知基板管理控制器发生错误时,读取内建的风扇转速表;
根据风扇转速表与目前转速信号产生控制信号;以及
根据控制信号产生及输出接管脉波信号。
根据本发明再一实施例,前述当可编程逻辑装置判断得知基板管理控制器发生错误时,产生及输出接管脉波信号的步骤还包括:
接收到控制信号时开始计数,并判断是否超过预设时间;
当判断得知超过预设时间时,产生导通信号;以及
根据导通信号而输出接管脉波信号。
根据本发明又一实施例,前述用以控制风扇转速的方法还包括当判断得知基板管理控制器恢复正常时,可编程逻辑装置是输出回复信号,以使切换电路接收及输出风扇脉波信号。
因此,根据本发明的技术内容,本发明实施例通过提供一种风扇转速控制系统及用以控制风扇转速的方法,借以有效地控制服务器系统内部的温度,且无论基板管理控制器是否发生错误,均能正确控制风扇的转速,以避免硬件装置的损坏。
具体实施方式
为了使本发明的叙述更加详尽与完备,可参照所附的附图及以下所述各种实施例,附图中相同的号码代表相同或相似的元件。但所提供的实施例并非用以限制本发明所涵盖的范围,而结构运作的描述非用以限制其执行的顺序,任何由元件重新组合的结构,所产生具有均等功效的装置,皆为本发明所涵盖的范围。
其中附图仅以说明为目的,并未依照原尺寸作图。另一方面,众所周知的元件与步骤并未描述于实施例中,以避免对本发明造成不必要的限制。
图1是依照本发明一实施例绘示一种风扇转速控制系统的电路方块图。风扇转速控制系统用以控制至少一风扇,其包括基板管理控制器(BaseboardManagementController,BMC)110、可编程逻辑装置(ComplexProgrammableLogicDevice,CPLD)120以及多个切换电路130~180。于结构上,基板管理控制器110电性耦接至这些风扇,可编程逻辑装置120电性耦接至基板管理控制器110,而切换电路130电性耦接至风扇、基板管理控制器110与可编程逻辑装置120。
进一步而言,以切换电路130为例,切换电路130包括输入端与输出端134,切换电路130的输入端则包括第一输入端口131以及第二输入端口132。于结构上,第一输入端口131电性耦接于基板管理控制器110,而第二输入端口132电性耦接于可编程逻辑装置120,再者,输出端134则电性耦接于风扇135。
于操作上,切换电路130的输入端可于第一输入端口131及第二输入端口132之间进行切换。当切换电路130的输入端切换至第一输入端口131时,由基板管理控制器110输出控制信号至切换电路130,此控制信号经由切换电路130并通过切换电路130的输出端134而输出至风扇135,风扇135接收并根据此控制信号而决定其转速。
另外,当切换电路130的输入端切换至第二输入端口132时,由可编程逻辑装置120输出控制信号至切换电路130,此控制信号经由切换电路130并通过切换电路130的输出端134而输出至风扇135,风扇135接收并根据此控制信号而决定其转速。至于何时需将切换电路130的输入端切换至第一输入端口131,又于何时需将切换电路130的输入端切换至第二输入端口132,亦即风扇转速控制系统的切换机制,将于后文中详述。
在此需说明的是,切换电路140、150、160、170、180的结构及功能是相似于切换电路130,为使本发明说明简洁,于此不再赘述。然图1所示的配置方式并非用以限定本发明,熟悉此技艺者当可依照实际需求来配置切换电路130~180与风扇135、145、155、165、175、185。
为使风扇转速控制系统的切换机制更易于理解,首先,介绍风扇转速控制系统的初始状态。在初始状态下,切换电路130的输入端切换至第一输入端口131,由基板管理控制器110通过切换电路130来对风扇135进行控制。然而,基板管理控制器110于执行一段期间后,有可能会发生无法预期的错误,此时,需要另一电子元件来协助基板管理控制器110以控制风扇135,并需要一适当的切换机制以于基板管理控制器110发生错误时,将风扇转速控制系统的控制权由基板管理控制器110切换到另一电子元件。
上述另一电子元件可通过可编程逻辑装置120来实现,以于基板管理控制器110发生错误时,由可编程逻辑装置120来协助基板管理控制器110以控制风扇135。此外,切换机制的实现方式如下所述,首先,由基板管理控制器110输出风扇脉波信号以及心跳位(HeartbitorHeartBeat)至可编程逻辑装置120,由可编程逻辑装置120接收心跳位,并根据心跳位判断基板管理控制器110是否发生错误,接着,当可编程逻辑装置120判断得知基板管理控制器110发生错误时,产生及输出切换信号与接管脉波信号至切换电路130,此时,风扇转速控制系统的控制权由基板管理控制器110切换到可编程逻辑装置120。
详细而言,当可编程逻辑装置120持续接收到基板管理控制器110所输出的心跳位时,可编程逻辑装置120判断得知基板管理控制器110未发生错误,切换电路130的输入端不做切换,切换电路130的输入端依然电性耦接于基板管理控制器110,而由切换电路130接收及输出风扇脉波信号至风扇135,风扇135根据风扇脉波信号而调整其转速。在此,切换电路140~180的控制方法相似于切换电路130,同理可知,当可编程逻辑装置120判断得知基板管理控制器110未发生错误时,切换电路130~180的输入端不做切换,而由切换电路130接收及输出风扇脉波信号至风扇135~185,风扇135根据风扇脉波信号而调整其转速。
再者,当可编程逻辑装置120未接收到基板管理控制器110所输出的心跳位时,可编程逻辑装置120判断得知基板管理控制器110发生错误,由可编程逻辑装置120输出切换信号至切换电路130,切换电路130的输入端接收切换信号以由第一输入端口131切换至第二输入端口132,同时,由可编程逻辑装置120输出接管脉波信号,由切换电路130接收后输出接管脉波信号至风扇135,风扇135根据接管脉波信号而调整其转速。在此,切换电路140~180的控制方法相似于切换电路130,同理可知,当可编程逻辑装置120判断得知基板管理控制器110发生错误时,切换电路130~180的输入端接收切换信号以由第一输入端口131、141、151、161、171、181切换至第二输入端口132、142、152、162、172、182,同时,由可编程逻辑装置120输出接管脉波信号,由切换电路130~180接收后输出接管脉波信号至风扇135~185,风扇135~185根据接管脉波信号而调整其转速。
如此一来,风扇转速控制系统运用上述切换机制,当基板管理控制器110正常运作时,由基板管理控制器110通过切换电路130~180传送风扇脉波信号至风扇135~185,以控制风扇135~185的转速,而当基板管理控制器110发生错误时,通过切换电路130~180的输入端由第一输入端口131~181切换至第二输入端口132~182,将风扇转速控制系统的控制权由基板管理控制器110切换到可编程逻辑装置120,由可编程逻辑装置120通过切换电路130~180传送接管脉波信号,以控制风扇135~185的转速。因此,无论基板管理控制器110是否发生错误,风扇转速控制系统均能正确控制风扇130~180的转速。
在一实施例中,由于基板管理控制器110刚被开启时,其状态尚未稳定,因此,可编程逻辑装置120于基板管理控制器110刚被开启时,先不判断基板管理控制器110是否错误,待基板管理控制器110稳定后,例如基板管理控制器于被致能后,由基板管理控制器110输出开始信号至可编程逻辑装置120,此时,可编程逻辑装置120于接收到开始信号后,才开始接收并侦测基板管理控制器110所输出的心跳位,以判断基板管理控制器110是否发生错误。
于实现本发明的实施例时,可编程逻辑装置120可包括暂存器121,用以储存风扇转速表,风扇转速表内则记录了风扇135~185的各个转速。一般而言,基板管理控制器110可用以监控服务器的运作状况以决定风扇135~185的转速,以使风扇135~185有效率地对服务器进行散热。然而可编程逻辑装置120无法监控服务器的运作状况,若由可编程逻辑装置120来控制风扇135~185的转速,将无法有效率地对服务器进行散热。
因此,当基板管理控制器110正常运作时,基板管理控制器110根据服务器的运作状况,输出风扇135~185的目前转速信号至可编程逻辑装置120,以设定暂存器121中的风扇转速表所记录的风扇135~185的各个转速。当基板管理控制器110发生错误,而由可编程逻辑装置120来控制风扇135~185时,可编程逻辑装置120可根据基板管理控制器110所预先设定的风扇转速表的风扇135~185的各个转速,以对风扇135~185进行控制,如此一来,可编程逻辑装置120亦可根据预先设定的风扇转速表,以有效率地对服务器进行散热。
在另一实施例中,于实作上,可编程逻辑装置120还包括控制模块122以及至少一脉波产生模块(例如Fan1~Fan6的其中之一)。于结构上,控制模块122是电性耦接至基板管理控制器110与切换电路130~180,脉波产生模块Fan1~Fan6是电性耦接至控制模块122与切换电路之间。然而本发明并不以图1所示的电子元件配置方式为限,在不脱离本发明的精神下,对图1所示的电子元件进行的其余配置方式均落入本发明的范围。
于操作上,控制模块122由基板管理控制器110处接收心跳位与目前转速信号,以根据心跳位判断基板管理控制器110是否发生错误,而于判断基板管理控制器110发生错误时,输出切换信号以及根据风扇转速表与目前转速信号产生及输出控制信号。脉波产生模块Fan1~Fan6接收及根据控制信号产生及输出接管脉波信号。当控制模块122判断得知基板管理控制器110恢复正常时,则输出回复信号至切换电路130~180,以使切换电路130~180接收及输出风扇脉波信号至风扇135~185,风扇135~185根据风扇脉波信号而调整其转速。
在另一实施例中,可编程逻辑装置120有可能会有误判基板管理控制器110发生错误的状况,因此,当可编程逻辑装置120判断得知基板管理控制器110发生错误时,若直接将风扇转速控制系统的主控权由基板管理控制器110交给可编程逻辑装置120并不恰当。
为预防可编程逻辑装置120误判,本发明实施例的风扇转速控制系统还包括时间控制模块123以及开关单元(例如开关单元124~129),当可编程逻辑装置120判定基板管理控制器110发生错误时,由时间控制模块123接收控制模块122所输出的控制信号,时间控制模块123于接收到控制信号时开始计数,用以于超过预设时间时产生及输出导通信号,例如预设时间为10秒钟,当时间控制模块123于接收到控制信号时开始计数超过10秒钟,代表基板管理控制器110的确发生错误,而非被可编程逻辑装置120误判,控制模块122于此时间点输出切换信号,如此可以避免基板管理控制器110在预设时间内,就恢复正常时,而风扇135~185却已经转由可编程逻辑装置120所控制的状况发生。
另外,控制模块122亦可于判断得知基板管理控制器110发生错误时就输出(不管有无超过预设时间),因为只要判断得知基板管理控制器110正常时,控制模块122就会发出回复信号到切换电路130~180,以使切换电路130~180接收及输出风扇脉波信号至风扇135~185。
此外,开关单元124~129接收导通信号与接管脉波信号,用以根据导通信号而输出接管脉波信号至至风扇135~185。进一步而言,于实现本发明时,开关124~129可为晶体管、与门或其余能达到开关操作的电子元件。
在又一实施例中,风扇转速表包括风扇135~185的工作周期(DutyCycle),如下表所示:
表一、风扇转速表
风扇编号 |
工作周期(Duty Cycle) |
风扇135 |
15% |
风扇145 |
35% |
风扇155 |
45% |
风扇165 |
60% |
风扇175 |
75% |
风扇185 |
100% |
当可编程逻辑装置120判断得知基板管理控制器110发生错误时,可编程逻辑装置120输出切换信号至切换电路130~180,切换电路130~180的输入端根据切换信号以切换至可编程逻辑装置120,由可编程逻辑装置120根据表一所示的风扇转速表并通过切换电路130~180以控制风扇135~185的每一者的各个转速。
图2是依照本发明另一实施例绘示一种用以控制风扇转速的方法200的流程示意图,是适用服务器,服务器包括基板管理控制器、可编程逻辑装置、切换电路与风扇。如图所示,前述方法包括以下步骤:基板管理控制器于被致能后输出开始信号(步骤210);基板管理控制器输出风扇的目前转速信号(步骤220);基板管理控制器产生及输出风扇脉波信号以及心跳位(步骤230);可编程逻辑装置是接收心跳位,并根据心跳位判断基板管理控制器是否发生错误(步骤240);当可编程逻辑装置判断得知基板管理控制器发生错误时,产生及输出切换信号与接管脉波信号(步骤250);切换电路接收切换信号与接管脉波信号,并输出接管脉波信号(步骤260);当基板管理控制器未发生错误时,切换电路是接收及输出风扇脉波信号(步骤270)。
为使本发明实施例的用以控制风扇转速的方法200更易于理解,在此将配合图1,以一并例示性地说明上述流程。首先,步骤210与步骤240为预防基板管理控制器110刚被开启时,其状态尚未稳定,而导致可编程逻辑装置120可能会误判的状况,详述如下。由于基板管理控制器110刚被开启时,其状态尚未稳定,因此,可编程逻辑装置120于基板管理控制器110刚被开启时,先不判断基板管理控制器110是否错误。当基板管理控制器110如步骤210所示于被致能后,输出开始信号至可编程逻辑装置120,在此,步骤240多加一道限制,亦即可编程逻辑装置120于接收到开始信号后,才开始接收基板管理控制器110所输出的心跳位,并根据心跳位判断基板管理控制器110是否发生错误。然本发明并不以此为限,另一种基板管理控制器110与可编程逻辑装置120的相互配合方式如步骤230与240所示。
在步骤230中,基板管理控制器110产生及输出风扇脉波信号及心跳位至可编程逻辑装置120。接着,于步骤240中,可编程逻辑装置120可不需接收开始信号,而直接接收心跳位,并根据心跳位判断基板管理控制器110是否发生错误。
此外,步骤220的用意在于,当基板管理控制器110正常运作时,基板管理控制器110根据服务器的运作状况,以输出风扇的目前转速信号,来设定可编程逻辑装置120内的风扇转速表所记录的风扇135~185的各个转速,当基板管理控制器110发生错误,而由可编程逻辑装置120来控制风扇135~185时,可编程逻辑装置120可根据基板管理控制器110所预先设定的风扇转速表的风扇135~185的各个转速,以对风扇135~185进行控制,如此一来,通过可编程逻辑装置120亦可根据预先设定的风扇转速表,以有效率地对服务器进行散热。
当可编程逻辑装置120判断得知基板管理控制器110发生错误时,如步骤250所示,可编程逻辑装置120产生及输出切换信号与接管脉波信号。随后,切换电路如步骤260所示接收切换信号与接管脉波信号,并输出接管脉波信号至风扇135~185,风扇135~185根据接管脉波信号而调整其转速。当执行完步骤260后,回头执行步骤240。此外,当可编程逻辑装置120判断得知基板管理控制器110恢复正常时,可编程逻辑装置120是输出回复信号,以使切换电路130~180接收及输出风扇脉波信号。
再者,在步骤240之后,当可编程逻辑装置120判断得知基板管理控制器110未发生错误时,如步骤270所示,切换电路是接收及输出风扇脉波信号至风扇135~185,风扇135~185根据风扇脉波信号而调整其转速。当执行完步骤270后,回头执行步骤240,通过可编程逻辑装置120持续对基板管理控制器110进行监控。
在一实施例中,步骤250包括:接收目前转速信号;当判断得知基板管理控制器发生错误时,读取内建的风扇转速表;根据风扇转速表与目前转速信号产生控制信号;以及根据控制信号产生及输出接管脉波信号。于实现本步骤时,控制模块122由基板管理控制器110处接收心跳位与目前转速信号,以根据心跳位判断基板管理控制器110是否发生错误,而于判断基板管理控制器110发生错误时,读取内建的风扇转速表。接着,控制模块122根据风扇转速表与目前转速信号产生及输出控制信号。脉波产生模块Fan1~Fan6接收及根据控制信号产生及输出接管脉波信号。
在另一实施例中,步骤250包括:接收到控制信号时开始计数,并判断是否超过预设时间;当判断得知超过预设时间时,产生导通信号;以及根据导通信号而输出接管脉波信号。此步骤是用以预防可编程逻辑装置120误判,其机制如下所述。可编程逻辑装置120有可能会有误判基板管理控制器110发生错误的状况,因此,当可编程逻辑装置120判定基板管理控制器110发生错误时,若直接将风扇转速控制系统的主控权由基板管理控制器110交给可编程逻辑装置120并不恰当。
为预防可编程逻辑装置120误判,当可编程逻辑装置120判定基板管理控制器110发生错误时,由时间控制模块123接收控制模块122所输出的控制信号,时间控制模块123于接收到控制信号时开始计数,当判断得知超过预设时间时产生及输出导通信号。例如预设时间为10秒钟,当时间控制模块123于接收到控制信号时开始计数超过10秒钟,代表基板管理控制器110的确发生错误,而非被可编程逻辑装置120误判,此时,开关单元124~129根据导通信号而输出接管脉波信号至风扇135~185,风扇135~185根据接管脉波信号而调整其转速。
如上所述的用以控制风扇转速的方法皆可由软件、硬件与/或固件来执行。举例来说,若以执行速度及精确性为首要考量,则基本上可选用硬件与/或固件为主;若以设计弹性为首要考量,则基本上可选用软件为主;或者,可同时采用软件、硬件及固件协同作业。应了解到,以上所举的这些例子并没有所谓孰优孰劣之分,亦并非用以限制本发明,熟悉此项技艺者当视当时需要弹性设计。
再者,所属技术领域中具有通常知识者当可明白,用以控制风扇转速的方法中的各步骤依其执行的功能予以命名,仅是为了让本案的技术更加明显易懂,并非用以限定该等步骤。将各步骤予以整合成同一步骤或分拆成多个步骤,或者将任一步骤更换到另一步骤中执行,皆仍属于本发明的实施方式。
由上述本发明实施方式可知,应用本发明具有下列优点。本发明实施例通过提供一种风扇转速控制系统及用以控制风扇转速的方法,借以有效地控制服务器系统内部的温度,且无论基板管理控制器是否发生错误,均能正确控制风扇的转速,以避免硬件装置的损坏。
虽然本发明已以实施方式揭露如上,然其并非用以限定本发明,任何熟悉此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求书所界定的范围为准。