专利名称:电脑时间自动恢复系统及方法
技术领域:
本发明涉及一种时间恢复系统及方法,尤其涉及一种电脑时间自动恢复系统及方法。
背景技术:
电脑系统实际上有二个时钟,一个是当系统关机继续使用电池电力维持计时功能的真实时钟“real time clock”(也就是所谓的“CMOS时钟”、“硬件时钟”、或”RTC”),而另一个是“kernel clock”(有时称为“软件时钟”或“系统时钟”),系统时钟的跳动是以定时器的中断信号为基准并在开机时从CMOS时钟处加载初始值。这二个时钟有不同的时间偏差率,所以二个时钟上的时间会逐渐地产生偏差,而且也会与“真正的”时间产生偏差。
在个人电脑里与时间有关的有如下几个部分RTC(Real TimeControl)真实时钟、BIOS(Basic Input/Output System,基本输入输出系统)、操作系统和应用程序。所述RTC真实时钟是位于主板上,它是用来储存电脑的时间,BIOS则是提供一个路径,供操作系统或应用程序来存取RTC里的时间资料。操作系统,大部分都是在计算机开机时呼叫BIOS来读取RTC的时间资料。
当开机进入操作系统之后,有可能会由于用户的误调或其他因素造成电脑RTC时间发生错误或丢失,例如,在时钟刷新期间出现错误数据或在计时持续倒数记秒的情况下发生时间丢失,或RTC时间与“kernelclock”发生偏差等,时间的错误或丢失会给用户带来极大不便。
发明内容鉴于以上内容,有必要提供一种电脑时间自动恢复系统,其时间恢复速度快,且所恢复的时间较准确。
鉴于以上内容,还有必要提供一种电脑时间自动恢复方法,其时间恢复速度快,且所恢复的时间较准确。
一种电脑时间自动恢复系统,用于当电脑时间发生错误或丢失时进行时间的自动恢复,该系统储存于一基本输入输出系统中,该基本输入输出系统通过一中央处理器与一互补型金属氧化物半导体随机存储器相连,该系统包括一保存模块,用于在中央处理器上电时将互补型金属氧化物半导体随机存储器中的电脑时间存储到上述基本输入输出系统中;一计算模块,用于计算自中央处理器上电以来所经过的实际时间;一读取模块,用于从互补型金属氧化物半导体随机存储器中读取当前电脑时间;一判断模块,用于判断所读取的当前电脑时间是否等于保存模块所保存的电脑时间与计算模块所计算的实际时间之和;一调整模块,用于当判断模块判断电脑时间发生错误时调整当前电脑时间。
所述计算模块是利用中央处理器的“时间戳”所记录的时钟周期与已知的中央处理器主频的换算关系来计算时间的。
一种电脑时间自动恢复方法,用于当电脑时间发生错误或丢失时进行时间的自动恢复,该方法包括以下步骤(a)电脑上电时保存电脑时间到一基本输入输出系统中;(b)计算自上电以来所经过的实际时间;(c)读取当前电脑时间;(d)判断当前电脑时间是否正确;(e)若当前电脑时间不等于上电时所保存的电脑时间与所计算的实际时间之和,则进行时间调整。
其中步骤(e)包括(e1)计算从电脑上电到恢复时间前所经过的实际时间;(e2)调整当前电脑时间为所保存的电脑时间与上述计算的实际时间之和。
本发明所提供的电脑时间自动恢复系统及方法,能够依用户要求实现时间的快速自动恢复以取得更正确的电脑时间,给用户带来较大方便。
图1是本发明电脑时间自动恢复系统较佳实施例的硬件架构图。
图2是图1所示的电脑时间自动恢复系统的功能模块图。
图3是本发明电脑时间自动恢复方法较佳实施例的作业流程图。
具体实施方式
参阅图1所示,是本发明电脑时间自动恢复系统较佳实施例的硬件架构图。该电脑时间自动恢复系统1储存于一BIOS(Basic Input/OutputSystem,基本输入输出系统)2中。BIOS2可由一CPU(CentralProcessing Unit,中央处理器)3调用和执行以控制系统全部硬件的运行,又为高层软件提供基层调用。与CPU3相连的还有一CMOSRAM(Complementary Metal-Oxide-Semiconductor Transistor RandomAccess Memory,互补型金属氧化物半导体随机存储器)4。
CMOS RAM4记录有电脑的真实时间(Real Time Control,RTC)、硬盘参数、软驱情况及其它高级参数。CMOS RAM4能将上述参数保存下来,既使关机也不会丢失。RTC是一个以电池驱动的时钟,它在计算机的主板上是一块单独的芯片,这个芯片和中央处理器一般不在一起,通常被称为CMOS,这是一小块内存,保存了系统描述和配置值,也包括当前时间,这个时间包括年月日,小时数,分钟数和秒数。在打开计算机时操作系统或应用程序通过BIOS来读取RTC里的时间资料。
在CPU3中,有一个称为“时间戳(Time Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU3上电以来所经过的时钟周期数。该时钟周期数具有与CPU3主频直接对应的换算关系,因此由CPU3主频可直接计算出CPU3自上电以来所经过的实际时间。
电脑时间自动恢复系统1用于在电脑的RTC时间发生错误或丢失时实现时间的自动恢复,以满足用户需要。如图2所示,该电脑时间自动恢复系统1包括一保存模块50、一计算模块51、一读取模块52、一判断模块53及一调整模块54。其中,保存模块50用于将CPU3上电时CMOS RAM4中记录的RTC时间T0保存到BIOS2中,所述T0为一个正确的时间,以作为电脑时间发生错误时进行时间恢复的基准。计算模块51用于利用CPU3中的“时间戳”所记录的时钟周期来计算自CPU3上电以来所经过的实际时间T1。读取模块52用于从CMOS RAM4中读取电脑当前的RTC时间,该时间若不发生错误应为BIOS2中所保存的CPU3上电时的RTC时间T0与自CPU3上电以来所经过的实际时间T1之和。判断模块53用于判断所读取的RTC时间是否正确,即判断所读取的RTC时间是否等于T0与T1之和,及判断当RTC时间发生错误或丢失时是否接收到用户的时间恢复请求。调整模块54用于将错误的RTC时间调整为当前正确的RTC时间,即先由计算模块51计算出从CPU3上电到开始调整时间前所经过的实际时间T2,然后将RTC时间自动调整成CPU3上电时BIOS2中保存的RTC时间T0与T2之和,以达到恢复电脑时间的目的。
如下所述是通过前述电脑时间自动恢复系统,实施该电脑时间的自动恢复步骤。
在本实施例中,当一用户给个人电脑(PC)上电时,保存模块50自动将上电时CMOS RAM4中记录的RTC时间T0保存到BIOS2中,上电以后,PC机将电脑时间设定为RTC时间,BIOS2会读取RTC上的时间资料,当DOS和Windows等操作系统需要时间和日期时,通过调用BIOS2,返回操作系统时间。进入操作系统后,随着时间的推移,计算模块51利用CPU3的“时间戳”所记录的时钟周期来计算自CPU3上电以来所经过的实际时间T1,因为时钟周期数具有与CPU3主频直接对应的换算关系,因此只要知道CPU的主频,就可直接计算出时间。读取模块52从CMOS RAM4中读取电脑当前的RTC时间。然后由判断模块53判断所读取的RTC时间是否等于BIOS2中所保存的RTC时间T0与T1之和。若不等,且用户有时间恢复请求时,为恢复更准确的时间,计算模块51再一次计算CPU3自上电以来到进行时间恢复前所经过的实际时间T2。最后由调整模块54将电脑的RTC时间调整为BIOS2中所保存的RTC时间T0与T2之和。
参阅图3所示,是本发明电脑时间自动恢复方法较佳实施例的流程图。首先,电脑上电,保存模块50将上电时CMOS RAM4中记录的RTC时间T0保存到BIOS2中,当电脑RTC时间发生错误时,该时间可作为电脑时间恢复的基准(步骤S100);计算模块51利用CPU3的“时间戳”所记录的时钟周期来计算自CPU3上电以来所经过的实际时间T1,因为该时钟周期数具有与CPU3主频直接对应的换算关系,所以由CPU3的主频可直接计算出时间T1(步骤S102);读取模块52从CMOSRAM4中读取当前的RTC时间,该RTC时间若不发生错误应为BIOS2中所保存的CPU3上电时的RTC时间T0与自CPU3上电以来所经过的实际时间T1之和(步骤S104);判断模块53判断读取模块52所读取的RTC时间是否正确,即判断读取模块52所读取的RTC时间是否等于BIOS2中所保存的CPU3上电时的RTC时间T0与T1之和(步骤S106);若不等,表示电脑RTC时间发生错误,判断模块53再判断是否接收到用户的时间恢复请求(步骤S108);若是,为恢复更加准确的电脑时间,计算模块51再一次计算CPU3自上电以来到时间恢复前所经过的实际时间T2(步骤S110);调整模块54将电脑的RTC时间调整为上电时BIOS2中所保存的RTC时间T0与T2之和(步骤S112)。
在步骤S106中,若判断模块53判断读取模块52所读取的RTC时间等于BIOS2中所保存的CPU3上电时的RTC时间T0与T1之和,表示电脑RTC时间没发生错误,则流程结束。
在步骤S108中,若判断模块53没有接收到用户的电脑时间恢复请求,则流程结束。
权利要求
1.一种电脑时间自动恢复系统,用于当电脑时间发生错误或丢失时进行时间的自动恢复,该系统储存于一基本输入输出系统中,该基本输入输出系统通过一中央处理器与一互补型金属氧化物半导体随机存储器相连,其特征在于,该系统包括一保存模块,用于在中央处理器上电时将互补型金属氧化物半导体随机存储器中的电脑时间存储到上述基本输入输出系统中;一计算模块,用于计算自中央处理器上电以来所经过的实际时间;一读取模块,用于从互补型金属氧化物半导体随机存储器中读取当前电脑时间;一判断模块,用于判断所读取的当前电脑时间是否等于保存模块所保存的电脑时间与计算模块所计算的实际时间之和;一调整模块,用于当判断模块判断电脑时间发生错误时调整当前电脑时间。
2.如权利要求1所述的电脑时间自动恢复系统,其特征在于,所述计算模块是利用中央处理器的“时间戳”所记录的时钟周期与已知的中央处理器主频的换算关系来计算时间的。
3.如权利要求1所述的电脑时间自动恢复系统,其特征在于,所述判断模块还用于在电脑时间发生错误时判断是否接收到用户的时间恢复请求。
4.如权利要求1所述的电脑时间自动恢复系统,其特征在于,所述调整模块是将当前电脑时间调整为保存模块所保存的电脑时间与计算模块所计算的从上电到调整时间前所经过的实际时间之和。
5.一种电脑时间自动恢复方法,用于当电脑时间发生错误或丢失时进行时间的自动恢复,其特征在于,该方法包括以下步骤电脑上电时保存电脑时间到一基本输入输出系统中;计算自上电以来所经过的实际时间;读取当前电脑时间;若当前电脑时间不等于上电时所保存的电脑时间与所计算的实际时间之和,则进行时间调整。
6.如权利要求5所述的电脑时间自动恢复方法,其特征在于,所述进行时间调整的步骤包括计算从电脑上电到调整时间前所经过的实际时间;调整当前电脑时间为所保存的电脑时间与上述计算的实际时间之和。
7.如权利要求5所述的电脑时间自动恢复方法,其特征在于,所述的计算自上电以来所经过的实际时间是利用中央处理器的“时间戳”所记录的时钟周期与已知的中央处理器主频的换算关系来实现的。
全文摘要
本发明提供一种电脑时间自动恢复系统,用于当电脑时间发生错误或丢失时进行时间的自动恢复,该系统包括一保存模块,一计算模块、一读取模块、一判断模块及一调整模块。本发明还提供一种电脑时间自动恢复方法,该方法包括电脑上电时保存电脑时间到一基本输入输出系统中;计算自上电以来所经过的实际时间;读取当前电脑时间;若当前电脑时间不等于上电时所保存的电脑时间与所计算的实际时间之和,则进行时间调整。本发明所提供的电脑时间自动恢复系统及方法,能够依用户要求而实现时间的快速自动恢复以取得更正确的电脑时间,给用户带来较大方便。
文档编号G06F11/00GK1967490SQ20051010150
公开日2007年5月23日 申请日期2005年11月15日 优先权日2005年11月15日
发明者李明隆 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司