电子装置以及开机方法

文档序号:6380380阅读:232来源:国知局
专利名称:电子装置以及开机方法
技术领域
本发明涉及一种芯片组,特别是涉及一种具有安全验证程序码的芯片组。
背景技术
一般而言,电子系统(例如个人计算机)会包括基本输入输出系统(BasicInputOutput System,BIOS)程序码,其储存在电子系统内的一快闪存储器内。基本输入输出系统程序码最重要的一项内容即为开机后自检程序(Power OnSelf Test, POST)和系统启动程序(booting process)。在电子系统开机(power-on)或重新启动(reset)时,电子系统 的处理器发出的第一条指令的地址会被定位到储存BIOS的快闪存储器中,以执行BIOS程序码,并藉由BIOS程序码执行开机自检和系统启动。因此,未经受权的第三者将可能藉由改写BIOS程序码甚至或是直接更换储存BIOS的快闪存储器的方式来对该电子系统进行攻击。由于一开始并没有安全认证的机制,所以使用者无法避免执行被改写或者不完整的BIOS程序码。

发明内容
本发明所提供的一电子装置以及一唤醒方法,是提供具有设置于芯片组中并且对基本输入输出系统透明的一只读存储器,用以在电子装置启动基本输入输出系统前,检查基本输入输出系统的完整性。另外,由于只读存储器对基本输入输出系统透明,因此使用者不需要更改基本输入输出系统程序码,即可将具有安全验证的功能实现在电子装置上。本发明提供一种电子装置,包括写多读寄存器、一芯片组、一只读存储器、一快闪存储器以及一中央处理器。一写多读寄存器用以储存一判断值。芯片组用以产生一处理器重置讯号。只读存储器设置于芯片组中,并且具有对应于一既定地址的一第一存储器区块,其中第一存储器区块用以储存一第一指令段。快闪存储器耦接至芯片组,并且具有对应于既定地址的一第二存储器区块,其中第二存储器区块用以储存一第二指令段。中央处理器用以根据处理器重置讯号以及判断值,判断既定地址,并由既定地址撷取第一指令段或者第二指令段。当判断值为一第一既定判断值时,中央处理器用以撷取第一指令段,当判断值为一第二既定判断值时,中央处理器用以撷取第二指令段。本发明还提供一种唤醒方法,适用于一电子装置。唤醒方法更新方法包括经由一芯片组产生一处理器重置讯号,并将处理器重置讯号传送至一中央处理器;根据处理器重置讯号,并且根据一一写多读寄存器中的一判断值,经由中央处理器判断一既定地址;当判断值为一第一既定判断值时,经由中央处理器自一只读存储器中对应于既定地址的一第一存储器区块中撷取一第一指令段,其中只读存储器设置于芯片组中;以及当判断值为一第二既定判断值时,经由中央处理器自一快闪存储器中对应于既定地址的一第二存储器区块中撷取一第二指令段。本发明所提供的电子装置以及开机方法是藉由设置于芯片组中的一只读存储器,可先于一快闪存储器而响应将中央处理器发出来的第一条指令,使得储存于该只读存储器的指令得以先于该快闪存储器中的指令而执行。另外,该只读存储器对基本输入输出系统透明,因此使用者不需要更改基本输入输出系统程序码,即可将具有特殊功能(例如安全验证功能)的只读存储器实现在电子装置上。


图IA为本发明所提供的一种电子装置的方块图;图IB为本发明所提供的另一种电子装置的方块图;图2为本发明所提供的一种存储器的示意图;图3A-3B为本发明所提供的一种开机方法的流程图;以及图4A-4B为本发明所提供的另一种开机方法的流程图。附图符号说明100 电子装置;102 一写多读寄存器;104 芯片组;105 只读存储器;106 快闪存储器;108 中央处理器;202 硬件开关;111-1 IN 周边装置;SI 判断值;A1-A5 存储器区块。
具体实施例方式以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。在计算机系统(例如使用Microsoft Windows操作系统的电子装置),其电源管理可藉由进阶组态与电源接口(Advanced Configuration and Powerlnterface, ACPI)所定义的待机状态来减少电源的消耗,在进阶组态与电源接口中定义了 S(TS5共六种状态在SO开机状态时,计算机系统处于一正常工作状态;在SI省电状态时,中央处理器CPU停止工作;在32省电状态时,中央处理器CPU关闭,不供电;S3待机状态(Sleep),仅有存储器供电,亦称为挂载至存储器(Suspend to RAM),在S3状态为一种低唤醒(Resume)时间(约5秒或更短)的待机状态,计算机系统可以很快速地恢复到正常工作状态(例如SO状态);S4休眠状态(Hibernate)亦可称为挂载至磁盘(Suspend toDisk),且为一种低耗电量、长唤醒延迟时间(例如约20秒或更长)的待机状态。S5状态则是关机状态,在关机状态S5下,计算机的软件以及装置处于关闭状态,但有些部件仍然带电,使计算机仍然可以被键盘、时钟、modem (电话唤醒)、LAN (网络唤醒)还有USB装置等所唤醒。图IA为本发明所提供的电子装置的方块图,电子装置100可从一睡眠状态唤醒(wake-up)而回复(resume)至一正常工作状态,并且也可进行暖开机以及冷开机。值得注意的是,于本发明一实施例中,所述的正常工作状态为ACPI所定义的SO状态,而所述睡眠状态包括ACPI所定义的S3-S5状态。另外,电子装置100由完全关闭电源的状态下开机(如经由按下电源按键开机)的动作为冷开机。再者,当电子装置100处于正常工作状态时,在软件(例如操作系统或基本输入输出系统)控制下进行重置的动作为暖开机。在某些实施例中,本发明所述的睡眠状态以及正常工作状态不限定于ACPI的定义。电子装置100可为任何具有运算功能的计算机装置,例如桌上型计算机、手机、笔记型计算机、PDA等等,本发明在此不加以限制。在某些实施例中,电子装置100为相容于x86系统的电子装置,本发明在
此不加以限制。电子装置100包括--写多读(write-once-and-then-read-only)寄存器
102、一芯片组104、一快闪存储器106、一中央处理器108以及至少一周边装置111-11N。一写多读寄存器102用以储存一判断值SI。在一实施例中,其中判断值SI的初 始值为第一既定判断值,该一写多读寄存器102藉由电力储存判断值SI,且仅能被改写一次,当一写多读寄存器102被改写时,判断值SI会由初始的第一既定判断值被改写为一第二既定判断值。一写多读寄存器102储存第二既定判断值,直到电力停止供应至一写多读寄存器102为止。换言之,当电子装置100从睡眠状态唤醒或进行冷开机后,一写多读寄存器102所具有的判断值SI为第一既定判断值(即初始值)。在本发明的另一实施例中,当电子装置100进行暖开机时,芯片组104会产生一外设互联重置讯号PCIRST#,以致使判断值SI回到第一既定判断值(即初始值)。接着,若一写多读寄存器102被写入,判断值SI即保持在第二既定判断值,直到电子装置100被切换至睡眠状态(例如前述ACPI定义的S3, S4及S5状态),或者关机时,即是说,当电子装置100被切换至所述睡眠状态,或者进行关机时,电力停止供应至一写多读寄存器102。当写多读寄存器102被停止电力供应后,一写多读寄存器102会丢失所储存的第二既定判断值,当写多读寄存器102再次恢复电力供应时会恢复初始的第一既定判断值。举例而言,电子装置100可包括一核心电源域(corepower domain),在核心电源域中的寄存器皆会在ACPI所定义的S3状态或更深的省电状态(如ACPI定义的S4及S5状态)下、或是在关机时被断电。因此,一写多读寄存器102可为核心电源域中的一寄存器。值得注意的是,第一既定判断值可为1,并且第二既定判断值可为O。在本发明的另一实施例中,第一既定判断值可为0,并且第二既定判断值可为I。值得注意的是,在本发明的一实施例中,一写多读寄存器102可设置于芯片组104内。在本发明的另一实施例中,一写多读寄存器102可设置于芯片组104外,本发明不限于此。芯片组104用以将中央处理器108连接至快闪存储器106以及周边装置111-11N。值得注意的是,周边装置111-11N可为绘图处理器、存储器、网络模块等,本发明在此不加以限制。在从睡眠状态唤醒或暖/冷开机的过程中,芯片组104用以产生一处理器重置讯号以及一外设互联重置讯号。举例而言,在X86计算机系统中,一处理器重置讯号为CPU_RST#,并且外设互联重置讯号为PCI_RST#,其中外设互联重置讯号PCI_RST#由芯片组104发出,用以控制各种周边装置111-11N的重置(RESET)管脚,并与处理器重置讯号CPU_RST#配合间接控制中央处理器108的重置,使整个电子装置100得以完成重置动作。本发明中致使芯片组104产生外设互联重置讯号PCIRST#的事件包括但不限于电子装置100在从睡眠状态(例如ACPI定义的S3、S4及S5状态)唤醒并回复至正常工作状态(例如ACPI定义的SO状态)的事件;通过按下电源按键触发的冷开机事件,等等。另外,芯片组104还用以根据判断值Si判断一既定地址,以及根据外设互联重置讯号执行多个平台相关事件。值得注意的是,在一实施例中,既定地址为OxFFFFFFFO,中央处理器108于电子装置100恢复电力后发出的第一条指令的地址会被定位到既定地址OxFFFFFFFO,在一实施例中,既定地址是在系统存储器映射(memory map)中的一地址。在本发明中,该既定地址既可映射至快闪存储器106中,也可以映射至只读存储器105中,详见后述。芯片组104还包括一只读存储器105。只读存储器105设置于芯片组104内,可以以一片上只读存储器(On-die ROM)实现,只读存储器105具有对应于既定地址(OxFFFFFFFO)的一第一存储器区块,其中第一存储器区块用以储存一第一指令段。该只读存储器105还用以储存电子装置100须先于基本输入输出系统程序码(Basic Input/Output SyStem,BI0S)执行的各种程序码。本发明的电子装置100的架构使得这些程序码得以在从睡眠状态唤醒或暖/冷开机的过程中先于储存于快闪存储器106中的基本输入输出系统程序码执行,其原理见后详述。在一实现安全开机的实施例中,只读存储器105可用以储存一安全验证程序码,以验证储存于快闪存储器106中的基本输入输出系统程序码。 在另一以非对称加密演算法(asymmetric cryptographicalgorithm)实现安全开机的实施例中,只读存储器105可用以储存一安全验证程序码以及一公共金钥(Public Key)。中央处理器108根据该第一指令段执行储存于只读存储器105中的安全验证程序码,以验证储存于快闪存储器106中的基本输入输出系统程序码。值得注意的是,关于第一存储器区块请参考图2的说明。快闪存储器106耦接至芯片组104,并且具有对应于既定地址(OxFFFFFFFO)的一第二存储器区块,其中第二存储器区块用以储存一第二指令段。另外,快闪存储器106还用以储存基本输入输出系统程序码。值得注意的是,关于第二存储器区块请参考图2的说明。在本发明的另一实施例中,快闪存储器106还用以储存多个平台相关事件。在本实施例中的「平台相关事件」是指芯片组104在开机过程中必须先于基本输入输出系统程序码(Basic Input/Output System,BIOS)执行,并且须先于该只读存储器105中储存的各种程序码而被执行的事件。举例而言,「平台相关事件」可包括存取设置主板及芯片组104的寄存器的平台相关数据(例如ROM SIP Data,S卩“储存在只读存储器(ROM)中的硬件初始设置数据”)。再举例而言,「平台相关事件」可包括存取快闪存储器106中的第二存储器区块还储存的平台相关数据的地址(例如ROM SIP Address)。第二指令段用以致使中央处理器108执行储存于快闪存储器106中的基本输入输出系统程序码。值得注意的是,只读存储器105与快闪存储器106的部分存储器区块具有相同的地址,请参考图2的说明。中央处理器108用以根据芯片组104所产生的处理器重置讯号,并且根据判断值SI至只读存储器105或者快闪存储器106的既定地址(OxFFFFFFFO)撷取第一指令段或者第二指令段。在一实施例中,中央处理器108是经由芯片组104撷取第一指令段或者第二指令段,并将所撷取的第一或者第二指令段回传至中央处理器108。在另一实施例中,中央处理器108内集成了存储器控制器(memory controller),其可直接访问存储器而无须经由芯片组。接着,中央处理器108用以根据第一指令段,执行储存于只读存储器105中的安全验证程序码,或者根据所接收的第二指令段执行储存于快闪存储器106中的基本输入输出系统程序码。图IB为本发明所提供的另一种电子装置的方块图。图IB相似于图1A,不同之处在于图IB中的芯片组104还包括耦接于只读存储器105的一硬件开关202,用以致能(enable)以及去能(disable)只读存储器105。举例而言,当电子装置从睡眠状态唤醒或进行暖/冷开机时,硬件开关202会去能只读存储器105。当唤醒或暖/冷开机过程中的平台相关事件执行结束后,硬件开关202才会致能只读存储器105。原因是在某些实施例中,芯片组104在开机时需要从一特定地址(例如OxFFFFFFDO)抓取平台相关数据的地址(例如ROM SIP Address)进而存取该平台相关数据(例如ROM SIP Data)。由于只读存储器105与快闪存储器106的部分存储器区块具有相同的地址,导致快闪存储器106储存这些平台相关数据的地址及其数据本身的区域与只读存储器105的某些区域重迭。因此,唤醒或暖/冷开机过程中只读存储器105会先于快闪存储器106响应对该特定地址(例如OxFFFFFFDO)的访问请求。如若只读存储器105响应了对该特定地址的访问请求,则会返回错误的平台相关数据的地址(例如ROM SIP Address)给芯片组104,就会导致芯片组104无法获取正确的平台相关数据以实现初始化。因此在本实施例中设置硬件开关202,以控制在平台相关事件执行结束后才致能只读存储器105。·举例而言,当电子装置100进行冷开机时,芯片组104首先产生一外设互联重置讯号,并且根据外设互联重置讯号,执行储存于快闪存储器106中的平台相关事件。另外,芯片组104中的硬件开关202还用以当冷开机时,首先根据外设互联重置讯号去能只读存储器105。在本发明的另一实施例中,外设互联重置讯号亦可由其他装置产生,并藉由其他装置传送至芯片组104。当平台相关事件执行结束时,硬件开关202才致能只读存储器105,并且芯片组104还用以当硬件开关202致能只读存储器105后,再产生处理器重置讯号,并将该处理器重置讯号传送至中央处理器108。接着,中央处理器108根据芯片组104所产生的处理器重置讯号,并且根据判断值SI至既定地址(OxFFFFFFFO)撷取指令。值得注意的是,一写多读寄存器102未经改写,因此判断值SI为第一既定判断值(初始值)。因此,当判断值SI为第一既定判断值时,芯片组104根据第一既定判断值至只读存储器105中的既定地址(OxFFFFFFFO)撷取第一指令段,并将第一指令段传送至中央处理器108。接着,中央处理器108根据第一指令段,执行储存于只读存储器105中的程序码,例如执行安全验证程序码以验证储存于快闪存储器106中的基本输入输出系统程序码的完整性。在本发明的以非对称加密演算法实现安全开机的实施例中,中央处理器108根据安全验证程序码以及一公共金钥(Public Key),对储存于快闪存储器106中的基本输入输出系统程序码进行一数字签名解密。详言之,安全验证程序码首先从快闪存储器106中某个区域内获得数字签名,该数字签名是厂商在生产该电子装置100时利用一私人金钥(Private Key)加密而产生的。值得注意的是,私人金钥可储存于电子装置100的外的任何地方,本发明不加以限制。而后安全验证程序码致使中央处理器108计算基本输入输出系统程序码的一哈希值(Hash Value)。接着,安全验证程序码致使中央处理器108根据储存于只读存储器105中的公共金钥对数字签名进行解密,以获得一比较值,并将所获得的比较值与该哈希值进行比对。当比较值与哈希值相同时,中央处理器108判断基本输入输出系统程序码是完整的。另外,当比较值与哈希值不相同时,中央处理器108判断基本输入输出系统程序码是不完整的。
当执行只读存储器105储存的安全验证程序码验证成功,例如前述实施例的当验证基本输入输出系统程序码是完整时,中央处理器108还用以将一写多读寄存器102的判断值SI改写为第二既定判断值,并且致使芯片组104重新产生一处理器重置讯号。另外,当该安全验证程序码验证失败,例如当验证基本输入输出系统程序码系不完整时,中央处理器108致使电子装置100进行关机。当中央处理器接收到芯片组104所重新产生的处理器重置讯号时,中央处理器108根据处理器重置讯号,由判断值SI至既定地址(OxFFFFFFFO)撷取指令。值得注意的是,一写多读寄存器102的判断值SI已被改写为第二既定判断值。因此,当判断值SI为第二既定判断值时,中央处理器108直接或经由芯片组104根据第二既定判断值至快闪存储器106中的既定地址(OxFFFFFFFO)撷取第二指令段。在一实施例中,中央处理器108根据第二指令段,执行储存于快闪存储器106中的基本输入输出系统程序码,以进行一般的开机程序。在本发明的另一实施例中,储存于快闪存储器106中的基本输入输出系统程序 码,还用以致使中央处理器108判断电子装置100是否正在进行暖开机。举例而言,当电子装置100进行暖开机时,芯片组104首先产生一处理器重置讯号,并将处理器重置讯号传送至中央处理器108。中央处理器108根据处理器重置讯号,并且根据判断值SI至既定地址(OxFFFFFFFO)撷取指令。值得注意的是,由于在电子装置100进行暖开机前,必定先经过一次冷开机。因此,一写多读寄存器102的判断值SI已被改写为第二既定判断值。当判断值SI为第二既定判断值时,中央处理器108直接或经由芯片组104根据第二既定判断值至快闪存储器106中的既定地址(OxFFFFFFFO)撷取第二指令段。接着,中央处理器108根据第二指令段,执行储存于快闪存储器106中的基本输入输出系统程序码,并且根据基本输入输出系统程序码判断电子装置100是否正在进行暖开机。在安全等级较高的开机应用中,暖开机也被要求须执行只读存储器105中的安全验证程序码,因此在本实施例中电子装置100需要将暖开机转换为冷开机。举例而言,当中央处理器108判断出电子装置100正在进行暖开机时,中央处理器108致使芯片组104产生一外设互联重置讯号,并且根据外设互联重置讯号,执行储存于快闪存储器106中的平台相关事件以重新设定主板及芯片组104的相关寄存器。另外,芯片组104中的硬件开关202还用以当暖开机时,根据外设互联重置讯号去能只读存储器105。在本发明的另一实施例中,外设互联重置讯号亦可由其他装置产生,并藉由其他装置传送至芯片组104。当平台相关事件执行结束时,硬件开关202致能只读存储器105。当硬件开关202致能只读存储器105后,芯片组104还用以产生处理器重置讯号,并将处理器重置讯号传送至中央处理器108。接着,中央处理器108根据芯片组104所产生的处理器重置讯号,并且根据判断值SI至既定地址(OxFFFFFFFO)撷取指令。值得注意的是,此时由于之前芯片组104产生的外设互联重置讯号会使得一写多读寄存器102的电力供应停止之后重新回复电力。因此,一写多读寄存器102的判断值SI为初始值的第一既定判断值。因此,当判断值SI为第一既定判断值时,芯片组104根据第一既定判断值至只读存储器105中的既定地址(OxFFFFFFFO)撷取第一指令段,并将第一指令段传送至中央处理器108。接着,中央处理器108根据第一指令段,执行储存于只读存储器105中的安全验证程序码,以验证储存于快闪存储器106中的基本输入输出系统程序码的完整性。判断基本输入输出系统程序码完整性的方法请参考上述说明,在此不再赘述。当安全验证程序码验证成功时,中央处理器108还用以将一写多读寄存器102的判断值SI写为第二既定判断值,并且致使芯片组104重新产生一处理器重置讯号。当基本输入输出系统程序码是不完整时,中央处理器108致使电子装置100进行关机。当中央处理器接收到芯片组104所重新产生的处理器重置讯号时,中央处理器108根据处理器重置讯号,并且根据判断值SI至既定地址OxFFFFFFFO撷取指令。值得注意的是,一写多读寄存器102的判断值SI已被改写为第二既定判断值。因此,当判断值SI为第二既定判断值时,芯片组104根据第二既定判断值至快闪存储器106中的既定地址OxFFFFFFFO撷取第二指令段,并将第二指令段传送至中央处理器108。接着,中央处理器108根据第二指令段,执行储存于快闪存储器106中的基本输入输出系统程序码,以进行一般的开机程序。图2为本发明所提供的存储器的示意图。图2包括电子装置100中的只读存储器105以及快闪存储器106。只读存储器105包括一第一存储器区块Al以及一第三存储器区 块A3,其中只读存储器105的第一存储器区块Al对应于既定地址(OxFFFFFFFO)用以储存第一指令段,并且第三存储器区块A3用以储存安全验证程序码。值得注意的是,在一实施例中,只读存储器105的第一存储器区块Al的地址解码范围(address decode range)是在4千兆字节(4GB)以内,并且位于4千兆字节内最高端的区域中。快闪存储器106包括一第二存储器区块A2、一第四存储器区块A4以及一第五存储器区块A5,其中只读存储器105的第二存储器区块A2对应于既定地址(OxFFFFFFFO)用以储存第二指令段,并且第四存储器区块A4和/或第五存储器区块A5用以储存基本输入输出系统程序码。在本发明的另一实施例中,第四存储器区块A4和/或第五存储器区块A5还用以储存平台相关事件的数据。例如在一实施例中,「平台相关事件」包括存取设置主板及芯片组104的寄存器的平台相关数据(例如ROM SIP Data)及存取平台相关数据的地址(例如ROMSIP Address),则平台相关数据的地址储存于第四存储器区块A4中,举例而言,平台相关数据的地址储存于第四存储器区块A4的地址(OxFFFFFFDO)中,但本发明不限于此;平台相关数据则储存于第五存储器区块A5中。值得注意的是,只读存储器105中的第一存储器区块Al以及快闪存储器106中的第二存储器区块A2具有相同的地址(OxFFFFFFFO),并且只读存储器105中的第三存储器区块A3以及快闪存储器106中的第四存储器区块A4具有相同的地址。因此,当芯片组104需要同时对只读存储器105以及快闪存储器106进行存取时,芯片组104还用以将快闪存储器106中与只读存储器105地址重复的第二存储器区块A2以及第四存储器区块A4映射(Shadow)至一影子存储器区块(Spare Area),并且自影子存储器区块对快闪存储器106的第二存储器区块A2以及第四存储器区块A4进行存取。举例而言,当中央处理器108根据第一指令段,执行储存于只读存储器105中的安全验证程序码时,中央处理器108会根据安全验证程序码对储存于快闪存储器106中的基本输入输出系统程序码进行验证。芯片组104需要同时对只读存储器105以及快闪存储器106进行存取。因此,芯片组104可将第二存储器区块A2以及第四存储器区块A4映射(Shadow)至影子存储器区块(SpareArea),以存取只读存储器105的第一以及第三存储器区块Al和A3的同时,得以存取快闪存储器106的第二以及第四存储器区块A2和A4。举例而言,影子存储器区块可为位于第五存储器区块A5的地址以下,并且与电子装置100中其他装置的地址不相冲突的存储器区块,或其它存储器装置中的存储器区块。图3A-3B为本发明所提供的一开机方法的流程图,其中开机方法适用于电子装置100的冷开机或从睡眠状态(如ACPI定义的S3-S5状态)唤醒。流程开始于步骤S300。在步骤S300中,当电子装置100进行冷开机或唤醒时,芯片组104首先产生一外设互联重置讯号。在本发明的另一实施例中,外设互联重置讯号亦可由其他装置产生,并藉由其他装置传送至芯片组104。接着,在步骤S302中,芯片组104根据外设互联重置讯号,执行储存于快闪存储器106中的多个平台相关事件。本实施例中的「平台相关事件」是指芯片组104在开机过程中必须先于基本输入输出系统程序码(Basiclnput/Output System, BIOS)执行,并且须先于该只读存储器105中储存的各种程序码而被执行的事件。举例而言,「平台相关事件」可包括存取设置主板及芯片组104的寄存器的平台相关数据(例如ROM SIP Data, 8卩“储存在只 读存储器(ROM)中硬件的初始设置数据”)及所述平台相关数据的地址。在本发明的另一实施例中,于步骤S302时,电子装置100还用以藉由芯片组104中的硬件开关202,去能只读存储器105,当然只读存储器105也可以在电子装置100上电时的初始状态即为去能。接着,在步骤S304中,芯片组104判断平台相关事件是否全部执行完成。当平台相关事件全部执行完成时,流程进行至步骤S306 ;否则,芯片组104继续判断平台相关事件是否全部执行完成。在步骤S306中,电子装置100藉由芯片组104中的硬件开关202,致能只读存储器105。接着,在步骤S308中,芯片组104产生一处理器重置讯号,并将处理器重置讯号传送至中央处理器108。接着,在步骤S310中,中央处理器108根据芯片组104所产生的处理器重置讯号,并且根据一写多读寄存器102中的一判断值SI,判断一既定地址是属于一只读存储器105或者一快闪存储器106,其中既定地址为OxFFFFFFFO。当判断值SI为一第一既定判断值时,芯片组104判断既定地址是属于一只读存储器105,并且流程进行至步骤S312。当判断值SI为一第二既定判断值时,芯片组104判断既定地址是属于一快闪存储器106,并且流程进行至步骤S318。值得注意的是,一写多读寄存器102用以藉由电力储存判断值SI,其中判断值SI的初始值为第一既定判断值,并且一写多读寄存器102仅能被写入一次,直到电力停止供应至一写多读寄存器102。在步骤S312中,中央处理器108直接或经由芯片组104自只读存储器105中对应于既定地址(OxFFFFFFFO)的一第一存储器区块Al,撷取一第一指令段,其中只读存储器105设置于芯片组104中。接着,中央处理器108根据第一指令段,开始执行储存于只读存储器105中的安全验证程序码。接着,在步骤S314中,中央处理器108执行储存于只读存储器105中的一安全验证程序码,并判断安全验证程序码是否验证成功,例如验证储存于快闪存储器106中的基本输入输出系统程序码是否完整。在本发明的一实施例中,中央处理器108根据安全验证程序码以及一公共金钥(Public Key),对储存于快闪存储器106中的基本输入输出系统程序码进行一数字签名解密,并将已解密的数字签名与该安全验证程序码致使中央处理器108所计算的基本输入输出系统程序码的一哈希值(Hash Value)进行比对,以验证基本输入输出系统程序码的完整性。当只读存储器105的安全验证程序码验证成功时,流程进行至步骤S316 ;否则,流程进行至步骤S320。详细而言,安全验证程序码首先从快闪存储器106中某个区域内获得数字签名,该数字签名是厂商在生产该电子装置100时利用一私人金钥(PrivateKey)加密而产生的。而后安全验证程序码致使中央处理器108计算基本输入输出系统程序码的一哈希值(HashValue)。接着,安全验证程序码致使中央处理器108根据储存于只读存储器105中的公共金钥对数字签名进行解密,以获得一比较值,并将所获得的比较值与该哈希值进行比对。当比较值与哈希值相同时,中央处理器108判断基本输入输出系统程序码是完整的。另外,当比较值与哈希值不相同时,中央处理器108判断基本输入输出系统程序码是不完整的。在步骤S316中,当执行只读存储器105储存的安全验证程序码验证成功,例如当验证基本输入输出系统程序码是完整时,中央处理器108将一写多读寄存器102的判断值 SI改写为第二既定判断值,并且致使芯片组104重新产生一处理器重置讯号。接着,在步骤S318中,中央处理器108直接或经由芯片组104自一快闪存储器106中对应于既定地址(OxFFFFFFFO)的第二存储器区块A2,撷取一第二指令段。在一实施例中,中央处理器108根据第二指令段,执行储存于快闪存储器106中的基本输入输出系统程序码,以进行一般的开机程序。流程结束于步骤S318。在步骤S320中,中央处理器108致使电子装置100进行关机。流程结束于步骤S320。图4A-4B为本发明所提供的另一唤醒方法的流程图,其中此唤醒方法适用于电子装置100的暖开机。流程开始于步骤S400。在步骤S400中,芯片组104首先产生一处理器重置讯号,并将处理器重置讯号传送至中央处理器108。在步骤S402中,中央处理器108根据处理器重置讯号撷取指令,其中,中央处理器108根据判断值SI至既定地址(OxFFFFFFFO)撷取指令。值得注意的是,由于在电子装置100进行暖开机前,必定先经过一次冷开机。因此,此时一写多读寄存器102的判断值SI已被改写为第二既定判断值。当判断值SI为第二既定判断值时,中央处理器108直接或经由芯片组104根据第二既定判断值至快闪存储器106中的既定地址(OxFFFFFFFO)撷取第二指令段。在步骤S403中,中央处理器108根据第二指令段,执行储存于快闪存储器106中的基本输入输出系统程序码。在步骤S404中,中央处理器108根据基本输入输出系统程序码判断电子装置100是否正在进行暖开机。当电子装置100正在进行暖开机时流程进行至步骤S406 ;否则,流程进行至步骤S4318。在步骤S406中,中央处理器108致使芯片组104产生一外设互联重置讯号。接着,流程进行至步骤S4302。值得注意的是,图4A-4B中的步骤S4302-S4320皆与图3A-3B的步骤S302-S320相同,请参考图3A-3B的说明,在此不再赘述。本发明所提供的电子装置100以及开机方法是藉由设置于芯片组104中并且对基本输入输出系统(BIOS)透明的一只读存储器105,以及将中央处理器108发出来的第一条指令映射至只读存储器105,使得储存于只读存储器105的安全验证程序码得以先于快闪存储器106中的基本输入输出系统程序码而执行,本发明一实施例中,在电子装置100启动基本输入输出系统前,藉由执行该安全验证程序码以检查基本输入输出系统的完整性。另夕卜,由于只读存储器105对基本输入输出系统透明,因此使用者不需要更改基本输入输出系统程序码,即可将具有安全验证程序码的只读存储器105实现在电子装置100上。本发明的方法或特定型态或其部份可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘片、硬盘或是任何其他机器可读取(如计算机可读取)储存媒体,亦或不限于外在形式的计算机程序产品,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。程序码也可通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,而不能以此限定本发明实施的范围,SP凡依本发明的权利要求及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或权利要求不须实现本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
权利要求
1.一种电子装置,包括 一一写多读寄存器,用以储存一判断值; 一芯片组,用以产生一处理器重置讯号; 一只读存储器,设置于上述芯片组中,并且具有对应于一既定地址的一第一存储器区块,其中上述第一存储器区块用以储存一第一指令段; 一快闪存储器,耦接至上述芯片组,并且具有对应于上述既定地址的一第二存储器区块,其中上述第二存储器区块用以储存一第二指令段;以及 一中央处理器,用以根据上述处理器重置讯号以及上述判断值,判断上述既定地址,并由上述既定地址撷取上述第一指令段或者上述第二指令段,其中 当上述判断值为一第一既定判断值时,上述中央处理器用以撷取上述第一指令段,当上述判断值为一第二既定判断值时,上述中央处理器用以撷取上述第二指令段。
2.如权利要求I所述的电子装置,其中上述中央处理器经由上述芯片组撷取上述第一指令段或者上述第二指令段。
3.如权利要求I所述的电子装置,其中上述判断值的初始值为上述第一既定判断值,上述一写多读寄存器用以藉由电力储存上述判断值,并且上述一写多读寄存器仅能被改写一次,直到电力停止供应至上述一写多读寄存器。
4.如权利要求I所述的电子装置,其中上述中央处理器还用以根据上述第一指令段,执行储存于上述只读存储器中的一安全验证程序码,以验证储存于上述快闪存储器中的一基本输入输出系统程序码。
5.如权利要求4所述的电子装置,其中上述中央处理器根据上述安全验证程序码以及一公共金钥,对储存于上述快闪存储器中的上述基本输入输出系统程序码进行一数字签名解密,以验证上述基本输入输出系统程序码的完整性。
6.如权利要求4所述的电子装置,其中上述中央处理器还用以当上述安全验证程序码验证成功时,将上述一写多读寄存器的上述判断值改写为上述第二既定判断值,并且致使上述芯片组重新产生上述处理器重置讯号。
7.如权利要求I所述的电子装置,其中上述中央处理器还用以根据上述第二指令段,执行储存于上述快闪存储器中的上述基本输入输出系统程序码。
8.如权利要求I所述的电子装置,其中上述只读存储器中的一第三存储器区块以及上述快闪存储器中的一第四存储器区块具有相同的多个地址,其中上述芯片组还用以将上述快闪存储器中的上述第二以及第四存储器区块映射至一影子存储器区块,以存取上述只读存储器的上述第一以及第三存储器区块的同时,得以存取上述快闪存储器的上述第二以及第四存储器区块。
9.如权利要求I所述的电子装置,其中上述芯片组还用以当上述电子装置从一睡眠状态唤醒或者进行一暖开机或一冷开机时,产生一外设互联重置讯号,并且上述芯片组还用以根据上述外设互联重置讯号,执行多个平台相关事件。
10.如权利要求9所述的电子装置,其中上述芯片组还包括一硬件开关,上述硬件开关还用以当上述平台相关事件执行结束时,致能上述只读存储器,并且上述芯片组还用以当上述硬件开关致能上述只读存储器后,产生上述处理器重置讯号。
11.如权利要求I所述的电子装置,其中上述既定地址为上述中央处理器于上述电子装置恢复电力后发出的第一条指令的地址。
12.—种开机方法,适用于一电子装置,上述开机方法包括 经由一芯片组产生一处理器重置讯号,并将上述处理器重置讯号传送至一中央处理器; 根据上述处理器重置讯号,并且根据一一写多读寄存器中的一判断值,经由上述中央处理器判断一既定地址; 当上述判断值为一第一既定判断值时,经由上述中央处理器自一只读存储器中对应于上述既定地址的一第一存储器区块中撷取一第一指令段,其中上述只读存储器设置于上述芯片组中;以及 当上述判断值为一第二既定判断值时,经由上述中央处理器自一快闪存储器中对应于上述既定地址的一第二存储器区块中撷取一第二指令段。
13.如权利要求12所述的开机方法,其中上述判断值的初始值为上述第一既定判断值,其中上述一写多读寄存器用以藉由电力储存上述判断值,并且上述一写多读寄存器仅能被改写一次,直到上述电力停止供应至上述一写多读寄存器。
14.如权利要求12所述的开机方法,还包括根据上述第一指令段,执行储存于上述只读存储器中的一安全验证程序码,以验证储存于上述快闪存储器中的一基本输入输出系统程序码。
15.如权利要求14所述的开机方法,其中验证储存于上述快闪存储器中的上述基本输入输出系统程序码的步骤还包括 根据上述安全验证程序码以及一公共金钥,对储存于上述快闪存储器中的上述基本输入输出系统程序码进行一数字签名解密,以验证上述基本输入输出系统程序码的完整性。
16.如权利要求14所述的开机方法,还包括当上述安全验证程序码验证成功时,将上述一写多读寄存器的上述判断值改写为上述第二既定判断值,并且重新产生上述处理器重置讯号。
17.如权利要求12所述的开机方法,还包括根据上述第二指令段,执行储存于上述快闪存储器中的上述基本输入输出系统程序码。
18.如权利要求12所述的开机方法,其中上述只读存储器中的一第三存储器区块以及上述快闪存储器中的一第四存储器区块具有相同的多个地址,上述开机方法还包括 将上述快闪存储器中的上述第二以及第四存储器区块映射至一影子存储器区块;以及 自上述影子存储器区块对上述快闪存储器的上述第二以及第四存储器区块进行存取。
19.如权利要求12所述的开机方法,还包括 当上述电子装置从一睡眠状态唤醒或者进行一暖开机或一冷开机时,产生一外设互联重置讯号;以及 根据上述外设互联重置讯号,执行多个平台相关事件。
20.如权利要求19所述的开机方法,还包括 当上述平台相关事件执行结束时,经由芯片组所包括的一硬件开关致能上述只读存储器;以及 当上述硬件开关致能上述只读存储器后,产生上述处理器重置讯号。
全文摘要
本发明提供一种电子装置以及开机方法。该电子装置,包括一一写多读寄存器、一芯片组、一只读存储器、一快闪存储器以及一中央处理器。一写多读寄存器用以储存一判断值。芯片组用以产生一处理器重置讯号。只读存储器设置于芯片组中,并且具有对应于一既定地址的一第一存储器区块用以储存一第一指令段。快闪存储器耦接至芯片组,并且具有对应于既定地址的一第二存储器区块,其中第二存储器区块用以储存一第二指令段。中央处理器用以根据处理器重置讯号以及判断值,判断上述既定地址,并由既定地址撷取第一指令段或者第二指令段。
文档编号G06F9/445GK102929674SQ201210433420
公开日2013年2月13日 申请日期2012年11月2日 优先权日2012年11月2日
发明者李凯, 王江波, 尹伟 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1