计算机装置及其开机方法与流程

文档序号:11063646阅读:602来源:国知局
计算机装置及其开机方法与制造工艺

本发明是关于一种计算机装置及其开机方法,特别是关于具有通用可延伸式韧体界面基本输入输出系统(Unified Extensible Firmware Interface Basic Input/Output System;UEFI BIOS)的计算机装置及其开机方法。



背景技术:

BIOS在计算机装置的开机过程中扮演极为关键的角色,一般来说,BIOS烧录于计算机装置的主机板上的唯读存储器(Read Only Memory;ROM)中,用以作为硬件与作业系统(Operating Sysyem;OS)之间相互沟通的桥梁,在使用者按下计算机系统的开机电源之后,BIOS会对计算机装置的硬件依序进行初始化设定和测试,举例来说,BIOS将中央处理器的芯片组、主机板及存储器依序初始化,并确定前述初始化皆正确,并且,BIOS亦协助启动作业系统来实现开机程序。

然而,BIOS可能受病毒侵害导致BIOS毁损而不完整,BIOS也可能因计算机装置在更新BIOS未完成时被关闭电源而导致BIOS毁损,倘若BIOS毁损将会导致计算机装置无法顺利运作,因此,为避免前述情形发生,习知的技术系利用多个存储器来存放多个BIOS,也就是说,除了原先用来开机的主要BIOS之外,还储存有备份BIOS,当主要BIOS毁损时,计算机系统即执行备份BIOS来顺利开机。

储存备用BIOS虽可解决BIOS毁损无法开机的问题,但使用额外的唯读存储器会导致硬件成本上升,再者,若备份BIOS也毁损时,计算机系统亦无法执行备份BIOS来完成开机程序,若增加更多的备份BIOS来确保全部备份BIOS不会同时毁损,使用多个唯读存储器将导致硬件成本大幅上升。



技术实现要素:

有鉴于此,本发明提供一种计算机装置及其开机方法。

在一实施例中,计算机装置包含存储器及处理器。存储器,包含第一位址空间与第二位址空间,第一位址空间储存唯读的备份BIOS,备份BIOS包含备份SEC程序码,第二位址空间储存主BIOS,主BIOS包含主SEC程序码。处理器电性连接于存储器,处理器自第一位址空间读取备份SEC程序码后,处理器自第二位址空间读取主SEC程序码,且处理器加总主SEC程序码以判断主SEC程序码是否错误,若主SEC程序码错误,处理器执行备份BIOS。

在一实施例中,其中备份SEC程序码包含跳跃指令,主BIOS更包含一主PEI程序码,处理器读取备份SEC程序码的跳跃指令后,处理器根据跳跃指令由第一位址空间转址至第二位址空间读取主SEC程序码及主PEI程序码,处理器加总主SEC程序码并产生一总和,且处理器加总主PEI程序码并产生另一总和,处理器比较此些总和与预设总和以判断主SEC程序码与主PEI程序码是否错误,若主SEC程序码与主PEI程序码任一者错误,处理器执行备份SEC程序码。

在一实施例中,其中备份BIOS更包含备份PEI程序码与备份DXE程序码,若主SEC程序码与主PEI程序码任一者错误,处理器执行备份SEC程序码、备份PEI程序码与备份DXE程序码。

在一实施例中,前述主BIOS为可写入,存储器接收写入保护讯号,使主BIOS根据写入保护讯号由可写入转换为唯读。

在一实施例中,计算机装置的开机方法包含处理器自存储器的第一位址空间读取备份BIOS的备份SEC程序码,且备份BIOS为唯读、处理器自存储器的第二位址空间读取主BIOS的主SEC程序码、处理器加总主SEC程序码以判断主SEC程序码是否错误、以及若主SEC程序码错误,处理器执行备份BIOS。

在一实施例中,备份SEC程序码包含跳跃指令,主BIOS更包含主PEI程序码,前述开机方法更包含,于处理器读取备份SEC程序码后,处理器根据跳跃指令自第一位址空间转址至第二位址空间,于处理器读取主SEC程序码后,处理器自第二位址空间读取主PEI程序码,于处理器加总主SEC程序码后,处理器加总主PEI程序码以判断主PEI程序码是否错误,若主SEC程序码与主PEI程序码任一者错误,处理器执行备份BIOS的备份SEC程序码。

在一实施例中,前述主BIOS为可写入,于存储器接收写入保护讯号后,主BIOS根据写入保护讯号由可写入转换为唯读。

