计算机系统及其基本输入输出系统的更新方法
技术领域
本发明是有关于一种计算机系统,且特别是有关于一种更新基本输入输出系统(Basic Input/Output System,以下简称BIOS)的方法以及使用该方法的计算机系统。
背景技术
近年来,由于个人计算机技术的迅速发展,也带动系统周边设备也随着快速的推陈出新,为了强化计算机系统的运算速度及功能,解决硬件设计的瑕疵或错误,以及病毒对于BIOS内容所造成的毁损,必须经常更新BIOS。在更新BIOS的过程中,一旦发生突发性断电的意外,将会导致整个BIOS内容毁坏,而使整个计算机系统无法顺利开机。必须将整台计算机系统送回原厂商维修,以便恢复BIOS。
虽然目前市面上有关于保护BIOS的技术相当多,例如,在单一BIOS的系统下,安排有一硬件机制去保护BIOS内的开机区块(boot block),以免上述情形发生导致毁坏此一开机区块。但此种方法有其缺陷,就是其无法对BIOS内的开机区块做更新。
另一例子则是使用双BIOS(dual BIOS)。当其中一个BIOS毁坏时,计算机系统可以使用另一个BIOS进而顺利开机。由于计算机系统已经具备两套BIOS,因此不用对BIOS的开机区块提供硬件保护。因为,纵使某一BIOS的开机区块受损坏,计算机系统依然可以由另一BIOS开机,并将受损的BIOS回复。此种方法虽然解决了上述方法的缺陷,然而,此一传统技术必须具有双BIOS的支援,其所需要的计算机系统的硬件成本较高。
因此,在避免通过全面回收硬件系统进行更换或升级所致的时间与成本大幅增加的考量下,业界对于个人计算机系统中更新BIOS的课题,需要提出更快、更即时的升级方法。换句话说,需要一种在原有的BIOS内容完全毁坏下也能自动更新恢复BIOS内容的技术。
发明内容
有鉴于此,本发明提供一种计算机系统及其BIOS的更新方法,通过基板管理控制器(Baseboard Management Controller,BMC)自动切换本地模式/旁通模式的功能,使得在原有的BIOS内容完全毁坏下也能自动更新恢复BIOS内容。
本发明提出一种计算机系统,其包括中央处理器、连接中央处理器的芯片组、连接芯片组的基板管理控制器以及连接在基板管理控制器上的BIOS单元。其中,基板管理控制器将基板管理控制器与该BIOS单元的连接模式在本地模式/旁通模式之间切换。当处于旁通模式时,BIOS单元直接与芯片组通讯。当需要更新BIOS单元时,基板管理控制器将连接模式自旁通模式切换为本地模式,此时基板管理控制器直接与BIOS单元通讯,并直接将BIOS更新文件写入BIOS单元中。
在本发明的一实施例中,其中当BIOS更新文件写入完毕后,基板管理控制器在中央处理器的下一次上电启动之前将连接模式切换为旁通模式,且中央处理器在下一次上电启动时,通过芯片组读取更新后的BIOS信息。
在本发明的一实施例中,其中BIOS单元为快闪存储器(flash memory)。
在本发明的一实施例中,其中基板管理器切换本地模式/旁通模式及与BIOS单元通讯的过程与中央处理器的工作状态相独立。
在本发明的一实施例中,其中中央处理器处于工作状态或关机状态时,基板管理控制器始终处于工作状态,当需要更新BIOS单元时,基板管理控制器将连接模式切换为本地模式,并将BIOS更新文件写入BIOS单元中。
在本发明的一实施例中,其中基板管理控制器连接一网络接口,一远程控制单元耦接至此网络接口,基板管理控制器通过此网络接口与远程控制单元通讯。其中当需要更新BIOS单元时,基板管理控制器从远程控制单元接收一BIOS更新指令,并根据此BIOS更新指令将连接模式切换为本地模式。
在本发明的一实施例中,其中基板管理控制器进一步从远程控制单元接收与BIOS更新指令对应的BIOS更新文件,并将BIOS更新文件写入BIOS单元中。
在本发明的一实施例中,其中基板管理控制器进一步从一远程存储单元接收与该BIOS更新指令对应的该BIOS更新文件,并将该BIOS更新文件写入该BIOS单元中。
在本发明的一实施例中,其中远程控制单元和远程存储单元位于同一电子装置内。
在本发明的一实施例中,其中与BIOS更新指令对应的BIOS更新文件为储存在基板管理控制器中,基板管理控制器进一步将BIOS更新文件写入BIOS单元中。
在本发明的一实施例中,其中网络接口为带外网络接口,带外网络接口直接连接至基板管理控制器。
在本发明的一实施例中,其中网络接口为带内网络接口,带内网络接口连接至芯片组,基板管理控制器通过边带(sideband)的方式与远程控制单元通讯。
在本发明的一实施例中,其中基板管理控制器检测BIOS单元中BIOS文件的一目前版本信息,并与一标准版本信息进行比对,当目前版本信息与标准版本信息不相符时,基板管理控制器将连接模式切换为本地模式。
在本发明的一实施例中,其中基板管理控制器连接一网络接口,一远程存储单元耦接至此网络接口,当BIOS单元中BIOS文件的目前版本信息与标准版本信息不相符时,基板管理控制器向远程存储单元索取与标准版本信息对应的BIOS更新文件,并将BIOS更新文件写入BIOS单元。
在本发明的一实施例中,其中标准版本信息位于远程存储单元内,基板管理控制器定时地从远程存储单元获取标准版本信息,并与BIOS单元中的BIOS文件的目前版本信息进行比对。
在本发明的一实施例中,其中网络接口为带外网络接口,带外网络接口直接连接至基板管理控制器。
在本发明的一实施例中,其中网络接口为带内网络接口,带内网络接口连接至芯片组,基板管理控制器通过边带(sideband)的方式与远程存储单元通讯。
在本发明的一实施例中,其中基板管理控制器存储有与标准版本信息对应的BIOS更新文件,基板管理控制器进一步将BIOS更新文件写入BIOS单元。
在本发明的一实施例中,其中基板管理控制器在旁通模式下,通过芯片组与BIOS单元通讯并检测BIOS单元中BIOS文件的目前版本信息。
在本发明的一实施例中,其中基板管理控制器在本地模式下,与BIOS单元直接通讯获取BIOS单元中BIOS文件的目前版本信息。
在本发明的一实施例中,其中计算机系统更包括一键盘控制器规格(KeyboardController Style,KCS)接口。键盘控制器规格单元耦接至键盘控制器规格接口,基板管理控制器通过键盘控制器规格接口与键盘控制器规格单元通讯。其中,基板管理控制器从键盘控制器规格单元接收一BIOS更新指令,并根据此BIOS更新指令将连接模式切换为本地模式以进行更新。
在本发明的一实施例中,其中基板管理控制器连接一智能平台管理总线(Intelligent Platform Management Bus,IPMB)接口,一控制单元耦接至智能平台管理总线接口,基板管理控制器通过智能平台管理总线接口与控制单元通讯。
在本发明的一实施例中,其中基板管理控制器具有一接口单元,基板管理控制器切换接口单元为本地模式或旁通模式,藉以改变基板管理控制器与BIOS单元的连接模式。
在本发明的一实施例中,其中芯片组为平台控制集线器(Platform ControllerHub,PCH)单元,基板管理控制器的接口单元为串行周边接口(Serial PeripheralInterface,SPI)单元,BIOS单元和平台控制集线器单元分别通过一串行周边接口线路连接至接口单元。当接口单元处于旁通模式时,BIOS单元直接与平台控制集线器单元通讯。
在本发明的一实施例中,其中当基板管理控制器与BIOS单元的连接模式处于旁通模式时,基板管理控制器通过芯片组与BIOS单元通讯。
本发明另提出一种计算机系统的BIOS更新方法,包括下列步骤。先提供一计算机系统,此计算机系统包括中央处理器、连接中央处理器的芯片组、连接芯片组的基板管理控制器以及连接在基板管理控制器上的BIOS单元。通过基板管理控制器将与BIOS单元的连接模式切换为本地模式。并且通过基板管理控制器直接将BIOS更新文件写入BIOS单元中,其中基板管理控制器直接与BIOS单元通讯。在中央处理器下次上电启动前,通过基板管理控制器将与BIOS单元的连接模式切换为旁通模式,其中BIOS单元直接与芯片组通讯。当中央处理器上电启动时,则通过芯片组读取更新后的BIOS信息,藉以完成BIOS单元的更新。
基于上述,本发明所提供的计算机系统及其BIOS的更新方法,通过基板管理控制器自动切换本地模式/旁通模式的功能,使得在本地模式中,基板管理控制器可直接访问BIOS单元,并且利用在旁通模式中,中央处理器能直接读取BIOS单元中更新后的BIOS信息来实现自动更新以及恢复BIOS内容。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A是依照本发明一实施例所绘示的一种计算机系统的方块图。
图1B是依照本发明一实施例所绘示的处于本地模式下中央处理器的数据流的示意图。
图2是依照本发明一实施例所绘示的计算机系统的BIOS更新方法的流程图。
图3是依照本发明另一实施例所绘示的一种计算机系统的方块图。
图4是依照本发明另一实施例所绘示的计算机系统的BIOS更新方法的流程图
图5是依照本发明又一实施例所绘示的一种计算机系统的方块图。
图6是依照本发明又一实施例所绘示的计算机系统的BIOS更新方法的流程图。
【主要元件符号说明】
100、300、500:计算机系统
110:中央处理器
120:芯片组
130:基板管理控制器
132:接口单元
140:BIOS单元
350:网络
360:远程控制单元
570:电子装置
580:远程存储单元
S210~S240:一实施例的BIOS更新方法的各步骤
S410~S460:另一实施例的BIOS更新方法的各步骤
S610~S660:又一实施例的BIOS更新方法的各步骤
具体实施方式
图1A是依照本发明一实施例所绘示的一种计算机系统的方块图。请参照图1A,计算机系统100包括中央处理器(Central Processing Unit,CPU)110、芯片组(chipset)120、基板管理控制器(Baseboard Management Controller,BMC)130以及BIOS单元140。其中,芯片组120分别连接中央处理器110以及基板管理控制器130。BIOS单元140则连接在基板管理控制器130上。BIOS单元140例如是储存于一非易失性存储器(non-volatile memory),以目前的计算机系统而言,此非易失性存储器例如是一快闪存储器(flash memory)。
特别的是,本发明的基板管理控制器130还可具备一接口单元132,基板管理控制器130与BIOS单元140之间的连接模式可分为本地(local)模式或旁通(bypass)模式。基板管理控制器130通过切换接口单元132进而在本地模式或旁通模式之间做转换。以下分别介绍本地模式与旁通模式的差异。
当接口单元132处于旁通模式时,代表BIOS单元140可直接与芯片组120进行通讯。举例来说,假设芯片组120为平台控制集线器(Platform Controller Hub,PCH)单元,且基板管理控制器130的接口单元132为串行周边接口(SerialPeripheral Interface,SPI)单元,BIOS单元140和PCH单元分别通过一SPI线路连接至接口单元132。意即,当接口单元132处于旁通模式时,BIOS单元140直接与PCH单元通讯。也就是说,计算机系统100上电时,中央处理器110通过PCH单元的SPI单元,直接读取BIOS单元140内容例如是BIOS固件程式码,而进入启动状态(如图1B的数据流101所示)。
当需要更新BIOS单元140时,基板管理控制器130切换接口单元132,将连接模式自旁通模式切换为本地模式,此时基板管理控制器130直接与BIOS单元140通讯,并可直接将BIOS更新文件例如是BIOS映像文件(image file)按照符合规定的格式写入BIOS单元140中。需注意的是,当处于旁通模式时,基板管理控制器130若仍想要与BIOS单元140进行通讯,则只须通过芯片组120为桥梁及可检视BIOS单元140,并不需要切换回本地模式。
在了解上述本地模式与旁通模式的差异后,图2是依照本发明一实施例所绘示的计算机系统的BIOS更新方法的流程图。本实施例的方法适用于图1A的计算机系统100,以下即搭配图1A来对本实施例的方法进行详细说明。
首先如步骤S210所示,先提供一计算机系统,本实施例的计算机系统即为图1A所示的计算机系统100,在此不予赘述。通过计算机系统100中的基板管理控制器130将与BIOS单元140的连接模式切换为本地模式。
接着在步骤S220中,通过基板管理控制器130直接将BIOS更新文件写入BIOS单元140中,其中,处于本地模式的基板管理控制器130可直接与BIOS单元140进行通讯。在此需说明的是,基板管理器130切换接口单元132为本地模式或旁通模式以及与BIOS单元140通讯的过程与中央处理器110的工作状态相独立。意即,不论中央处理器110处于上电的工作状态或关机状态下,基板管理控制器130始终处于工作状态,当需要更新BIOS单元140时,基板管理控制器130便将BIOS更新文件写入BIOS单元140。
接下来如步骤S230所示,在中央处理器110下次上电启动前,通过基板管理控制器130将与BIOS单元140的连接模式切换回旁通模式,此时,BIOS单元140可直接与芯片组120进行通讯。也就是说,本发明的旁通模式与本地模式的切换时机点可由使用者依实际情况做选择,当BIOS更新文件写入BIOS单元140后,只要在下一次中央处理器110上电启动或重新启动前,将连接模式切换为旁通模式即可。
最后如步骤S240所示,当中央处理器110上电启动时,通过芯片组120读取更新后的BIOS信息,便可完成BIOS单元140的更新。
简单的说,上述的计算机系统及其BIOS的更新方法,通过基板管理控制器自动切换本地模式/旁通模式的功能,使得在本地模式中,基板管理控制器可直接访问BIOS单元,并且利用在旁通模式中,中央处理器能直接读取BIOS单元中更新后的BIOS信息来实现自动更新以及恢复BIOS内容。
为了进一步说明计算机系统如何得知必须更新BIOS单元以及如何接收BIOS更新文件,以下另举一实施例来对此进行详细说明。
图3是依照本发明另一实施例所绘示的一种计算机系统的方块图。请参照图3,本实施例的计算机系统300与图1A所示的计算机系统100不同的地方在于:基板管理控制器130还包括一网络接口134,经由网络接口134可连接至一网络350,通过网络350而可与一远程控制单元360进行通讯。其中,网络接口134可分为带外(outband)网络接口或带内(inband)网络接口。若网络接口134为带外网络接口,则直接连接至基板管理控制器130;若网络接口134为带内网络接口,则连接至芯片组120,基板管理控制器130通过边带(sideband)的方式与远程控制单元360进行通讯。图4是依照本发明另一实施例所绘示的计算机系统的BIOS更新方法的流程图,以下请同时参照图3与图4。
首先,提供一计算机系统,此计算机系统例如是图3的计算机系统300(步骤S410)。接着,通过远程控制单元360产生一BIOS更新指令,远程控制单元360与基板管理控制器130通讯连接并将BIOS更新指令发送至基板管理控制器130(步骤S420)。举例来说,当一使用者判断计算机系统300需更新BIOS时,使用者可操控远程控制单元360发送一BIOS更新指令给基板管理控制器130。而基板管理控制器130通过网络350以及网络接口134接收到BIOS更新指令后,便可根据此BIOS更新指令将连接模式切换为本地模式(步骤S430)。其中网络350可以是任何形式的网络,例如全球信息网(Web)、文件传输协议(File Transfer Protocol,FTP)网络、小型文件传输(Trivial File Transfer Protocol,TFTP)网络、SSH(SecureShell)网络等。
接下来,切换为本地模式的基板管理控制器130便可直接与BIOS单元140进行通讯,此时通过基板管理控制器130直接将BIOS更新文件写入BIOS单元140中(步骤S440)。在一实施例中,基板管理控制器可进一步从远程控制单元360接收与BIOS更新指令相对应的BIOS更新文件;在另一实施例中,与BIOS更新指令相对应的BIOS更新文件为储存在基板管理控制器130中。意即,BIOS更新指令与BIOS更新文件可同时接收后存放于基板管理控制器130中,亦可于不同时间点分别接收BIOS更新指令以及BIOS更新文件。
更新BIOS单元140之后,在中央处理器110下次上电启动前,基板管理控制器130将与BIOS单元140的连接模式自本地模式切换回旁通模式,切换回旁通模式之后的BIOS单元140便可直接与芯片组120进行通讯(步骤S450)。最后,当中央处理器110上电启动时,通过芯片组120读取更新后的BIOS信息,便可完成BIOS单元140的更新(步骤S460)。
图3与图4所示的实施例说明了计算机系统300可通过远程控制单元360所发送的BIOS更新指令得知何时需更新BIOS单元140,亦可通过远程控制单元360进一步接收BIOS更新文件。本发明的通过远程控制单元360控制更新BIOS的方式可称为推送(push)更新模式。
再举一实施例作为范例说明。图5是依照本发明又一实施例所绘示的一种计算机系统的方块图。请参照图5,本实施例的计算机系统500与图3所示的计算机系统300不同的地方在于:远程控制单元360是位于一电子装置570内,且电子装置570更包括一远程存储单元580。远程存储单元580例如是任意型式的固定式或可移动式随机存取存储器(Random Access Memory,RAM)、唯读存储器(Read-OnlyMemory,ROM)、快闪存储器(flash memory)、硬碟等等。图6是依照本发明又一实施例所绘示的计算机系统的BIOS更新方法的流程图。以下请同时参照图5与图6。
首先,提供一计算机系统,此计算机系统例如是图5的计算机系统500(步骤S610)。接着,基板管理控制器130判断BIOS单元140中BIOS文件的一目前版本信息是否与一标准版本信息相符(步骤S620)。其中标准版本信息储存于远程存储单元580内,基板管理控制器130定时地通过网络350从远程存储单元580获取标准版本信息,并与BIOS单元中的BIOS文件的目前版本信息进行比对。
若判断目前版本信息与标准版本信息不相符时,基板管理控制器130则将连接模式切换为本地模式(步骤S630)。由于标准版本信息会定时更新,其纪录了BIOS文件的最新版本信息,因此当目前版本信息与标准版本信息不相符时,代表须更新本地端计算机系统500内的BIOS单元140。因此,基板管理控制器130向远程存储单元580索取与标准版本信息相对应的BIOS更新文件,并将BIOS更新文件写入BIOS单元140(步骤S640)。在另一实施例中,与标准版本信息相对应的BIOS更新文件亦可与标准版本信息同时接收后存放于基板管理控制器130中。
更新BIOS单元140之后,在中央处理器110下次上电启动前,基板管理控制器130将与BIOS单元140的连接模式自本地模式切换回旁通模式(步骤S650)。最后,当中央处理器110上电启动时,通过芯片组120读取更新后的BIOS信息,便可完成BIOS单元140的更新(步骤S660)。
图5与图6所示的实施例说明了计算机系统500可通过基板管理控制器130主动且定时地检测BIOS单元140中的目前版本信息与标准版本信息是否相符。若判断两者不相符时,则进一步利用与标准版本信息相对应的BIOS更新文件进行更新。本发明的通过基板管理控制器130主动检测是否须更新BIOS的方式可称为拖曳(drag)更新模式。
本发明另外提供两种不同的远程连接方式。在一实施例中,计算机系统还可包括一键盘控制器规格(Keyboard Controller Style,KCS)接口。键盘控制器规格单元耦接至键盘控制器规格接口,基板管理控制器通过键盘控制器规格接口与键盘控制器规格单元通讯。其中,基板管理控制器从键盘控制器规格单元接收一BIOS更新指令,并根据此BIOS更新指令将连接模式切换为本地模式以进行更新。在另一实施例中,基板管理控制器连接一智能平台管理总线(Intelligent PlatformManagement Bus,IPMB)接口,一控制单元耦接至智能平台管理总线接口,基板管理控制器通过智能平台管理总线接口与控制单元通讯。
综上所述,本发明通过基板管理控制器自动切换本地模式/旁通模式的功能,使得在本地模式中,基板管理控制器可直接访问BIOS单元并且写入BIOS更新文件,即使BIOS单元已经被损坏,仍可写入新的BIOS内容;而在旁通模式中,中央处理器能直接读取BIOS单元中更新后的BIOS内容,来实现自动更新以及恢复BIOS内容的技术。据此,BIOS单元并不需要进行硬件上的更换或升级,BIOS的更新工作皆由基板管理控制器完成即可。此外,本发明在切换本地模式/旁通模式的过程中,与中央处理器的运作状态无关,仅需在BIOS单元完成更新后,重新启动计算机系统让更新后的BIOS内容生效即可,降低影响计算机系统运行的时间。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当以权利要求所界定的为准。