端点服务器的控制模块及其韧体更新方法
【专利摘要】本发明公开一种端点服务器的控制模块及其韧体更新方法,控制模块包括基板管理控制器、储存有工作韧体的第一内存与储存有预设韧体的第二内存。基板管理控制器于正常情况下连接第一内存,并读取工作韧体以进行开机。当对工作韧体进行更新且更新失败,导致无法正常开机时,基板管理控制器切换连接至第二内存,并读取预设韧体以进行开机。基板管理控制器通过预设韧体开机完成后,再切换连接至第一内存,并重新对工作韧体进行更新。本发明借由第二内存的设置,防止在更新工作韧体失败后,基板管理控制器无法正常开机的问题。
【专利说明】
端点服务器的控制模块及其韧体更新方法
技术领域
[0001]本发明涉及端点服务器,尤其涉及端点服务器中的控制模块,以及控制模块的韧体更新方法。
【背景技术】
[0002]一般来说,设置在机柜(Rack)内的每一台服务器(例如刀锋服务器)均需配置有各自的基板管理控制器(Baseboard Management Controller, BMC),并由该BMC来对该服务器进行控制及维护。
[0003]该BMC属于一种系统单芯片(System on Chip),本身具备有内存,并且需通过韧体的执行来进行工作。因此,该BMC与该服务器中的中央处理单元(Central ProcessingUnit , CPU)相同,均需不定期对其韧体进行更新。
[0004]一般来说,该BMC可在接收到韧体的更新档后,自动对所使用的韧体进行更新,然而若在更新过程中,更新程序被意外中断(例如当机或机柜电源中断),或是更新到错误的韧体,则在该BMC重新启动后,将可能无法正常开机。
[0005]如上所述,若该BMC没有该服务器的主机操作系统(Operating System,OS)以及系统接口的支持,就无法对更新失败的韧体再次进行更新,如此将导致该BMC将无法再被使用。
[0006]有鉴于此,如何使BMC可在韧体更新失败后,不借助外力即正常开机,并对更新失败的韧体再次进行更新,即为本技术领域的从业人员所潜心研究的课题。
【发明内容】
[0007]本发明的主要目的在于提供一种端点服务器的控制模块及其韧体更新方法,可确保基板管理控制器在韧体更新失败后仍可正常开机,并对更新失败的韧体再次进行更新。
[0008]为了达成上述目的,本发明提供的端点服务器的控制模块包括:
一基板管理控制器,连接一机柜内的一机柜管理控制器,其中该端点服务器设置于该机柜中;
一第一内存,电性连接该基板管理控制器,储存有一工作韧体,该基板管理控制器读取该工作韧体以执行一开机程序,并执行一韧体更新程序以更新该工作韧体;
一第二内存,电性连接该基板管理控制器,储存有一预设韧体,当该工作韧体更新失败且该基板管理控制器无法通过该工作韧体开机时,读取该预设韧体以执行该开机程序;其中,该基板管理控制器通过该预设韧体完成该开机程序后,于开机状态下切换连接至该第一内存,并重新对该工作韧体执行该韧体更新程序。
[0009]如上所述,其中该第一内存与该第二内存为只读存储器(Read Only Memory,ROM)。
[0010]如上所述,其中该基板管理控制器具有一储存单元,暂存一韧体更新档,该韧体更新程序将该韧体更新档刻录至该第一内存中以更新该工作韧体。
[0011]如上所述,其中还包括一硬件切换器,具有电性连接该基板管理控制器与该第一内存的一第一读取通道与一第一刻录通道,以及电性连接该基板管理控制器与该第二内存的一第二读取通道与一第二刻录通道,并且该基板管理控制器通过一 GP1接口电性连接该基板管理控制器的一切换脚位。
[0012]如上所述,其中该基板管理控制器通过该第一读取通道读取该工作韧体以执行该开机程序;于通过该工作韧体开机时,通过该第一刻录通道刻录一韧体更新文件至该第一内存中以更新该工作韧体;于无法通过该工作韧体开机时,通过该第二读取通道读取该预设韧体以执行该开机程序。
[0013]如上所述,其中该基板管理控制器通过该预设韧体完成该开机程序后,通过该GP1接口发送一控制指令至该硬件切换器,以将该第二刻录通道切换连接至该第一内存,并且该基板管理控制器通过该第二刻录通道将该韧体更新档刻录至该第一内存中,以对该工作韧体进行更新。
[0014]为了达到上述目的,本发明的控制模块采用一种韧体更新方法,包括:
a)判断该基板管理控制器是否可读取该第一内存中的该工作韧体;
b)若可正常读取该工作韧体,依据该工作韧体执行该开机程序;
c)承步骤b,执行该韧体更新程序以对该工作韧体进行更新;
d)若无法读取该工作韧体,依据该第二内存中的该预设韧体执行该开机程序;
e)步骤d后,于开机状态下切换连接至该第一内存,并对该工作韧体执行该韧体更新程序。
[0015]如上所述,其中该步骤a之前还包括下列步骤:
aOl)该基板管理控制器将一韧体更新档刻录至该第一内存中,以更新该工作韧体 '及 a02)该基板管理控制器重置。
[0016]如上所述,其中该控制模块还包括一硬件切换器,具有电性连接该基板管理控制器与该第一内存的一第一读取通道与一第一刻录通道,以及电性连接该基板管理控制器与该第二内存的一第二读取通道与一第二刻录通道,并且该基板管理控制器通过一 GP1接口电性连接该基板管理控制器的一切换脚位。
[0017]如上所述,其中该步骤a中,该基板管理控制器通过该第一读取通道读取该工作韧体;该步骤c中,该基板管理控制器通过该第一刻录通道将一韧体更新档刻录至该第一内存中以更新该工作韧体;该步骤d中,该基板管理控制器通过该第二读取通道读取该预设韧体;该步骤e中,该基板管理控制器通过该GP1接口发送一控制指令至该硬件切换器,以将该第二刻录通道切换连接至该第一内存,并且该基板管理控制器通过该第二刻录通道重新更新该工作韧体。
[0018]本发明对照现有技术所能达到的技术优点在于:通过第二内存的设置,则基板管理控制器在主要使用的工作韧体更新失败后,仍可通过第二内存中的预设韧体来进行备援开机。如此一来,基板管理控制器可以对更新失败的工作韧体再次进行更新,直到更新成功为止。通过本发明的技术方案,可有效防止现有技术在韧体更新失败后,基板管理控制器就无法正常开机的问题。
【附图说明】
[0019]图1为本发明的第一具体实施例的机柜示意图;图2为本发明的第一具体实施例的连接示意图;图3为本发明的第一具体实施例的控制模块方块图;图4为本发明的第二具体实施例的控制模块方块图;图5为本发明的第一具体实施例的韧体更新流程图。
[0020]附图标记:1…机柜;11…机柜管理控制器;2…端点服务器;20…控制模块;21…基板管理控制器;211…储存单元;22…第一内存;23…第二内存;24…硬件切换器;241…第一读取通道;242…第一刻录通道;243…第二读取通道;244…第二刻录通道;3…GP10通道;F1…工作韧体;F2…预设韧体;II…韧体更新档;S20-S34…更新步骤。【具体实施方式】
[0021]下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0022]兹就本发明的一较佳实施例,配合图式,详细说明如后。
[0023]首请参阅图1与图2,分别为本发明的第一具体实施例的机柜示意图及连接示意图。图1揭露了一机柜1,该机柜1具有多个容置槽,可供设置多组的端点服务器2,该机柜 1中还包含了如图2所不的一机柜管理控制器(Rack Management Controller,RMC) 11。 该多个端点服务器2内分别设置有一控制模块20。该机柜管理控制器11分别与该多个控制模块20沟通,借以对各该端点服务器2进行控制、搜集各该端点服务器2的相关信息以及传递各该端点服务器2所需的数据。本发明中,该端点服务器2可为一般的机架式服务器或是硬盘聚集端点(Just a bunch of disks node, JBOD node),但不加以限定。
[0024]本实施例中,该机柜管理控制器11主要可通过实体的智能平台管理总线 (Intelligent Platform Management Bus,IPMB)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter , UART)、内部整合电路(Inter-1ntegratedCircuit , F2C)、序列周边接口 (Serial Peripheral Interface , SPI)或是无线的局域网络(Local Area Network,LAN)等传输通道与该多个控制模块20进行沟通,但不加以限定。
[0025]该机柜管理控制器11可通过上述传输通道分别与该机柜I中的所有该端点服务器2的该控制模块20进行沟通。更具体而言,该些控制模块20内分别具有如图3所示的一基板管理控制器(Baseboard Management Controller , BMC) 21,该机柜管理控制器11主要与该些端点服务器2中的该多个基板管理控制器21进行沟通。
[0026]如图2所示,当该多个控制模块20的韧体需要更新时,该机柜管理控制器11可通过有线或无线方式从外部接收一韧体更新档II。该韧体更新档Ii主要可为更新版本的韧体的映象档(Image),但不加以限定。
[0027]本发明中,该机柜管理控制器11可在收到该韧体更新档Il时,立即通过该传输通道分别传送至各该控制模块20中的该基板管理控制器21,以使各该基板管理控制器21执行一韧体更新程序。另,该机柜管理控制器11也可依照一预定排程,并于一特定的更新时间到达时,再将该韧体更新档Il分别传送至各该基板管理控制器21,不加以限定。
[0028]续请参阅图3,为本发明的第一具体实施例的控制模块方块图。如图3所示,本发明中该控制模块20主要包括该基板管理控制器21、一第一内存22及一第二内存23,其中该基板管理控制器21分别与该第一内存22及该第二内存23电性连接。更具体而言,该基板管理控制器21与该第一内存22之间为一双向连接关系,而与该第二内存23之间为一单向连接关系(容下详述)。
[0029]该基板管理控制器21具有一储存单元211,该储存单元211可为随机存取内存(Random Access Memory, RAM)、只读存储器(Read Only Memory, ROM)或闪存(FlashMemory)等,不加以限定。当该基板管理控制器21接收该机柜管理控制器11传输的该韧体更新档Il后,主要先暂存于该储存单元211中,以于后续执行该韧体更新程序时使用。
[0030]该第一内存22为该基板管理控制器21的主要内存,其中储存有一工作韧体Fl。于正常状态下,该基板管理控制器21主要是读取该工作韧体F1,并通过该工作韧体Fl的执行来完成一开机程序。本实施例中,当该基板管理控制器21执行该韧体更新程序时,主要是依据该韧体更新档Il对该第一内存22中的该工作韧体Fl进行更新。
[0031]该第二内存23为该基板管理控制器21的备援内存,其中储存有一预设韧体F2。本实施例中,该第一内存22与该第二内存23为只读存储器(ROM)。
[0032]本发明的主要技术特征在于,在正常状态下,该基板管理控制器21只会通过该工作韧体Fl来进行开机,而不会通过该预设韧体F2进行开机。并且,该基板管理控制器21只会对该工作韧体Fl进行更新,不会对该预设韧体F2进行更新。上述技术特征的目的在于,可永远保持该预设韧体F2的完整性,避免该预设韧体F2因为在更新过程中遭到中断而损坏,进而无法被该基板管理控制器21读取使用的问题。
[0033]在该基板管理控制器21通电启动后,预设读取该第一内存22中的该工作韧体Fl,并通过该工作韧体Fl来进行该开机程序。当需要执行该韧体更新程序时,该基板管理控制器21将该储存单元211中暂存的该韧体更新档Il刻录至该第一内存22中,以借由该韧体更新档Il对该工作韧体Fl进行更新。若该韧体更新程序执行成功,则该第二内存23不会被使用。
[0034]然而,若该工作韧体F1更新失败(如该韧体更新程序执行到一半被中断,或是刻录了错误的韧体更新文件至该第一内存22),则该基板管理控制器21在重置(reset)后,将会无法成功读取该第一内存22中的该工作韧体F1。换句话说,在更新失败后,该基板管理控制器21即无法通过该工作韧体F1进行该开机程序。
[0035]于上述情况发生时,该基板管理控制器21切换连接至备援使用的该第二内存23, 并读取该第二内存23中的该预设韧体F2以进行该开机程序。本实施例中,该预设韧体F2 没有经过任何的更新程序,因此绝对是可以被该基板管理控制器21所正常读取使用的。
[0036]由于若需通过该第二内存23进行开机,表示该第一内存22中的该工作韧体F1有问题,无法被读取。因此当该基板管理控制器21通过该预设韧体F2成功开机后,会于开机状态下再切换连接至该第一内存22,并且再次对该第一内存22中的该工作韧体F1执行该韧体更新程序。
[0037]若再次更新失败,则该基板管理控制器21可在重置后,再次通过该第二内存23中的该预设韧体F2进行开机,并且在完成开机后再次对该第一内存22中的该工作韧体F1进行更新,直到更新成功为止。
[0038]若再次更新成功,则该基板管理控制器21可在重置后,切换连接至该第一内存 22,并且通过更新完成后的该工作韧体F1进行开机。
[0039]—般来说,当该基板管理控制器21通过该第一内存22进行开机时,就只会被允许对该第一内存22进行更新;同理,当该基板管理控制器21通过该第二内存23进行开机时, 就只会被允许对该第二内存23进行更新。因此,为使该基板管理控制器21可以在通过该第二内存23进行开机后,仍能对该第一内存22进行更新,因此本发明在该控制模块20中还增设了一内存的切换机制。
[0040]参阅图4,本发明的第二具体实施例的控制模块方块图。本实施例中,该控制模块 20还包括一硬件切换器24,该基板管理控制器21通过该硬件切换器24电性连接该第一内存22,同时通过该硬件切换器24电性连接该第二内存23。具体而言,该硬件切换器24内具有电性连接该基板管理控制器21与该第一内存22的一第一读取通道241与一第一刻录通道242,并且具体电性连接该基板管理控制器21与该第二内存23的一第二读取通道243 与一第二刻录通道244。
[0041]在执行该开机程序时,该基板管理控制器21通过该第一读取通道241读取该第一内存22中的该工作韧体F1 ;于执行该韧体更新程序时,通过该第一刻录通道242将该韧体更新档II刻录至该第一内存22中以更新该工作韧体F1。值得一提的是,该第一读取通道 241与该第一刻录通道242可整合为单一条双向的传输通道,不加以限定。
[0042]本实施例中,该控制模块20可通过硬件或软件方式设置一监控机制,当发现该基板管理控制器21在重置后无法通过该工作韧体F1进行开机时,会使该基板管理控制器21 改以通过该第二读取通道243读取该第二内存23中的该预设韧体F2,以进行该开机程序。
[0043]如图4所不,该基板管理控制器21还通过一通用型输入输出(General Purpose 1/0,GP10)接口 3连接该硬件切换器24的其中一脚位(例如为切换脚位)。当该基板管理控制器21通过第二内存23中的该预设韧体F2完成该开机程序后,可通过该GP10接口 3发送一控制信号至该硬件切换器24,藉以,该硬件切换器24依据该控制信号,将原本连接至该第二内存23的该第二刻录通道244切换连接至该第一内存22。
[0044]如上所述,本发明中,该基板管理控制器21不会通过该第二刻录通道244对该第二内存23进行任何的更新动作,因此对于该基板管理控制器21与该第二内存23来说,两者之间可被视为单向连接关系。值得一提的是,该第二读取通道243与该第二刻录通道244可整合为单一条双向的传输通道,不加以限定。
[0045]承上所述,该基板管理控制器21在对该第二内存23执行该韧体更新程序时,该基板管理控制器21认为是在对该第二内存23进行更新,但是通过该硬件切换器24的该第二刻录通道244的切换,该基板管理控制器21实际上是在对该第一内存22进行更新。借此,可以克服现有技术中,该基板管理控制器21只能对用来开机的内存进行更新的限制。
[0046]通过本发明的技术方案,在该第一内存22中的韧体更新失败后,该基板管理控制器21仍可借由该第二内存23中的韧体来进行备援开机,因此,不会有韧体更新失败后就无法正常开机的问题。再者,无论该基板管理控制器21是通过该第一内存22中的韧体开机,还是通过第二内存23中的韧体开机,在执行该韧体更新程序时均可保持只对该第一内存22进行更新,如此一来,不会有该第一内存22与该第二内存23中的韧体同时更新失败,因而该基板管理控制器21无法正常开机的问题。值得一提的是,本发明的说明书中以该第一内存22与该第二内存23为限,但该控制模块20中亦可设置两组以上数量的内存,该内存的数量不以两组为限。
[0047]续请参阅图5,为本发明的第一具体实施例的韧体更新流程图。如图5所示,当该控制模块20所使用的韧体需要更新时,该基板管理控制器21首先将该储存单元211中暂存的该韧体更新档Il刻录至该第一内存22中(步骤S20),以更新该第一内存22中的该工作韧体Fl。其中,该基板管理控制器21主要是通过该硬件切换器24内的该第一刻录通道242对该第一内存22中的该工作韧体Fl进行更新。
[0048]该步骤S20后,该基板管理控制器21重置(步骤S22)。
[0049]在该基板管理控制器21重新通电启动后,判断是否可正常读取该第一内存22中的该工作韧体Fl (步骤S24)。其中,该基板管理控制器21主要是通过该硬件切换器24内的该第一读取通道241读取该第一内存22。
[0050]若该基板管理控制器21可以成功读取该第一内存22,则该基板管理控制器21直接读取该第一内存22中的该工作韧体F1,并通过该工作韧体Fl的执行以完成该开机程序(步骤S26)。于此实施例中,该工作韧体Fl已更新成功。
[0051]若于该步骤S24中,该基板管理控制器21无法成功读取该第一内存22中的该工作韧体F1,则可判断该工作韧体Fl的更新失败,因此该基板管理控制器21切换连接至该第二内存23(步骤S28)。具体而言,该基板管理控制器21是通过该硬件切换器24内的该第二读取通道243连接至该第二内存23。
[0052]该步骤S28后,该基板管理控制器21再次重置(步骤S30),并且在重新通电启动后,即可读取该第二内存23中的该预设韧体F2,并通过该预设韧体F2来进行备援开机(步骤S32)。于其他实施例中,该基板管理控制器21可不执行该步骤S30,而是在读取该第一内存22失败后,直接切换并读取该第二内存23中的该预设韧体F2,需视该基板管理控制器21本身的设定来决定,不加以限制。
[0053]当该基板管理控制器21成功通过该预设韧体F2完成开机动作后,即通过该GP1接口 3发送该控制信号至该硬件切换器24,令该基板管理控制器21改切换连接至该第一内存22 (步骤S34)。更具体而言,该硬件切换器24通过该控制信号,将原本连接至该第二内存23的该第二刻录通道244切换连接至该第一内存22。该步骤S34后,该基板管理控制器 21即返回该步骤S20,并重新执行对该工作韧体F1的该韧体更新程序,直到该工作韧体F1 更新成功为止(即,该步骤S26)。
[0054]以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
【主权项】
1.一种端点服务器的控制模块,其特征在于,包括: 一基板管理控制器,连接一机柜内的一机柜管理控制器,其中该端点服务器设置于该机柜中; 一第一内存,电性连接该基板管理控制器,储存有一工作韧体,该基板管理控制器读取该工作韧体以执行一开机程序,并执行一韧体更新程序以更新该工作韧体; 一第二内存,电性连接该基板管理控制器,储存有一预设韧体,当该工作韧体更新失败且该基板管理控制器无法通过该工作韧体开机时,读取该预设韧体以执行该开机程序; 其中,该基板管理控制器通过该预设韧体完成该开机程序后,于开机状态下切换连接至该第一内存,并重新对该工作韧体执行该韧体更新程序。2.根据权利要求1所述的端点服务器的控制模块,其特征在于,该第一内存与该第二内存为只读存储器。3.根据权利要求2所述的端点服务器的控制模块,其特征在于,该基板管理控制器具有一储存单元,暂存一韧体更新档,该韧体更新程序将该韧体更新档刻录至该第一内存中以更新该工作韧体。4.根据权利要求2所述的端点服务器的控制模块,其特征在于,还包括一硬件切换器,具有电性连接该基板管理控制器与该第一内存的一第一读取通道与一第一刻录通道,以及电性连接该基板管理控制器与该第二内存的一第二读取通道与一第二刻录通道,并且该基板管理控制器通过一 GP1接口电性连接该基板管理控制器的一切换脚位。5.根据权利要求4所述的端点服务器的控制模块,其特征在于,该基板管理控制器通过该第一读取通道读取该工作韧体以执行该开机程序;于通过该工作韧体开机时,通过该第一刻录通道刻录一韧体更新文件至该第一内存中以更新该工作韧体;于无法通过该工作韧体开机时,通过该第二读取通道读取该预设韧体以执行该开机程序。6.根据权利要求5所述的端点服务器的控制模块,其特征在于,该基板管理控制器通过该预设韧体完成该开机程序后,通过该GP1接口发送一控制指令至该硬件切换器,以将该第二刻录通道切换连接至该第一内存,并且该基板管理控制器通过该第二刻录通道将该韧体更新档刻录至该第一内存中,以对该工作韧体进行更新。7.—种如权利要求1所述的端点服务器的控制模块的韧体更新方法,其特征在于,包括: a)判断该基板管理控制器是否可读取该第一内存中的该工作韧体; b)若可正常读取该工作韧体,依据该工作韧体执行该开机程序; c)承步骤b,执行该韧体更新程序以对该工作韧体进行更新; d)若无法读取该工作韧体,依据该第二内存中的该预设韧体执行该开机程序; e)步骤d后,于开机状态下切换连接至该第一内存,并对该工作韧体执行该韧体更新程序。8.根据权利要求7所述的端点服务器的控制模块韧体更新方法,其特征在于,该步骤a之前还包括下列步骤: aOl)该基板管理控制器将一韧体更新档刻录至该第一内存中,以更新该工作内存 '及 a02)该基板管理控制器重置。9.根据权利要求7所述的端点服务器的控制模块韧体更新方法,其特征在于,该控制模块还包括一硬件切换器,具有电性连接该基板管理控制器与该第一内存的一第一读取通道与一第一刻录通道,以及电性连接该基板管理控制器与该第二内存的一第二读取通道与一第二刻录通道,并且该基板管理控制器通过一 GP1接口电性连接该基板管理控制器的一切换脚位。10.根据权利要求9所述的端点服务器的控制模块韧体更新方法,其特征在于,该步骤a中,该基板管理控制器通过该第一读取通道读取该工作韧体;该步骤c中,该基板管理控制器通过该第一刻录通道将一韧体更新档刻录至该第一内存中以更新该工作韧体;该步骤d中,该基板管理控制器通过该第二读取通道读取该预设韧体;该步骤e中,该基板管理控制器通过该GP1接口发送一控制指令至该硬件切换器,以将该第二刻录通道切换连接至该第一内存,并且该基板管理控制器通过该第二刻录通道重新更新该工作韧体。
【文档编号】G06F9/445GK105988844SQ201510092575
【公开日】2016年10月5日
【申请日】2015年3月2日
【发明人】苏钰恆, 谌文华, 徐仕杰
【申请人】营邦企业股份有限公司