在一实施例中,备份BIOS更包含一备份PEI程序码与一备份DXE程序码,若主SEC程序码与主PEI程序码任一者错误,处理器执行备份SEC程序码、备份PEI程序码与备份DXE程序码。

相较于现有技术,本发明的计算机装置系由一个存储器中的不同位址空间同时储存BIOS与备份BIOS,且在BIOS毁损时,计算机装置可透过执行备份BIOS而成功开机,并且,备份BIOS为唯读,如此一来,至少备份BIOS不可能因毁损而导致计算机装置无法开机,且计算机装置使用一存储器而降低硬件成本。

【附图说明】

本发明的其他的特征及功效,将于参照图式的实施方式中清楚地呈现,其中:

图1为根据本发明的计算机装置的一实施例的方块示意图。

图2为根据本发明的计算机装置的开机方法的一实施例的流程图。

【具体实施方式】

请参阅图1,为根据本发明的计算机装置的一实施例的方块示意图,揭露一计算机装置1。计算机装置1包含处理器11及存储器12。

在本实施例中,计算机装置1可为个人计算机、平板计算机或手机。本实施例的存储器12为唯读存储器(Read-only memory;ROM)而可为序列界面(Serial Peripheral Interface;SPI)快闪式存储器、可规化唯读存储器(PROM)或电可擦可规化唯读存储器(EEPROM)。处理器11可为嵌入式控制器(Embedded controller)、微处理器(Microprocessor)、I/O控制器(I/O controller)或任何具有类似功能的元件。

以存储器12的位址空间来看,存储器12被规划为至少包含两个位址空间(为方便描述,以下称之为第一位址空间与第二位址空间),第一位址空间与第二位址空间分别用以储存备份BIOS121及主BIOS120。于此,处理器11电性连接于存储器12,处理器11可执行存储器12中所储存的备份BIOS121及主BIOS120来完成计算机装置1的开机程序,主BIOS120的程序码若未毁损,处理器11执行主BIOS120来完成开机程序,倘若主BIOS120的程序码毁损,处理器11可执行备份BIOS121来完成开机程序。

于此,备份BIOS121的程序码系作为主BIOS120的程序码的备份,在计算机装置1出厂时,存储器12中所储存的主BIOS120的程序码与备份BIOS121的程序码因经出厂设定而相同,倘若计算机装置1的使用者自行变更主BIOS120的出厂设定或是使用者将出厂后的主BIOS120进行版本更新后,主BIOS120的程序码与备份BIOS121的程序码会不相同,即便主BIOS120与备份BIOS120不相同,当主BIOS120毁损时,使用者还是可依照出厂设定的备份BIOS121将计算机装置1顺利开机。

然而,为避免备份BIOS121毁损而导致当主BIOS120毁损时,处理器11无法执行备份BIOS121来完成开机程序,存储器12包含写入保护端(图未示)而具有写入保护功能,存储器12可根据写入保护端接收的讯号来设定储存于其部分位址空间中的资料为唯读。举例而言,以存储器12的位址空间位于0x000000~0xFFFFFF的范围为例,且储存于存储器12的总位址空间中的二分之一的位址空间(即,0x000000~0x7FFFFF或0x800000~0xFFFFFF)中的资料可被设定为唯读,在此的字首“0x”意指16进制的常数,故可将位址空间0x000000~0x7FFFFF规画为第一位址空间,如此一来,备份BIOS121可被设定为唯读,也就是说,计算机装置1的使用者无法藉由更新备份BIOS121或更改备份BIOS121的原设定来改变备份BIOS121,且备份BIOS121亦不因受病毒侵害而毁损。

在实作上,处理器11产生写入保护讯号来开启存储器12的写入保护功能,藉由通用型输出输入装置(General purpose I/O;GPIO)电性连接于处理器11与存储器12之间,以韧体控制处理器11来产生写入保护讯号,且处理器11将写入保护讯号传送至存储器12的写入保护端。写入保护讯号系根据存储器12的写入保护功能的逻辑触发准位来产生,举例来说,若写入保护功能为低准位触发(active low),处理器11即产生逻辑「0」的写入保护讯号。

本实施例的存储器12中可被设定为唯读的部分位址空间系以总位址空间的二分之一为例,然而本发明并不限于此,根据存储器12的规格(specification),部分位址空间亦可为四分之一、八分之一或是位址空间中任意指定的范围间。

