数据处理装置与控制 非挥发性存储设备重写的方法 本发明涉及一种数据处理装置,例如个人计算机,其具有非挥发性存储设备,并且涉及一种结合在数据处理装置中的非挥发性存储设备重写的控制方法。
近年来,已发展各种便携,电池驱动的笔记本式个人计算机。每个笔记本式个人计算机含有一种诸如闪速存储器的电可编程非挥发性存储器件。非挥发性存储器件存储BIOS(基本输入/输出系统)。它可以是电可编程的,借此BIOS很容易地更新到一种新版本。
通常需要使用两种对象来更新个人计算机中的BIOS。第一种对象是新版本BIOS映象文件(image file)。第二种对象是存储BIOS更新系统程序的软盘(FD)。软盘插入到个人计算机中。然后计算机接通电源。从而计算机被从软盘启动并且开始执行BIOS更新系统程序。BIOS更新系统程序以新版本BIOS映象文件的格式重写非挥发性存储器件。由此,BIOS更新成新版本。
近来,已提议从操作一种操作系统(OS)的应用软件来更新BIOS。在该BIOS更新方法中,不需要从软盘启动系统。因此,即使在不含有软盘驱动(FDD)的所谓“无FDD个人计算机”中,可以容易地更新BIOS。重写非挥发性存储器以更新BIOS的程序根据个人计算机的平台而改变。但是公开了大多数的重写程序。因此,只有当他或她准备了执行非挥发性存储器重写程序的应用软件时,任何人可以容易地重写非挥发性存储器。
个人可以恶意地准备软件(即病毒)来破坏BIOS,并且可以通过诸如因特网的网络把它分布到个人计算机上。在这种情况中,执行该软件的任何个人计算机上的BIOS将被破坏。
本发明的目的在于提供一种数据处理装置,其中保护非挥发性存储设备使其内容不受错误重写,因此具有高保密等级。
本发明的另一种目的在于提供一种结合在数据处理装置中的非挥发性存储设备重写的控制方法。
为达到上述目的,根据本发明的数据处理装置包括:非挥发性存储设备;配置以重写非挥发性存储设备内容地控制器;用于访问控制器以重写非挥发性存储设备内容的装置;用于确定访问装置所做的访问是否正确的装置;当确定装置确定访问装置所做的访问是不正确时,用于禁止控制器重写非挥发性存储设备内容的装置。
在数据处理装置中,访问装置可以访问控制器以重写非挥发性存储设备的内容。当访问装置做了所述的访问时,确定该访问是否正确。如果该访问是不正确的,立即禁止重写非挥发性存储设备的内容。因此,可以增加该装置的保密等级。
数据处理装置还优选包括CPU;和当访问装置访问控制器时,配置以向CPU产生中断信号的中断信号发生器。当CPU接收中断信号时,确定装置被CPU激活。
数据处理装置还优选包括禁止中断信号屏蔽的信号屏蔽禁止电路。
为防止非挥发性存储设备内容的意外重写,控制器应具有写保护功能是合乎需要的,用于保护非挥发性存储设备的内容不受意外重写。然后,当软件通过访问控制器解除控制器的写保护功能时,中断信号发生器产生中断信号。如果访问是错误的,写保护功能返回到激活状态,从而禁止了非挥发性存储设备内容的错误重写。
本发明的另外目的和优点将陈述在下面的描述中,由该描述部分目标和优点将是明显的,或者可以通过本发明的实践而学到。凭借下文特别指出的手段和结合图,可以实现和得到本发明的目的和优点。
结合和组成说明书一部分的附图,示出了目前本发明的优选实施方案,并且连同下面给出的概述和下面给出的优选实施方案的详细描述,用来解释本发明的原理。
图1是示出根据本发明实施方案的计算机系统的框图;
图2是流程图,解释了一种结合在图1系统中的闪速ROM重写方法;
图3是流程图,解释了结合在图1系统中的闪速ROM重写的另一种方法;
图4是流程图,仍然示出了结合在图1系统中的闪速ROM重写的另一种方法;
图5是流程图,解释了怎样在图1系统中执行POST过程;
图6是流程图,示出了怎样激活提供在图1系统中的中断处理程序;以及
图7是用于解释怎样依照它的功能扩展中断处理程序的图表。
根据附图,将描述本发明的一种实施方案。
图1示出了其为本发明一种实施方案的计算机系统。该系统是可被电池驱动的笔记本式个人计算机。该计算机包括处理器总线1,PCI总线2,ISA总线3,CPU11,主PCI桥12,主存储器13,显示控制器14,PCI-ISA桥15,I/O控制器16,通信装置17,闪速(Flash)BIOS-ROM18和EEPROM19。
CPU(中央处理器)11控制计算机的一些其它元件。它执行装载在主存储器13中的操作系统(OS),ROM重写程序等。ROM重写程序是设计以重写闪速BIOS-ROM18的软件。它是在CPU11执行OS时可以工作的应用软件。在执行OS时,CPU11可执行ROM重写程序以更新存储在闪速BIOS-ROM18中的BIOS。
CPU11是支持系统管理中断(SMI)的处理器。换言之,CPU11可以称作“系统管理模式,SMM”的操作模式操作,也可以普通操作模式操作以执行OS和应用。
当CPU11接收到系统管理中断(SMI)信号时,CPU11的操作方式从普通模式(即实模式,保护模式或虚拟86模式)转换为SMM。换言之,通过产生SMI信号到CPU11,计算机系统中断正常程序执行并且调用SMM。以SMM,CPU11执行存储在提供在计算机中的SMRAM131中的系统管理程序。作为SMM-BIOS使用的系统管理程序已从闪速BIOS-ROM18拷贝到SMRAM131中。SMRAM131存储中断处理程序,其为设计以阻止错误ROM重写的系统管理程序。当CPU11的操作模式转换为SMM时,中断处理程序是CPU11执行的中断程序。
如图1所示,PCI-ISA桥15包括闪速BIOS-ROM18重写不可缺少的硬件逻辑。当该硬件逻辑被软件访问时,系统管理中断(SMI)被供应给CPU11。当接收到SMI时,CPU11停止执行软件。调用存储在SMRAM131中的中断处理程序。注意到中断处理程序被保护并且不能被重写。
主PCI桥12是连接相互作用的处理机总线1和PCI总线2的桥器件。桥12包括一种用于控制访问主存储器13的存储器控制功能。显示控制器14控制LCD或作为计算机显示器使用的外部CRT。
PCI-ISA桥15是连接PCI总线2和ISA总线3并且可以对PCI总线2起总线主控器作用的桥器件。桥15包括操作以重写闪速BIOS-ROM18的电路和产生SMI信号的电路。
如图1所示,PCI-ISA桥15包括闪速ROM控制器151,控制寄存器152,SMI发生器153,屏蔽寄存器154,屏蔽禁止电路155。闪速ROM控制器151依照控制寄存器152中设置的各种命令控制闪速BIOS-ROM18。从而数据被写进、读出、擦除于闪速BIOS-ROM18。为重写闪速BIOS-ROM18的内容,该内容被擦除,必需的程序映象被写进闪速BIOS-ROM18中。
控制寄存器152存储写保护位WP。写保护位WP允许或禁止闪速ROM控制器151可以执行的闪速BIOS-ROM18的擦除/写控制。通常位WP设为“0”,保护闪速ROM控制器151免于在闪速BIOS-ROM18中擦掉数据,或写进数据。依照ROM重写程序执行的闪速BIOS-ROM18的重写过程,包括通过改变写保护位WP到“1”,解除闪速ROM控制器151写保护。
当写保护位WP重写为“1”时,SMI发生器153产生SMI信号。SMI发生器153连接到控制寄存器152上,并当位WP从“0”变化到“1”产生SMI信号时被触发。SMI信号被提供给CPU11。
类似控制寄存器152,屏蔽寄存器154是一种I/O寄存器,CPU11可以从其中读取数据并且可以把数据写进其中。提供屏蔽禁止电路155以禁止SMI信号的屏蔽。一旦电路155被软件激活,用于禁止SMI信号产生的屏蔽数据不再被写进屏蔽发生器154,从而禁止了SMI信号的屏蔽。
I/O控制器16包含一种总线主控器IDE控制器,其控制结合在计算机中并作为IDE器件使用的HDD161。总线主控器IDE控制器可以起总线主控器的作用,以在HDD161和主存储器13之间传输数据。
设计通信装置17以通过网络完成该计算机和其它计算机之间的通信。通信装置17可以是MODEM,LAN卡等。装置17可用来更新BIOS。更确切地说,装置17可以从提供在网络上的WEB服务器等下载新版本的BIOS映象文件和ROM重写程序。下载的BIOS映象文件和ROM重写程序存储在HDD161中。
如上所述,提供闪速BIOS-ROM18以存储系统BIOS。闪速存储器(被称为“闪速EEPROM”)正是一种电可编程非挥发性存储器。因此,在闪速BIOS-ROM18中,通过使用软件可以重写BIOS。系统BIOS是POST(加电自检)例行程序,用于控制各种I/O器件的设备驱动程序,用于设置系统环境的BIOS设置程序等的系统化组合。系统BIOS被用来控制提供在计算机中的硬件对象。闪速BIOS-ROM18也包含上述的SMM-BIOS。
EEPROM19存储诸如安全管理所需的口令的信息。在闪速ROM控制器151的控制下,可以把上述信息写进EEPROM19中,从其中读出和在其中擦除。也就是说,控制器151起控制访问闪速BIOS-ROM18和EEPROM19的存储器控制器的作用。
(用于闪速ROM重写的安全功能)
关于闪速ROM重写,根据本发明的计算机具有下面五种安全功能:
(1)禁止闪速BIOS-ROM18的任何不适当的重写。
(2)禁止闪速BIOS-ROM18重写过程中产生的中断信号(SMI)的屏蔽。
(3)禁止中断处理程序的破坏。
(4)通过禁止闪速BIOS-ROM18的重写,阻止任何人恶意地使中断处理程序无效。
(5)允许闪速BIOS-ROM18的适当重写(闪速ROM的重写,#1)
根据图2的流程图,将描述闪速ROM重写的第一种程序。
CPU11执行ROM重写程序,其执行硬件访问(I/O访问),借此在控制寄存器152中写保护位WP重写为“1”。因此解除闪速ROM控制器151的写包含功能(步骤S101)。当执行硬件访问时,SMI发生器153产生SMI信号,该信号提供给CPU11。当接收到SMI信号时,CPU11保存关于SMRAM131中的ROM重写程序的环境。然后,CPU11的操作模式从普通模式转换为SMM。从而中断ROM重写程序。现在开始SMM,或系统管理模式,CPU11开始执行中断处理程序。
通过执行中断处理程序,CPU11执行程序确认,用于检验中断的ROM重写程序(步骤S201)。然后,CPU11确定其通过执行ROM重写程序所做的硬件访问是否正确(步骤S202)。更加具体地,CPU11执行下面两种操作的任一种:
(1)它检查中断的程序,即ROM重写程序的进程名等,以确定该程序是否是从计算机的生产商分发的。如果中断的ROM重写程序是从计算机的生产商分发的,就确定中断的ROM重写程序是正确的,也就是说,其通过执行ROM重写程序所做的硬件访问是正确的。
(2)它确定和重写程序没有关系的特殊程序在SMI信号产生之前是否被执行。在硬件访问闪速ROM控制器151之前,通过嵌入在正确ROM重写程序中的代码执行特殊程序。代码是不公开的,并且只为正确ROM重写程序准备。如果中断的ROM重写程序已执行了特殊程序,就确定中断的ROM重写程序是正确的,也就是说,其通过执行ROM重写程序所做的硬件访问是正确的。
如果步骤S202为是,也就是说,如果通过执行ROM重写程序所做的硬件访问是正确的,那么中断处理程序执行恢复(resume,RSM)命令。从而CPU11的操作模式从SMM返回到普通模式。由此,CPU11开始再次执行中断的ROM重写程序。
通过执行ROM重写程序,CPU11输出命令到闪速ROM控制器151。根据该命令,控制器151重写闪速BIOS-ROM18的内容(步骤S102)。(更确切地说,控制器151擦除闪速BIOS-ROM18中的BIOS并且把新BIOS映象写进闪速BIOS-ROM18。)从而按需要更新闪速BIOS-ROM18的内容。
如果步骤S202被确定通过执行ROM重写程序所做的硬件访问是不正确的。在这种情况中,中断处理程序访问控制寄存器152并把写保护位WP重写为“0”。从而控制器151的写保护功能再次置位,并返回到其初始激活状态(步骤S203)。此后,中断处理程序执行恢复(RSM)命令,把CPU11的操作模式从SMM转换为普通模式。因此,CPU11开始再次执行中断的ROM重写程序,以重写闪速BIOS-ROM18(步骤S102)。然而,闪速BIOS-ROM18的内容未被擦除掉。新的BIOS也未写进闪速BIOS-ROM18。这是由于控制器151的写保护功能被激活,并且闪速BIOS-ROM18被写保护。由于产生的中断信号(SMI)和中断处理程序操作,虽然其正确地执行重写闪速ROM的序列,但错误的ROM重写程序按意图不能写进闪速ROM。
ROM重写程序可再次解除写保护。在这种情况中,再次产生中断信号(SMI),并且中断处理程序再次设置解除的写保护以激活控制器151的写保护功能。因此错误的ROM重写程序不能重写闪速ROM。
如果通过执行ROM重写程序所做的硬件访问是错误的,不但写保护被再次设置,而且报警信号显示在显示监视器上,通知计算机用户正执行错误的ROM重写程序。
(闪速ROM的重写,#2)
根据图3的流程图,将描述闪速ROM重写的第二种程序。在第二种程序中,根据是否已经对已指定的特殊I/O寄存器进行写访问,CPU11检验ROM重写程序。
在步骤S101解除写保护之前,任何正确的ROM重写程序在步骤S111中设置特殊I/O寄存器中的规定位(检验标志)为“1”。用于检验ROM重写程序的寄存器具有根据本发明计算机的特性。寄存器的I/O地址和访问寄存器的序列被保密。错误的ROM重写程序不能设置寄存器中的规定位为“1”。因此,在步骤S101中错误的ROM重写程序解除写保护,没有设置规定的位(检验标志)。
当解除写保护时,SMI发生器153产生SMI信号。SMI信号被提供给CPU11,借此CPU11的操作模式从普通模式转换为SMM。现在开始SMM,CPU11开始执行中断处理程序。也就是说,CPU11检测检验标志,以检验根据ROM重写程序所做的对闪速ROM控制器151的访问。然后,CPU11确定该访问是否正确(步骤S202)。
如果检验标志设置为“1”,CPU11确定为了重写闪速BIOS-ROM18所做的访问是正确的。中断处理程序执行恢复(RSM)命令,把CPU11的操作模式从SMM转换为普通模式。因此,CPU11开始再次执行中断的ROM重新程序。结果,闪速BIOS-ROM18的内容被擦除并且新BIOS映象被写进BIOS-ROM18(步骤S102)。从而更新了闪速BIOS-ROM18的内容。
另一方面,如果检验标志设置为“0”,CPU11确定为了重写闪速BIOS-ROM18所做的访问是错误的。在这种情况中,中断处理程序访问控制寄存器152并且把写保护位WP重写为“0”。因此再次为闪速BIOS-ROM18设置写保护(步骤S203)。此后,中断处理程序执行恢复(RSM)命令,把CPU11的操作方式从SMM转换为普通模式。因此,CPU11开始再次执行中断的ROM重写程序以重写闪速BIOS-ROM18(步骤S102)。然而,由于闪速BIOS-ROM18是写保护的,闪速BIOS-ROM18不能被重写。
(闪速ROM的重写,#3)
根据图4的流程图,将描述闪速ROM重写的第三种程序。在第三种程序中,通过关机,而不是通过再次设置写保护,阻止任何错误的闪速BIOS-ROM18的重写。
当解除写保护时,SMI发生器153产生SMI信号。SMI信号激活中断处理程序。如同重写闪速ROM(图3)的第二种程序,CPU11检验ROM重写程序(步骤S201)并且确定其通过执行ROM重写程序所做的访问是否正确(步骤S202)。如果CPU11确定访问是正确的,中断处理程序执行恢复(RSM)命令。如果CPU11确定访问是错误的,中断处理程序关闭计算机(步骤S203)。不再执行闪速BIOS-ROM18的错误重写。
在计算机关闭之前,可向用户产生一种报警信号,要求用户选择或者写保护或者为安全而关机。
(SMI信号屏蔽的禁止)
将解释在计算机中怎样禁止SMI信号的屏蔽。如上所述,通过使用SMI信号执行安全功能。如果SMI信号被封锁,或屏蔽,执行安全功能是不再可能的。为可靠地执行安全功能,在系统BIOS的POST例程描述的POST过程中控制屏蔽禁止电路155。如图5所示,以如此控制,电路155禁止SMI信号的屏蔽(步骤S301)。在计算机通电时,根据系统BIOS自动执行POST过程。在计算机通电时,还未执行诸如OS的软件和应用。由于在POST过程中禁止了SMI信号的屏蔽,因此计算机可以获得高的保密等级。
(SMI信号的产生)
如上所述,当通过使用软件解除写保护时,SMI发生器153产生SMI信号。可以不是在解除写保护时,而是在写保护解除之后第一次对闪速ROM控制151进行I/O访问时,可产生SMI信号。为使闪速ROM控制器151擦除闪速BIOS-ROM18的内容,必须使用软件对控制寄存器152进行I/O访问,使得可以向闪速ROM控制器151给出命令。为此,在闪速BIOS-ROM18的内容擦除之前进行的I/O访问可以触发SMI发生器153。以如此的触发,SMI发生器153产生I/O捕获SMI信号,其激活中断处理程序。注意I/O捕获SMI信号是当I/O访问被拦截时SMI发生器153产生的信号。
(中断处理程序的扩展功能)
已描述了执行用于禁止闪速ROM错误重写的控制。如图7所示,在根据本发明的计算机中,也可禁止存储在受保护存储区域中的重要程序和数据的错误重写,该受保护存储区域诸如提供在HDD161中的EEPROM19或指定区域。
计算机病毒可以开始序列操作以重写受保护存储区域的内容。当病毒开始该序列时,应硬件访问的要求,产生诸如SMI信号的硬件中断信号,用于重写受保护存储区域的内容。由于程序确认,硬件中断信号激活中断处理程序,借此CPU11确定硬件访问是否是错误的。如果硬件访问是错误的,通过关闭计算机或设置写保护,中断处理程序禁止重写受保护存储区域的内容。
在上述的实施方案中,当软件访问ROM重写硬件时,硬件中断信号提供给CPU11。因此,可在适当的时候执行安全功能。从而计算机可获取高的保密等级。SMI发生器153产生的硬件中断信号并不限于上述示范的SMI信号。可以使用任何其它的硬件中断信号来激活中断处理程序。而且,可以用任何对OS生效的实用程序取代中断处理程序,以检验ROM重写程序。
如已经描述的,本发明可提供一种数据处理装置,其具有非挥发性存储设备,并且在其中禁止软件执行错误重写非挥发性存储器。因此数据处理装置可获取高的保密等级。
本领域技术人员将很容易地想到附加的优点和修改。因此,在其更广的方面上本发明并不限于在此示出和描述的具体细节和代表实施方案。所以,在不离开权利要求及其等价定义的总体发明概念的精神或范围基础上,可以进行各种修改。