专利名称:一种快速启动的计算机系统的制作方法
技术领域:
本发明涉及一种计算机系统,尤其是在重新接通计算机的电源后能够快速启动的计算机系统。
已有的计算机系统在每次接通电源后,都需要经历一个比较漫长的启动过程。启动过程包括自检、初始化、引导操作系统,引导操作系统过程又包括加载基本系统文件、搜索硬件并分配资源、加载设备驱动程序、加载操作系统核心层文件、加载操作系统应用层文件等等。在这些过程中,显示器上的显示内容会被刷新过多次,硬盘会被搜索和存取过成千上万次,内存特别是类似WIND0WS操作系统的注册表数据所在的内存地址会被存取或覆盖很多次。
实际上,一台已经投入使用的计算机,其部件一般不会发生变动,所以每次启动都让计算机做同样重复的操作就比较冗余,因为计算机使用者更关心启动完成后的状态,而不关心这些状态的形成过程。很明显,如果将启动完成时的显示内容直接送给显示器,就可以节约启动过程中多次刷新显示内容而消耗的时间,也就是说,避免不必要的状态积累过程可以缩短计算机系统的启动时间。
为了缩短状态积累过程,节约启动时间,目前的一个解决方案是,让计算机进入睡眠状态,但因为进入睡眠状态后计算机仍然必须处于通电状态才能让各部件维持状态数据,所以造成了电力能源的大量浪费,不符合节约能源、注重环保的发展方向,而且给下班时间无人值守的计算机持续通电也会带来潜在的不安全因素。
本发明的目的是,针对常规启动方式状态积累过程冗长、睡眠方案不能断电的不足,提供一种能够在断电后重新开机时跳过状态积累过程的快速启动的计算机系统。
本发明的技术构思是,将关机前计算机某一时刻的工作状态保存到不怕断电的存储装置中,在重新接通计算机电源后,借助保存在存储装置中的状态数据恢复计算机的工作状态,从而实现“在哪里关机,从哪里开启”,跳过了常规启动方式中的状态积累过程,缩短了计算机的启动时间。
实现本发明的技术方案是在由处理器(1)、内存(2)、功能部件(4)等组成的常规计算机系统中,增加一个存储装置(3)和一个快速启动控制系统(5),构成快速启动的计算机系统;存储装置用于在计算机断电期间保持数据,其容量应足够保存内存映象和各部件的工作状态;快速启动控制系统包含一组用于控制计算机关闭的程序和一组用于控制计算机启动的程序,分别简称为关机程序和开机程序;在快速启动控制系统的参预下,存储装置可以直接或通过内存缓冲作中介,与处理器、内存和功能部件交换状态数据。
上述功能部件是计算机板卡或外部输入输出设备,计算机板卡可以是主板、显卡、网卡、声卡等,外部输入输出设备可以是键盘、打印机等,另外,用于保存操作系统、应用程序和数据文件的硬盘也属于功能部件。这些部件通常有多种工作状态,例如显卡在输出颜色方面,既可以工作在16色状态,也可以工作在65536色状态;显卡在输出屏幕区域方面,既可以工作在640X480象素状态,也可以工作在1024X768象素状态;键盘可以工作在大写字符状态,也可以工作在小写字符状态。
上述存储装置可以是一个硬盘、硬盘的一部分或一种非易失存储器,特点是断电后保存在其中的数据能够保持不变。成本较低的方式是在当前高达几十GB容量的硬盘上划出百分之一左右,约几百兆容量的独占硬盘区域作为存储装置;效果较好的方式是采用非机械的非易失存储器,具体类型可以是NVRAM、闪存Flash Memory、EEPROM,其存取速度通常比硬盘快几十倍,但成本较高。
上述快速启动控制系统中的关机程序作为计算机系统的默认关机程序,包括一个可选的关机应用程序和一个关机核心驱动程序。可以通过关机应用程序挂靠操作系统、关机核心驱动程序拦截系统信号、替换操作系统的某些核心驱动程序等方式,在计算机使用者试图关闭计算机时被调用执行,或者由使用者在关机时主动执行关机应用程序,再从应用程序内部调用关机核心驱动程序,获得计算机的控制权,运行在系统核心层。
上述快速启动控制系统中的开机程序作为计算机系统的默认启动程序,包括一个开机状态恢复程序和一个开机核心驱动程序。可以通过替换BIOS(计算机基本输入输出系统)或借助集成于BIOS中、扩展ROM中的程序拦截系统启动过程等方式,在计算机的电源接通后,尽快地获得计算机的控制权,运行在系统核心层。
上述快速启动控制系统中的关机核心驱动程序和开机核心驱动程序通常集成在一起,称为开关机核心驱动程序,并且除此之外的关机程序和/或开机程序可以与可选的控制计算机进行常规启动的常规启动程序、启动方式选择程序等一起组合成BIOS,直接替换原先仅支持常规启动的BIOS。
上述功能部件的状态保存与恢复可以有两种方式,一是软件方式,功能部件通过与之配套的快速启动驱动程序提供两个功能调用,读取功能部件的当前工作状态数据以供保存和将功能部件恢复到指定的工作状态,这样通过快速启动驱动程序提供逻辑操作抽象,确保对各功能部件实施状态保存和恢复操作方式上的统一化;二是硬件方式,功能部件能够在断电时自动保存当前的工作状态并在上电时自动恢复到原工作状态,故只要发出一些刷新操作命令,不必再对各功能部件进行直接操作,也不必提供驱动程序。这两种方式都针对当前功能部件多样化、操作方式不统一的实际情况作了考虑,避免了直接对功能部件进行状态保存和恢复操作的复杂性。例如某网卡的状态寄存器有30个,另一种网卡则有32个,某显卡有400个可连续寻址的状态寄存器,另一种显卡则在两个相距很远的地址上各存在200个状态寄存器,但快速启动控制系统可以通过与功能部件配套的快速启动驱动程序方便地进行状态保存与恢复操作,而不必详细地了解每一种功能部件的状态寄存器的数量、地址、存取方式等特性。
上述功能部件如果具有与之配套的快速启动驱动程序,则可以将这些驱动程序与快速启动控制系统的其它程序一起集成在BIOS中,或保存在存储装置中,或通过功能部件的扩展ROM提供,例如显卡的快速启动驱动程序可以集成在显卡的扩展ROM中。
上述快速启动的计算机系统在关机和开机时的运行过程如下1、第一次开启计算机时快速启动控制系统借助存储装置中的默认状态数据进行快速启动,或通过可选的常规启动方式启动,启动完成后计算机进入正常运行状态。
2、计算机使用者运行一段时间后,打算关闭计算机,这时可以主动执行快速启动控制系统中的关机应用程序,或按正常方式执行关机操作而被加载在操作系统中的快速启动控制系统的关机程序拦截到,关机程序最终依靠内存中的开关机核心驱动程序的关机程序部分获得计算机的控制权。
3、快速启动控制系统的关机程序首先像进入中断状态一样保存现场,以防止关机程序自身对系统尤其是处理器的工作状态产生影响;接着让处理器、内存和其它部件进入一种独占使用状态或暂停锁定状态,以防止在随后的状态保存过程中被其它程序使用而改变状态;然后将处理器的当前工作状态数据保存到存储装置中,将内存映象或内存中的有效数据保存到存储装置中,逐个调用每个部件的快速启动驱动程序中的读取当前工作状态功能,并将这些功能部件的当前状态数据保存到存储装置中;再在存储装置中保存开关机核心驱动程序所在的内存地址,并设置一个可以快速启动的标志;最后向控制计算机电源的装置发出关闭电源命令,直接关闭计算机的电源。如果功能部件在硬件上具有断电自动保存状态和上电自动恢复状态的功能,则不必调用相关部件的快速启动驱动程序。
4、再接通计算机电源时,快速启动控制系统的开机程序通过替换BIOS或拦截BIOS的启动过程获得计算机的控制权,进行必要的自检,检查保存在存储装置中的数据及快速启动标志是否有效或者是否需要快速启动,从而决定是快速启动还是可选的常规启动或使用默认状态数据的快速启动。
5、快速启动控制系统的开机状态恢复程序在快速启动方式下,首先让处理器、内存和其它部件进入一种独占使用状态或暂停锁定状态;接着从存储装置中读取数据并逐个调用每个部件的快速启动驱动程序中的恢复到指定工作状态的功能,将各功能部件恢复到关机程序运行时的工作状态,从存储装置中读取内存映象恢复内存中的数据,从存储装置中读取数据恢复处理器的大部分工作状态,这里并不完全恢复处理器的工作状态,例如处理器当前要执行的程序地址即指令指针IP不必恢复;然后借助存储装置中保存的内存地址找到内存中的开关机核心驱动程序,并将处理器当前要执行的程序地址即指令指针设置指向开关机核心驱动程序的开机程序部分的地址,从而将计算机的控制权转移给开机核心驱动程序;最后开机核心驱动程序解除处理器、内存和其它部件的独占使用状态或暂停锁定状态,再借助于关机核心驱动程序所保存的现场数据,像退出中断状态一样恢复现场包括恢复处理器的状态,并模拟原关机程序执行完毕后返回,或向系统返回一个关机操作被取消的消息。如果功能部件在硬件上具有断电自动保存状态和上电自动恢复状态的功能,则不必调用相关部件的快速启动驱动程序。
6、从计算机使用者的角度看,如果原先是通过主动执行关机应用程序关机,则此时计算机系统的状态就像已经执行完关机程序,看起来关机程序更像一个普通的应用程序,没有改变系统的状态并且在执行后返回;如果原先是通过拦截系统的关机信号执行关机操作,则此时计算机系统的状态就像关机操作被取消了。总之,系统还是执行关机操作前的状态,通过状态恢复的方式完成了快速启动。
上述快速启动的计算机系统在关机时进入关机程序,在开机后从开机程序返回,快速启动控制系统通过关机程序和开机程序的配合,将关机到开机启动之间的过程模拟成执行一个普通的应用程序或一个被取消的关机操作,避免了常规启动过程中的状态积累,也克服了进入睡眠状态不能断电的不足,实现了计算机系统的快速启动。
上述对内存映象的保存和恢复,如果虚拟内存中的数据在断电后不会丢失则不必对虚拟内存中的数据进行保存和恢复。作为另一种操作方式,关机程序可以在保存状态数据前先申请一块足够大的内存,接着将处理器和各功能部件的工作状态读到这块内存中,再将内存映象保存到存储装置中,而不是将处理器或功能部件的状态直接保存到存储装置中;恢复状态时则执行相反的过程,读取内存映象,用内存中相应的数据恢复各功能部件和处理器的工作状态,再释放所申请的内存。这种方式也包括在本发明技术方案的范围中,其特点是操作效率高,但可能会占用虚拟内存。
上述快速启动控制系统中的开关机核心驱动程序在功能上分为关机核心驱动程序部分和开机核心驱动程序部分,但在执行过程中,总是从关机核心驱动程序部分进入,再从开机核心驱动程序部分返回,分别是程序入口和程序出口,从结构上看更像一个程序。
为了提高快速启动的效率,快速启动控制系统中的部分程序可以集成在BIOS中,或者与备用的常规启动程序等一起组成新的BIOS,从而较早地获得计算机控制权,缩短系统的启动时间。
本发明所指的保存和恢复的状态也属于一种数据,通常所指的保存状态是指保存状态寄存器中的数据,状态与数据的区别主要在于,数据是被加工或存储的对象,而状态一般是影响加工或存储方式的参数。
功能部件的状态保存与恢复操作由硬件自动实现(实现的技术方案可以参考申请号为02262926.2的专利申请),或由与之配套的快速启动驱动程序具体执行,对功能部件的状态寄存器进行存取。内存是一组线性编址的存储单元,可以直接进行存取,对于处理器内置的存储单元例如高速缓存则可以按内存同样的方式处理,或者使高速缓存中的数据无效以强制刷新操作。处理器的状态保存与恢复操作与处理器进出中断状态的过程相类似,因为进入中断后通常执行一些操作,甚至是一些运行模式切换的操作,但在返回后并不会破坏处理器的工作状态。
根据粗略的计算,对于以WINDOWS为操作系统的普通PC机,其常规启动过程的时间约为20秒至100秒,安装了较多的应用程序也会影响启动时间。而在本发明的快速启动的计算机系统中,同样是WINDOWS操作系统则启动时间缩短到2秒至10秒,而且启动时间与应用程序的多少无关。其中对启动时间较有影响的是内存的容量,内存容量越大则保存和恢复内存映象的时间越长,而处理器和功能部件的状态保存与恢复时间则可以忽略不计。这样一来,大家打开计算机后,在等待计算机启动的期间去泡杯茶,然后才到计算机前工作的习惯就要改改了,因为计算机已经不再在启动过程中“贪玩”了。根据本发明所描述的快速启动的计算机系统,更符合追求安全高效、环保节能的发展方向。
下面结合附图对本发明作进一步的说明。
图1为本发明所描述的能够快速启动的计算机系统的结构示意图。
图2为本发明所描述的功能部件的快速启动驱动程序的流程图。
图3为应用本发明的计算机系统的关机流程图。
图4为应用本发明的计算机系统的开机流程图。
图5为应用本发明的计算机系统实例的结构和信号流示意图。
见图1,本发明所描述的快速启动的计算机系统包括处理器(1)和内存(2),这两个部件为必备的系统核心部件;存储装置(3),其特点是断电后数据不会丢失,用于在计算机关闭期间保存功能部件和处理器的状态数据和内存映象数据;功能部件(4),一个或者更多个,每个部件具有至少一种断电状态和至少两种通电工作状态,根据当前工作状态的不同而实现不同的功能;快速启动控制系统(5)。快速启动控制系统控制了处理器、内存、功能部件与存储装置之间的状态数据流向,以此进行状态保存和恢复,图1中用单向箭头线标注了主要的控制信号流。
见图2,本发明所描述的快速启动驱动程序主要由读取功能部件的当前工作状态数据(61)和将功能部件恢复到指定工作状态(62)两个功能组成,对于内部具有缓存功能的部件,则提供刷新操作的功能调用(63)。例如,只要提供一块足够大的存储区域或内存地址,通过键盘的快速启动驱动程序,就可以将键盘的所有状态数据(字符大小写状态、数字键状态、卷轴控制状态等)保存下来,重新开机后,指定保存了状态数据的存储区域或内存地址,通过同样的驱动程序就可以将键盘重新恢复到原先的工作状态;具有缓存功能的部件例如带内部缓存的硬盘,可以提供刷新操作的功能调用,以便在读取状态前先刷新缓存数据,确保断电前所保存的状态数据的完整性。
见图3和图4,图中的过程(71)是关机操作的入口,过程(85)是开机启动操作的出口,在这两者之间,包含了关机断电和开机启动等重要操作,以及在关机和开机之间可能存在的时间间隔(例如连续两个月没有打开过计算机),但从外部看这个可能会相当漫长的过程却类似于一个普通的不会改变系统状态的应用程序。系统状态的保存主要在过程(74)中完成,恢复主要在过程(82)中完成,有关处理器的一些状态则由过程(72)在程序入口保存现场实现状态保存,由过程(85)在程序出口恢复现场实现状态恢复。为了防止多任务操作系统的进程切换以及自带微处理器的功能部件在状态保存和恢复过程中破坏当前工作状态的完整性,快速启动控制系统分别在过程(73)和过程(81)中让处理器、内存和各部件进入独占使用或暂停锁定状态,当前的多任务操作系统均支持进入临界状态,独占使用处理器。开机启动过程中,过程(82)恢复主要状态数据,过程(83)将控制权转移给已经在内存中的开机核心驱动程序,过程(84)解除独占使用或暂停锁定状态,允许操作系统进行多任务切换,过程(85)使用关机入口保存现场的数据恢复现场并返回。本发明的技术方案将关机断电和开机启动的整个过程模拟成一个普通应用程序的执行过程,在操作系统“毫不知情”的情况下实现了计算机系统的快速启动。
见图5,这是应用本发明的计算机系统实例的结构和信号流示意图。这个实例系统包括操作系统(91),BIOS(92),快速启动控制系统(5),各功能部件的快速启动驱动程序、存储装置(3),临时缓冲区(21),与常规启动计算机系统相同的硬件部分(9),又可细分为处理器(1)、内存(2)、功能部件(41)、(42)、(43)以及电源控制。快速启动控制系统(5)在功能上包括关机程序和开机程序,在结构形式上将关机程序和开机程序重新组合为开关机核心驱动程序和快速启动扩展BIOS,开关机核心驱动程序被加载到操作系统(91)中,快速启动扩展BIOS被集成到BIOS(92)中。临时缓冲区(21)是由关机程序从内存中申请的数据中转缓冲区,用于提高与存储装置交换数据的效率,由开机程序在返回前释放。图5中用单向箭头线标注了主要的控制信号流,用双向宽箭头标注了主要的状态数据流。BIOS(92)可以控制硬件部分(9),操作系统(91)可以直接控制硬件部分(9),也可以通过BIOS(92)实现间接控制。快速启动控制系统(5)控制了处理器(1)、内存(2)与临时缓冲区(21)之间的状态数据流向,通过调用各功能部件的快速启动驱动程序控制了各功能部件与临时缓冲区(21)之间的状态数据流向,同时也控制了临时缓冲区(21)与存储装置(3)之间的数据流向,并直接操作电源控制装置实现关机断电操作。在应用本发明的这个实例中,用硬盘尾部的200MB空间作为存储装置,借助内存中的临时缓冲区提高数据交换效率,通过扩展BIOS加速启动过程,在快速启动控制系统的参预下跳过常规启动过程中的状态积累,实现快速启动。
本发明所列举的流程图都是具体实施的个例,但实施本发明并不限于上述具体技术方法,在参考了本发明所指出的系统框架和总体技术方案后,具体实施上可以有局部的调整或者变化。
权利要求
1.一个计算机系统,包括一个处理器和一组内存;一个功能部件,具有至少一种断电状态和至少两种通电工作状态,根据当前工作状态的不同而实现不同的功能;一个存储装置,用于在计算机关闭期间保存功能部件和处理器的状态数据和内存映象数据;一个快速启动控制系统,包含一组用于控制计算机关闭的程序和一组用于控制计算机启动的程序。
2.根据权利要求1所述的计算机系统,其特征是功能部件在计算机断电时自动保存当时的工作状态数据,在重新开启计算机后根据所保存的状态数据自动恢复到原先的工作状态。
3.根据权利要求1所述的计算机系统,其特征是功能部件具有与之配套的快速启动驱动程序,该驱动程序向快速启动控制系统提供至少两个功能调用读取功能部件的当前工作状态数据以供保存和将功能部件恢复到指定的工作状态。
4.根据权利要求3所述的计算机系统,其特征是功能部件以扩展ROM程序或集成到快速启动控制系统中的形式提供快速启动驱动程序。
5.根据权利要求1所述的计算机系统,其特征是快速启动控制系统进一步包含一个控制计算机进行常规启动的程序和一个用于确定启动方式的选择程序。
6.根据权利要求1所述的计算机系统,其特征是功能部件是计算机板卡(主板、显卡、网卡或声卡)。
7.根据权利要求1所述的计算机系统,其特征是存储装置是硬盘或一种能够在断电期间保持数据的非易失存储器(NVRAM、闪存Flash Memory或EEPROM)。
8.根据权利要求1所述的计算机系统,其特征是快速启动控制系统包含加载到操作系统中的一个关机核心驱动程序和一个开机核心驱动程序,执行关机操作时从操作系统进入关机核心驱动程序,重新开机启动完成后才从开机核心驱动程序返回操作系统。
9.根据权利要求1或5所述的计算机系统,其特征是快速启动控制系统中的部分程序集成到计算机系统的BIOS中,或替换了计算机系统的BIOS。
全文摘要
本发明是一种能够快速启动的计算机系统,由处理器(1)、内存(2)、存储装置(3)、功能部件(4)以及快速启动控制系统(5)组成。需要关闭计算机时,调用快速启动控制系统中的关机程序,将计算机的当前工作状态保存到存储装置中后直接关闭计算机;在重新开启计算机时,快速启动控制系统中的开机程序借助存储装置中的数据将计算机恢复到调用关机程序时的工作状态,并模拟成关机程序的返回。快速启动控制系统将上次关机到这次开机之间的过程模拟成执行一个不影响计算机工作状态的普通程序,从而跳过了常规启动过程中的工作状态积累过程,缩短了计算机的启动时间。
文档编号G06F1/32GK1467625SQ0213790
公开日2004年1月14日 申请日期2002年7月8日 优先权日2002年7月8日
发明者尹启凤 申请人:尹启凤