在本实施例中,存储器12的第一位址空间与第二位址空间中更分别储存有微控制码(Microcode)1204、1214,计算机装置1的设计者可透过设计微控制码1204、1214以经由韧体来控制处理器11。

主BIOS120与备份BIOS121系属于UEFI BIOS,UEFI BIOS的开机程序可分为第一开机阶段与第二开机阶段,第一开机阶段包含安全性(Security;SEC)开机阶段与前EFI(Pre-EFI;PEI)开机阶段,第二开机阶段包含PEI开机阶段后的开机阶段,例如:驱动程序执行环境(Driver Execution Environment;DXE)开机阶段与启动装置选择(Boot Device Selection;BDS)开机阶段。

于此,主BIOS120包含主SEC程序码1201、主PEI程序码1202及主DXE程序码1203,备份BIOS121包含备份SEC程序码1211、备份PEI程序码1212及备份DXE程序码1213。处理器11可执行主SEC程序码1201或备份SEC程序码1211来完成SEC开机阶段,且处理器11可执行主PEI程序码1202或备份PEI程序码1212完成PEI开机阶段以完成第一开机阶段,处理器11可执行主DXE程序码1203或备份DXE程序码1213以执行第二开机阶段。

计算机装置1通电后,为避免主BIOS120毁损而无法完成开机程序,处理器11由存储器12的第一位址空间中储存备份SEC程序码1211的位址读取备份SEC程序码1211来开始执行SEC开机阶段。备份SEC程序码1211中包含跳跃指令(jump),在处理器11读取备份SEC程序码1211后,处理器11根据跳跃指令中位址偏移的信息由第一位址空间转址至第二位址空间来读取主SEC程序码1201并判断主SEC程序码1201是否错误,在处理器11读取备份SEC程序码1211后,处理器11亦读取主PEI程序码1202并判断主PEI程序码1202是否错误。

处理器11藉由进行总和检查(checksum)来判断主SEC程序码1201与主PEI程序码1202是否错误,也就是说,处理器11加总主SEC程序码1201与主PEI程序码1202中的韧体档案系统(Firmware file system;FFS)的字节以分别产生两总和,处理器11分别将两总和与预设总和相比较以检验主SEC程序码1201与主PEI程序码1202是否错误。

在实作上,可以韧体控制处理器11执行总和检查且控制处理器11将两总和与预设总和进行比对,预设总和可预先写入韧体中,处理器11实时将两总和与预设总和进行比对,若处理器11判断两总和与预设总和相等则表示主SEC程序码1201与主PEI程序码1202不具错误,若处理器11判断两总和中的任一者与预设总和不相等则表示主SEC程序码1201或主PEI程序码1202错误。举例来说,假设预设总和为1,处理器11分别加总主SEC程序码1201与主PEI程序码1202并分别产生第一总和与第二总和,若第一总和及第二总和为0则表示主SEC程序码1201与主PEI程序码1202错误,反之,若第一总和及第二总和为1则表示主SEC程序码1201与主PEI程序码1202不具有错误。

于此,处理器11可在产生第一总和及第二总和后判断主SEC程序码1201及主PEI程序码1202是否错误,或者处理器11亦可在产生第一总和后即判断主SEC程序码1201是否错误,此时,若主SEC程序码1201错误,处理器11可不加总主PEI程序码1202而直接进行后续开机程序。

在正常的开机程序中,处理器11读取备份SEC程序码1211与备份PEI程序码1212后,因主SEC程序码1201与主PEI程序码1202不具有错误,处理器11即执行主SEC程序码1201与主PEI程序码1202来完成第一开机阶段。并且,于处理器11执行主SEC程序码1201与主PEI程序码1202时,处理器11读取主DXE程序码1203并判断主DXE程序码1203是否错误,处理器11加总主DXE程序码1203中的韧体档案系统(Firmware file system;FFS)的字节以进行总和检查。总和检查已详述于前,于此不再赘述。于第一开机阶段完成后,若主DXE程序码1203不具错误,处理器11即执行主DXE程序码1203来进行第二开机阶段。

然而,在不正常的开机程序中,若处理器11判断主SEC程序码1201与主PEI程序码1202中的任一者错误即表示主BIOS120错误,此时,处理器11依序执行备份BIOS121的备份SEC程序码1211、备份PEI程序码1212及备份DXE程序码1213以执行第一开机阶段与第二开机阶段。倘若处理器11判断主SEC程序码1201与主PEI程序码1202不具错误而主DXE程序码1203错误,处理器11即执行备份BIOS121的备份DXE程序码1213以进行第二开机阶段,也就是说,处理器11执行主SEC程序码1201与主PEI程序码1202进行第一开机阶段,接着,处理器11执行备份DXE程序码1213以进行第二开机阶段。在实作上,可藉由在微控制码1204中设定旗标(flag)使处理器11由第二位址空间转址至第一位址空间来读取备份DXE程序码1213以执行第二开机阶段。

因此,当主SEC程序码1201、主PEI程序码1202或主DXE程序码1203三者中的任一者错误时,处理器11可执行备份BIOS121经由BDS阶段启动作业系统,以使计算机装置1成功地开机而不需要开机信息表,并且,计算机装置1可包含指示灯(图未示),指示灯的灯号可用来显示主BIOS120毁损,计算机装置1的使用者可藉由指示灯得知主BIOS120毁损而更新主BIOS120以执行正常的开机程序。

请参阅图2,为根据本发明的计算机装置的开机方法的一实施例的流程图。处理器11由存储器12的第一位址空间读取备份SEC程序码1211(步骤S01)以开始计算机装置1的开机程序后,处理器11根据备份SEC程序码1211转址至存储器12的第二位址空间读取主SEC程序码1201与主PEI程序码1202(步骤S02);在执行主BIOS120以继续开机程序之前,处理器11先判断主SEC程序码1201与主PEI程序码1202是否错误(步骤S03),若判断结果为「否」,表示主SEC程序码1201与主PEI程序码1202均不具错误,则处理器11执行主SEC程序码1201与主PEI程序码1202(步骤S04)以继续开机程序。于处理器11执行完步骤S04后,处理器11由存储器12的第二位址空间读取主DXE程序码1203(步骤S05)以判断主DXE程序码1203是否错误(步骤S06),若判断结果为「否」,则处理器11执行主DXE程序码1203(步骤S07)以继续执行开机程序而进入UFEI BIOS的BDS开机阶段以启动作业系统。

简言之,若主BIOS120未毁损而不具错误时,处理器11依序执行主SEC程序码1201、主PEI程序码1202及主DXE程序码1203来进行计算机装置1正常的开机程序。

接着,以下说明主BIOS120错误的情况,主BIOS120错误的情况有两种,其一是主SEC程序码1201与主PEI程序码错误1202,在处理器11判断主SEC程序码1201与主PEI程序码1202是否错误(步骤S03)之后,若判断结果为「是」,表示主SEC程序码1201与主PEI程序码1202中的任一者错误,处理器11则依序执行备份SEC程序码1211及备份PEI程序码1212(步骤S08)及备份DXE程序码1213(步骤S09)以进行开机程序;另一可能是主SEC程序码1201及主PEI程序码1202均不具错误而主DXE程序码1203错误,在处理器11执行步骤S04及步骤S05之后,处理器11判断主DXE程序码1203是否错误(步骤S06),若判断结果为「是」,处理器11则执行备份BIOS121的备份DXE程序码1213以继续计算机装置1的开机程序。简言之,当处理器11判断主SEC程序码1201、主PEI程序码1202与主DXE程序码1203任一者错误时,处理器11执行备份BIOS121来进行开机程序以使计算机装置1顺利运作,并且,只要主SEC程序码1201或主PEI程序码1202错误,处理器即执行备份BIOS121进行开机程序而不再判断主DXE程序码1203是否错误。

在本实施例中, 主DXE程序码1203、主PEI程序码1202、主SEC程序码1201、备份DXE程序码1213、备份PEI程序码1212及备份SEC程序码1211系由存储器12的低位址空间依序储存至高位址空间,然而本发明不以此为限,只要处理器11可根据本实施例的开机方法执行存储器12中的主BIOS120及备份BIOS121中的各程序码即可。

综上所述,根据本发明的计算机装置系由一个存储器中的不同位址空间同时储存BIOS与备份BIOS,且在BIOS毁损时,计算机装置可透过执行备份BIOS而成功开机,并且,备份BIOS为唯读,如此一来,至少备份BIOS不可能因毁损而导致计算机装置无法开机,且计算机装置使用一存储器而降低硬件成本。

上面结合附图对本发明的具体实施方式和实施例做了详细说明,但是本发明并不限于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可以在不脱离本发明构思的前提下做出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1