CN101667128B - 更新与修复基本输入输出系统的方法 - Google Patents
更新与修复基本输入输出系统的方法 Download PDFInfo
- Publication number
- CN101667128B CN101667128B CN 200810212826 CN200810212826A CN101667128B CN 101667128 B CN101667128 B CN 101667128B CN 200810212826 CN200810212826 CN 200810212826 CN 200810212826 A CN200810212826 A CN 200810212826A CN 101667128 B CN101667128 B CN 101667128B
- Authority
- CN
- China
- Prior art keywords
- bios
- mentioned
- basic input
- output system
- address
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提出一种更新基本输入输出系统方法与一种修复基本输入输出系统方法。本发明预先储存部分基本输入输出系统的程序代码至一备份存储器区块。之后,当发生基本输入输出系统更新失败时,本发明将利用在备份存储器区块中的备份程序代码,来启动计算机系统,以修复更新失败基本输入输出系统。
Description
技术领域
本发明涉及一种基本输入输出系统,特别是涉及一种更新与修复基本输入输出系统的方法。
背景技术
目前计算机系统中的基本输入输出系统(BASIC INPUT/OUTPUTSYSTEM,以下简称BIOS),由于计算机系统需要支持新的硬件或BIOS的程序代码错误等等原因,使用者时常需要更新主板上闪存所储存的BIOS。图1所示为已知技术的更新BIOS方法的步骤流程图。
请参考图1,开始更新BIOS(步骤S100),此时计算机系统便开始执行一更新程序。而此更新程序将先清除闪存中所储存的BIOS的主程序区段(main BIOS)(步骤S110)。接下来,将一新的主程序区段重新写入闪存(步骤S120)。然后,更新程序判断BIOS的开机区块(boot block)是否需要被更新(步骤S130),若开机区块需要被更新时,则清除闪存中的开机区块(步骤S140),并重新将一新的开机区块写入闪存(步骤S150),并结束更新BIOS(步骤S160)。若在步骤S130中,更新程序判断出不需更新开机区块,则结束更新BIOS(步骤S160)。
但是,在更新的过程中,有时会因为计算机断电或计算机系统重置而导致更新失败,造成计算机系统中的基本输入输出系统毁坏。此时,若基本输入输出系统毁坏的部分是属于主程序区段,而其开机区块保持完整时,使用者可以通过计算机系统外部的装置,重新更新基本输入输出系统。
若基本输入输出系统毁坏的部分是属于开机区块时,将造成基本输入输出系统完全失去功能,使得计算机系统无法开机。遭遇到上述开机区段毁坏的状况时,使用者若要补救基本输入输出系统,就必须将主板上储存基本输入输出系统的闪存更换为另一个已储存基本输入输出系统的闪存,才能使得计算机系统再次正常运作。但是上述更换闪存的做法,使得使用者必须要拆卸计算机系统的外壳,并且重新放置新的闪存于主板时,有可能将闪存的脚位插反,造成整颗存储器烧毁。
目前已有许多厂商提出避免BIOS毁坏而无法开机的方法。其中,一个方法为在主板上配置两个闪存,并且两个闪存都已储存BIOS。因此,当其中一个BIOS在更新时毁坏时,使用者可以切换主板上的跳线器(jumper),让计算机系统在开机时使用另一个BIOS。但是,此作法将使得主板成本增加,又扩大主板的面积,并且,使用者还必须拆卸计算机外壳才可以切换跳线器。另外,还有厂商在主板上多设置一自动检测电路以及两个以储存BIOS的闪存,当自动检测电路检测到其中一个BIOS毁坏时,将直接自动切换至另一个BIOS,以让计算机系统正常运作。然而,此种做法虽然能够让使用者不必再拆卸计算机外壳,但却使得主板新增检测电路与一闪存,因而增加主板成本与面积。
发明内容
本发明提供一种更新与修复基本输入输出系统的方法,用以在不增加主板成本的情况下,修复毁坏的基本输入输出系统,并且不论BIOS是否完整,计算机系统都可以正常的运作。
为解决上述问题,本发明提出一种更新BIOS方法,此BIOS储存于一非易失性存储器,而非易失性存储器包括一第一区域,其中第一区域储存BIOS的一部分程序代码。首先,读取一描述表格,描述表格储存有一地址数据,此地址数据内具有基本输入输出系统在非易失性存储器的地址,而此时地址数据是指向基本输入输出系统的一原始地址。接着,复制第一区域中的部分程序代码至一备份存储器区块。然后,变更描述表格中的地址数据,使地址数据指向备份存储器区块。接下来,清除第一区域并写入一更新程序代码至第一区域。最后,还原描述表格中的地址数据,使地址数据指向原始地址。
在本发明的一实施例中,上述部分程序代码为BIOS中的一开机区块(boot block)的程序代码。上述非易失性存储器还包括一第二区域,此第二区域用以储存BIOS的主程序区段(main BIOS)。在复制开机区块的程序代码之前,将先清除非易失性存储器中的第二区域,并写入一更新主程序区段至第二区域。
本发明还提出一种修复BIOS方法,适用于一计算机系统。首先,检测计算机系统是否在一描述模式(descriptor mode)。接着,根据描述模式,读取BIOS的一备份程序代码。最后,利用备份程序代码启动计算机系统,并修复BIOS。
在本发明的一实施例中,读取BIOS的备份程序代码的步骤包括:读取描述模式中的一描述表格;由描述表格中的一地址数据,得到备份程序代码的地址;以及,读取备份程序代码。
本发明因预先备份部分BIOS程序代码,因此,当BIOS更新失败时,计算机系统仍可以用所备份的部分BIOS程序代码来开机,并在开机后修复BIOS。
为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细说明如下。
附图说明
图1所示为已知技术的更新BIOS方法的步骤流程图。
图2所示为本发明实施例的更新BIOS方法的步骤流程图。
图3所示为目前主板中的闪存的区块配置示意图。
图4所示为本发明实施例的闪存的区块配置示意图。
图5所示为本发明实施例的修复BIOS方法的步骤流程图。
图6所示为本发明另一实施例的修复BIOS方法的步骤流程图。
具体实施方式
传统的更新BIOS方法中,当BIOS更新失败时,将会可能造成计算机系统无法开机。为了防止更新BIOS失败后无法开机的问题,本发明提出一种更新BIOS方法与修复BIOS方法,让使用者不必再担心BIOS更新失败的问题。
图2所示为本发明实施例的更新BIOS方法的步骤流程图。为了方便说明本实施例,在说明本实施例之前,先假设本实施例的更新BIOS方法应用于目前的计算机系统,BIOS例如是储存于主板中的一非易失性存储器(Non-volatile Memory)。而以目前的计算机系统为例,此非易失性存储器例如是一闪存(flash memory)。另外,本实施例假设此非易失性存储器包括有一第一区域,用以储存部分BIOS程序代码。而本实施例假设此第一区域所储存的部分BIOS程序代码为BIOS中的开机区块(boot block)。然而,本领域技术人员应当知道,上述假设并不能用以限制本发明。
请参考图2,开始更新BIOS(步骤S200),首先,计算机系统,读取一描述表格(descriptor table)(步骤S210),本实施例中的描述表格内储存有一地址数据,因此当读取此描述表格时,将得到此地址数据。此地址数据指向BIOS在非易失性存储器的地址。在本实施例中,BIOS的地址可以是BIOS的起始位置、在闪存中的最高地址或最低地址。并且,此时,此描述表格中的地址数据指向BIOS在非易失性存储器中的原始地址。
接下来,非易失性存储器中的第一区域所存的BIOS开机区块将被复制到一备份存储器区块(步骤S220)。此备份存储器区块可以是上述的非易失性存储器中的区块,也可以是主板中的其它位置的任意存储器区块。
接着,描述表格中的地址数据将变更为指向上述的备份存储器区块(步骤S230)。然后,非易失性存储器中的第一区域内的数据将被清除(步骤S240),并且,一更新程序代码将写入第一区域(步骤S250),以更新BIOS中的开机区块。其中,此更新程序代码可以是由计算机系统其它的周边装置(例如软驱、USB储存媒体与光驱等等)所得,或是预先由网络下载至计算机系统的硬盘。最后,描述表格中的地址数据将被还原,以让地址数据指向原本BIOS的原始地址(步骤S260),并结束更新BIOS(步骤S270)。
在目前的计算机技术中,Intel已提出一种描述模式(descriptor mode)的技术,此描述模式的技术主要是将主板上的闪存分割为多个区块,并让主板上的多个元件共享闪存,但只能分别存取闪存中对应的区块。以目前主板上的闪存为例,其存储器分割配置的状况如图3所示。请参考图3,闪存300中包括四个区块310~340。其中,区块310储存BIOS的开机区块,区块320储存BIOS主程序区段(main bios),区块330储存管理引擎(Management Engine,简称ME)或超高速以太网络(Gigabit Ethernet,简称GbE)的程序代码,区块340储存描述表格。区块340中的描述表格内具有多个部分(section),分别具有不同的数据。其中,区域(Region)部分内的数据用以定义闪存的每个区块,并且,用以还记录有每个区块的起始地址及长度。
以目前支持描述模式的计算机系统为例,当计算机系统启动时,计算机芯片会先读取闪存内的描述表格,并从描述表格中的区域部分得到BIOS的地址,计算机芯片例如是南桥芯片,当然将来南北桥芯片整合后的芯片也是可行的实施例,本发明并不限制于南桥芯片。在得到BIOS的地址后,中央处理器才能够开始执行BIOS的程序代码,以让计算机系统进入启动的程序。因此,当BIOS更新失败后,BIOS的开机区块或主程序区段可能已被损毁,计算机系统将无法执行开机区块,导致无法正常让计算机系统启动。
本实施例可以例如在闪存中多定义一个新的备份存储器区块。此新的备份存储器区块将被视为一备份存储器区块,并用以储存备份的开机区块。此外,此闪存的分割配置例如为图4所示。其中,区块410~440与图3中的区块310~340相同,而区块450为本实施例的备份存储器区块。本实施例在更新BIOS的过程中,当原本BIOS的开机区块410被复制到备份存储器区块450后,描述表格440中的区域部分内所记录的BIOS地址将变更为指向备份存储器区块450。而当BIOS更新完成后,描述表格440中的区域部分内所记录的BIOS地址将还原回指向原本的开机区块410。
在上述实施例中,虽然只有复制BIOS的开机区块至备份存储器区块,但是,本领域具通常知识者应当可以推知,本发明也可以是复制整个BIOS(例如是开机区块与主程序区段)至备份存储器区块。
值得一提的是,虽然在上述实施例中已经对更新BIOS方法描绘出了一个可能的型态,但熟知此技术者应知,对于应用于各种计算机系统的设计方式都不一样,因此本发明的应用当不限制于此种可能的型态。换言之,只要是利用变更描述表格中的地址数据,动态指向备份存储器区块后,才进行更新BIOS部分程序代码,就已经是符合了本发明的精神所在。
由上述实施例的更新BIOS方法可知,当BIOS更新失败时,计算机系统还是可以利用备份存储器区块中的数据来进行开机。因此,在上述实施例中,第一区域中的开机区块被清除(上述步骤S240)后,计算机系统被断电或被重置的状况发生时,BIOS的开机区块将被损毁。而以下将说明本实施例要如何修复BIOS。
图5所示为本发明实施例的修复BIOS方法的步骤流程图。请参考图5,开启计算机系统(步骤S500),接着,计算机系统的计算机芯片将先检测计算机系统是否在描述模式(步骤S510)。若检测出计算机系统在描述模式时,计算机芯片先读取闪存中的描述表格(步骤S520),由描述表格中的地址数据得到备份存储器区块的地址(步骤S530)。由上述实施例的更新BIOS步骤可知,在没有完成更新BIOS之前,描述表格中的地址数据指向备份存储器区块。
接下来,读取备份存储器区块中的备份程序代码(步骤S540),并执行此备份程序代码,以启动计算机系统(步骤S550)。由于此备份程序代码例如为BIOS的开机区块,当计算机系统执行完此开机区块后,计算机系统中的部分元件(例如软驱、USB接口与随机存取存储器)已被初始化,并已可以正常运作。接下来,计算机系统由一周边装置(例如软驱或USB储存媒体)接收更新程序代码(步骤S560),并将此更新程序代码储存于随机存取存储器(步骤S570),接着便可以将更新程序代码写入非易失性存储器(步骤S580),以完成修复BIOS(步骤S590)。上述的更新程序代码可以是整个BIOS的程序代码,也可以是只有主程序区段或开机区块的程序代码。
为了使本领域的技术人员可以通过本实施例的教导来实施本发明,以下再提出另一个更新BIOS方法的实施例。
图6所示为本发明另一实施例的更新BIOS方法的步骤流程图。在说明本实施例之前,假设本实施例沿用上述图2实施例的情境,并假设BIOS储存于一闪存,而闪存例如为图4所示。请同时参考图4与图6,开始更新BIOS(步骤S600),首先,通过计算机系统的计算机芯片读取描述表格440(步骤S610),以得到BIOS在非易失性存储器中的地址。接着,清除非易失性存储器的一第二区域(步骤S615),此第二区域例如为图4中的区块420。然后,将一更新主程序区段写入第二区域(步骤S620)。在此,更新主程序区段例如由计算机系统的周边装置(例如软驱、USB储存媒体与光驱等等)所得。
接下来,判断计算机系统是否要更新开机区块(步骤S625)。若计算机系统没有要更新开机区块时,则结束更新BIOS(步骤S630)。当计算机系统判断出要更新开机区块时,则第一区域(也就是闪存中的区块410)中所储存的BIOS开机区块将复制到一备份存储器区块450(步骤S640)。接着,描述表格中的地址数据将变更为指向上述的备份存储器区块450(步骤S650)。然后,区块410内的数据将被清除(步骤S660),并且,更新程序代码将写入区块410(步骤S670),以更新BIOS中的开机区块。最后,描述表格中的地址数据将被还原,以让地址数据指向原本BIOS的原始地址(步骤S680),并结束更新BIOS(步骤S630)。
综上所述,本发明因预先备份部分BIOS程序代码至一备份存储器区块,因此,当BIOS更新失败时,计算机系统仍可以用所备份的部分BIOS程序代码来开机,进而在计算机系统开机后修复BIOS。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,本领域的技术人员在不脱离本发明的精神和范围的前提下可作若干的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。
Claims (9)
1.一种更新基本输入输出系统方法,上述基本输入输出系统储存于非易失性存储器,其中,上述非易失性存储器包括第一区域,上述第一区域用以储存上述基本输入输出系统的部分程序代码,其特征是,上述更新基本输入输出系统方法包括:
a.读取描述表格,以得到上述描述表格中的地址数据,上述地址数据用以指向上述基本输入输出系统在上述非易失性存储器的地址,其中,上述地址数据指向上述基本输入输出系统的原始地址;
b.复制上述第一区域中的上述部分程序代码至备份存储器区块;
c.变更上述描述表格中的上述地址数据,使上述地址数据指向上述备份存储器区块;
d.清除上述第一区域;
e.写入更新程序代码至上述第一区域;以及
f.还原上述描述表格中的上述地址数据,使上述地址数据指向上述原始地址,
其中上述部分程序代码为上述基本输入输出系统中的开机区块的程序代码。
2.根据权利要求1所述的更新基本输入输出系统方法,其特征是,其中,上述非易失性存储器还包括第二区域,上述第二区域用以储存上述基本输入输出系统的主程序区段。
3.根据权利要求2所述的更新基本输入输出系统方法,其特征是,其中步骤b之前还包括:
清除上述非易失性存储器中的上述第二区域;以及
写入更新主程序区段至上述第二区域。
4.根据权利要求3所述的更新基本输入输出系统方法,其特征是,其中写入更新主程序区段至上述第二区域的步骤之后还包括:
判断是否要更新上述基本输入输出系统中的上述开机区块;以及
若判断出要更新上述基本输入输出系统中的上述开机区块,则执行步骤a~f。
5.根据权利要求1所述的更新基本输入输出系统方法,其特征是,其中步骤b包括:
复制整个上述基本输入输出系统的程序代码至上述备份存储器区块。
6.根据权利要求1所述的更新基本输入输出系统方法,其特征是,其中步骤a包括:
通过计算机芯片读取上述描述表格。
7.根据权利要求1所述的更新基本输入输出系统方法,其特征是,其中上述更新基本输入输出系统的方法应用于计算机系统,在步骤a之前,还包括:
检测上述计算机系统是否支持描述模式。
8.根据权利要求1所述的更新基本输入输出系统方法,其特征是,还包括:
由周边装置接收上述更新程序代码;以及
将上述更新程序代码储存至随机存取存储器。
9.根据权利要求1所述的更新基本输入输出系统方法,其特征是,其中上述非易失性存储器为闪存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810212826 CN101667128B (zh) | 2008-09-05 | 2008-09-05 | 更新与修复基本输入输出系统的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810212826 CN101667128B (zh) | 2008-09-05 | 2008-09-05 | 更新与修复基本输入输出系统的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101667128A CN101667128A (zh) | 2010-03-10 |
CN101667128B true CN101667128B (zh) | 2013-11-06 |
Family
ID=41803754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810212826 Active CN101667128B (zh) | 2008-09-05 | 2008-09-05 | 更新与修复基本输入输出系统的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101667128B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092705A (zh) * | 2011-10-28 | 2013-05-08 | 精拓科技股份有限公司 | 利用序列周边接口对固件复制系统与其方法 |
CN102946332B (zh) * | 2012-10-25 | 2015-09-23 | 杭州华三通信技术有限公司 | 一种逆向路径转发检查方法和设备 |
CN103853566B (zh) * | 2012-11-30 | 2017-05-03 | 鸿富锦精密工业(深圳)有限公司 | Bios更新系统及方法 |
CN103970621B (zh) * | 2013-01-31 | 2017-06-23 | 鸿富锦精密工业(深圳)有限公司 | 主板及其备份基板管理控制系统的方法 |
CN106919859B (zh) * | 2015-12-25 | 2020-09-18 | 研祥智能科技股份有限公司 | 基本输入输出系统保护方法和装置 |
CN105975335A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 程序异常恢复方法及装置 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10445088B2 (en) * | 2018-01-11 | 2019-10-15 | Macronix International Co., Ltd. | System boot code clone |
CN109784063A (zh) * | 2018-12-30 | 2019-05-21 | 联想(北京)有限公司 | 信息处理方法、装置及电子设备 |
TWI750783B (zh) * | 2020-08-27 | 2021-12-21 | 技嘉科技股份有限公司 | 基本輸入輸出系統的復原系統及方法 |
CN112199235A (zh) * | 2020-09-30 | 2021-01-08 | 联想(北京)有限公司 | 一种电子设备及启动方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1371052A (zh) * | 2001-02-20 | 2002-09-25 | 技嘉科技股份有限公司 | 在一计算机系统中的bios存储装置的自动安全回复方法 |
CN1412666A (zh) * | 2001-10-19 | 2003-04-23 | 微星科技股份有限公司 | 具有双基本输入输出系统的显示界面与具有该显示界面的电脑 |
-
2008
- 2008-09-05 CN CN 200810212826 patent/CN101667128B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1371052A (zh) * | 2001-02-20 | 2002-09-25 | 技嘉科技股份有限公司 | 在一计算机系统中的bios存储装置的自动安全回复方法 |
CN1412666A (zh) * | 2001-10-19 | 2003-04-23 | 微星科技股份有限公司 | 具有双基本输入输出系统的显示界面与具有该显示界面的电脑 |
Also Published As
Publication number | Publication date |
---|---|
CN101667128A (zh) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101667128B (zh) | 更新与修复基本输入输出系统的方法 | |
TWI460657B (zh) | 更新與修復基本輸入輸出系統的方法 | |
RU2155376C2 (ru) | Способ и устройство для инициализации системы обработки данных | |
EP2745228B1 (en) | Secure recovery apparatus and method | |
JP5162535B2 (ja) | メモリシステムを利用する方法及びメモリシステム | |
TWI471726B (zh) | 快取資料與元資料之管理 | |
US7197613B2 (en) | Nonvolatile memory | |
CN105094927B (zh) | 一种设备固件升级方法和装置 | |
TW201715395A (zh) | 基板管理控制器的回復方法及基板管理控制器 | |
US20080258758A1 (en) | Embedded system and control method therefor | |
JP2010170197A (ja) | ファームウェア管理プログラム、記憶装置およびファームウェア管理方法 | |
CN107918568B (zh) | 一种防止Linux系统重启失败的方法 | |
KR20170040734A (ko) | 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법 | |
CN110109682A (zh) | 电子计算机装置及方法 | |
CN111562934A (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
US20060130039A1 (en) | Update control program, update control method, and update control device | |
CN102122258A (zh) | 嵌入式设备文件系统受损的修复方法 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
US20110173428A1 (en) | Computer system, method for booting a computer system, and method for replacing a component | |
JP2008059007A (ja) | 半導体記憶装置 | |
JP6822203B2 (ja) | ファームウェア実行装置、ドライバ実行装置、ドライバ管理装置、ファームウェア管理装置、コンピュータ装置、方法およびプログラム | |
JP5360311B2 (ja) | ディスクアレイ装置 | |
KR100331734B1 (ko) | 제어정보 갱신가능한 디스크 구동장치 및 그 갱신방법 | |
CN112579360A (zh) | 一种基于麒麟操作系统嵌入式平台的系统备份还原方法 | |
CN115933966A (zh) | 信息处理装置和用于控制信息处理装置的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |