网络休眠系统及其方法 本发明涉及网络休眠系统,具体来说涉及下述的网络休眠系统,在该系统中,当突然切断网络环境中的计算机电源后再次加上电源时,工作环境可恢复到先前的状态;以及在计算机一段时间内不使用时还可自动切换电源,并且当用户再次给计算机加上电源时该工作环境可恢复到先前的状态。
在本发明中,休眠系统指的是具有下述两种功能的系统:第一,紧急自动恢复功能,即当因电源中断或用户的错误突然切断电源时能把工作状态存贮在一个辅助存贮器(如硬盘)内,而后当再交给计算机提供电源时利用辅助存贮器中存贮的内容恢复电源切断前的状态;第二,节能功能,即在计算机使用中计算机经过一段预定的时间而没被使用时,在工作状态已存入辅助存贮器(例如硬盘)后就自动切断电源,而后当再次给计算机上加上电源时通过辅助存贮器的内容就可把工作环境恢复到电源切断前的状态。
还有,在本发明中,网络休眠系统指的是在网络环境使用计算机时支持休眠系统的系统。
短语“在网络环境中”指的是用户使用和一个网络关联的计算机的状态。
近来,在个人计算机中,具有紧急自动恢复功能和节能功能的休眠系统日趋流行,它的市场也越来越大。
和紧急自动恢复功能以及节能功能有关的类似现有技术有:1993年12月30日提交的名称为“用以在紧急情况下备份工作环境的辅助电源”、韩国发明专利申请No.93-31255;1994年6月20日提交的、名称为“时钟停止控制设备”的韩国专利申请No.94-13919;1993年3月4日提交的名称为“计算机外围设备的电源控制设备”的韩国实用新型申请No.93-3116;1992年8月13日提交的名称为“在计算机外围设备中产生电源中断信号的电路”的韩国专利申请No.9214590。
但现有技术中的这些技术遇到一些缺点,在网络环境下,尤其是在PC(个人计算机)LAN(局域网)环境下,当使用计算机过程中由于电源地突然中断或者是由于使用者的过失而切断了电源时,仅在和网络环境无关的状态下才能恢复数据,否则就要丢失数据。
本发明的一个目的是提供一种系统,其中当由于电源突然中断或由于使用计算机时因用户的过失而切断电源时,在再次接通电源后工作环境能恢复到先前的状态;并且在网络环境下,当计算机在一段预定时间未被使用时,电源自动切断,并且当再次接收通电源时工作环境恢复到先前的状态,从而将消耗的电能减至最小。
为了实现本发明的这一目的,按本发明的一个实施例的休眠系统包括:一个电源控制器,用于在指定的时间内在外围设备中没有发生任何一个事件时输出一个超时信号;一个用于备份数据的电源,当由于电能突然中断或者由于用户的过失切断电源时,该电源通过电池紧急提供的电能输出的电源中断检测信号,并且在施加了一个电源中断信号时切断该电源;一个控制器,它在从电源控制器输入电源中断检测信号或者从该电源输入超时信号时,在网络环境中的数据被备份后,通过输出电源中断信号使计算机处在休眠状态,并且,当再次加上电能时通过恢复所备份的数据使计算机在先前的网络环境和工作环境下操作;一个网络接口,用于网络连接;一个辅助存贮器,其中存有计算机的硬件状态和该工作环境的数据的备份;以及一个存贮器,其中存有某些休眠信息。
就实现本发明的目的措施而论,本发明的网络休眠模块的装入方法包括如下步骤:初始化步骤,在操作开始时初始化网络接口;禁止步骤,在估算是否允许网络休眼后,当允许网络休眠时,在掩码寄存器中禁止事件信号。存贮步骤,在存贮器网络休眠信息区存贮网络接口信息;另一个存贮步骤,在存贮器中存贮代表网络休眠模块已装入系统的信息以及网络休眠模块中的中断信息或地址;装入步骤,在存贮器中装入网络驱动器的处理程序;以及这样的步骤:在估算是否允许网络休眠后,当允许网络休眠时,在存贮器中装入网络休眠模块,而后终止操作。
为实现本发明的目的,本发明的挂起(suspend)方法包括如下步骤:备份数据的电源通过所加的电池的电能输出一个AC(交流)中断检测信号;在计算机操作期间的某段时间内没有任何事件发生时,电源控制器输出超时信号;在CPU中产生休眠中断,而后在产生AC电源中断检测信号和超时信号时,估算是否配备了休眠支持网络驱动器;在配备了休眠支持网络驱动器的情况下,调用网络休眠模块;在估算是否允许网络休眠而后确定出允许网络休眠的情况下,复位网络接口;在网络接口中存在本地存贮器(local memory)的情况下,在存贮本地存贮器的内容后禁止网络接口操作并返回到休眠模块;在存贮现行的计算机中硬件的整个状态后把存贮器中的所有内容存贮到辅助存贮器中;通过向备份数据的电源输出断电信号来中断备份数据的电源的电能;以及使计算机转向休眠状态。
作为实现本发明的目的的一项措施,本发明的恢复方法包括如下步骤:当在断电状态再次施加电能时,初始化并自检计算机;在不处于休眠方式的情况下通过按正常方式引导使工作环境恢复到断电前的状态,而在估算是否处在休眠方式后并确定处在休眠方式下时从辅助存贮器恢复所有的存贮器内容;在估算是否处在网络休眠状态后,在网络休眠状态的情况下调用网络休眠模块,如果调用了网络休眠模块,在估算是否允许网络休眠后,在允许网络休眠的情况下初始化网络接口;在网络接口中存在本地存贮器的情况下,恢复本地存贮器的内容,并且复位网络接口;在允许网络接口操作后返回到休眠模块;以后按休眠前的状态操作计算机。
图1是表示按本发明的一个优选实施例的网络休眠系统的一个方块图;
图2是表示按本发明的一个优选实施例的休眠系统中的备份数据的电源的一个方块图;
图3是表示按本发明的的一个优选实施例的网络休眠系统中的电源控制器的一个方块图;
图4是表示按本发明的一个优选实施例的网络休眠系统中的网络接口的一个方块图;
图5是按本发明的优选实施例的网络休眠模块的装入过程的流程图;
图6是按本发明的优选实施例的休眠模块的挂起过程的流程图;
图7是按本发明的优选实施例的网络休眠模块的挂起过程的流程图;
图8表示按本发明的优选实施例在断电情况下调用网络休眠模块的状态;
图9是按本发明的优选实施例的休眠模块的恢复过程的流程图;
图10是按本发明的优选实施例的网络休眠模块的恢复过程的流程图;
图11表示按本发明的优选实施例进行引导的情况下调用网络休眠模块的状态;
图12表示按本发明的优选实施例的网络休眠系统的中的RAM和ROM的存贮器映射图;以及
图13表示按本发明的优选实施例的网络休眠系统中的RAM和ROM的存贮器映射图。
如图1所示,按照本发明的网络休眠系统包括:控制器1、电源控制部分2、总线电源3、网络接口4、辅助存贮器5、和非易失存贮器6;电源控制部分2连到总线电源3,总线电源3用于备份连到总线的数据。
控制器1包括:CPU(中央处理器)11、辅助控制器12、RAM13、ROM14、I/O(输入/输出)15;辅助控制器指的是总线控制器、DMA控制器、中断控制器等等。
如图2所示,在按本发明的一个实施例的的网络休眠系统中,备份数据的电源3包括:一个AC(交流)电源31;一个线性转换整流器32;该整流器32包括连到AC电源31的两个输出端以及二极管(D31、D32)的变压器(TF),以及连到TF输出端的电容器(C31、C32);一个电池34和一个电池充电器33,它们和线性转换整流器32串接;一个电源状态检测器35,它也连到线性转换整流器32的输出端上;一个电源开关状态检测器36;一个DC(直流)转换控制器37,电源检测器35和电源开关状态检测器36的输出信号输入到DC转换控制器37上,并且至系统部分3C的电源中断检测器信号以及电源信号也加到DC转换控制器37上;一个DC/DC转换器38,它连接到电池充电器33的和DC转换控制器37的输出端,它的输出端通过两个二极管连接到主电源3A的桥式整流器3A1的输出端;一个主电源3A,AC的电源31的输出端连到桥式整流器3A1上,桥式整流器3A1的输出端连到电源3A2上;以及一个增扩口中断器3B,输出DC转换器38的工作环境的备份启动信号的DC转换控制器37的输出端通过电阻R32连到晶体管Q的基极,且场效应管FET的栅极和电源3A2的12伏输出端连到晶体管Q的集电极,电源3A2的5伏输出端连到FET的漏极,FET的源极连接到该增扩口3D。
电源3备份数据的这种技术见上述专利申请No.93-31255,题目为“用以在紧急情况下备份工作环境的辅助电源”。
如图3所示,按本发明的一个实施例的网络休眠系统中的电源控制器装置2包括:连接到数据总线的一个地址译码器21;一个掩码寄存器22;分别连到数据总线和地址译码器21的第一和第二寄存器23、24;输入端连到第一掩码寄存器22和事件信号线的一个与门28;输入端连到与门输出端的一个计数器24;连到第一时间寄存器23和计数器24的输出端的第一比较器25;以及连到第二时间寄存器26和计数器24的输出端的第二比较器27。
在本发明的这个实施例中,电源控制装置2包括如图3所述的各部分,但本发明的技术范围不限于此,电源控制装置2还可以用题目为“计算机外围设备中产生电源中断信号的电路”的韩国专利申请No.92-14590中所述的技术来实现。
如图4所示,在按本发明的一个实施例的网络休眠系统中的网络接口4包括:连接到总线的一个DC/AC变换器41;一个网络控制器42;连接到总线和网络控制器42的一个引导(boot)ROM 43和一个地址PROM 44;连到网络控制器42的一个振荡器46和一个变压器45;连接到总线和变压器45的第一端口4A;连到DC/DC变换器41和变压器45的收发两用装置4B;连接到收发两用装置4B的第二端口49;连接到网络控制器42的滤波器47;以及连接到滤波器47的第三端口48。
如图5所示,按本发明的一个实施例的网络休眠模块的装入过程包括如下步骤:在S50步操作启动;在S51步初始化网络接口;在S52步估算是否允许网络休眠;在S53步,在允许网络休眠的情况下,在掩码寄存器中禁止用于网络接口的事件信号操作;在S54步,将网络接口的信息存贮在存贮器的网络休眠信息区;在S55步,在系统中已装入了网络休眠模块的状况和网络休眠模块的中断信息或地址的状况被存入存贮器;在S56步,将网络驱动器的过程程序装入存贮器;在S57步估算是否允许再次休眠;在S58步,在允许网络休眠的情况下将网络休模块装入存贮器;以及在S59步,终止该操作。
如图6所示,按照本发明的一个实施例的挂起过程包括如下步骤:在S61-S64步,当在计算机操作期间电源断开时,备份数据的电源用电池所加的能量输出AC电源中断检测信号;在S65步,电源控制器在计算机操作的某段时间没有事件发生的情况下输出超时信号;在S66步,在产生AC电源中断信号或超时信号的情况在CPU中产生休眠中断;在S67步,估算是否配备了休眠支持网络驱动器;在S68步,在配备了休眠支持网络驱动器的情况下,调用网络休眠模块;在S69步,在该存贮器中存贮计算机中所有的硬件状态;在S6A步中,将计算机中每个存贮器的内容都存贮在辅助存贮器里;在S6B步中,将电源信号输出到电源以备份数据;在S6C步中,备份数据的电源切断;并且在S6D步中,计算机达到休眠状态。
如图7所示,按本发明的一个实施例的网络休眠模块的挂起过程包括:在S71步,进行调用;在S72步,估算是否允许网络休眠;在S73步,在允许网络休眠的情况下复位网络接口;在S74步,禁止网络接口操作;在S75步,在网络接口中存在本地存贮器的情况下存贮本地存贮器的内容;并且在S76步,返回到休眠模块。
如图9所示,按本发明的一个实施例的休眠模块的恢复过程包括:在S91步断开电源;在S92步,当再次提供的电源时对计算机进行初始化和自检;在S93步估算计算机是否是处在休眠方式;在S94步,在非休眠方式情况下进行正常引导过程;在S95步,在休眠方式情况下从辅助存贮器恢复所有存贮器的内容;在S96步,使工作环境恢复到电源断开前的先前状态;在S97步,估算计算机是否处在网络休眠状态;在S98步,在网络休眠状态的情况下调用网络休眠模块;并且在S99步,计算机按休眠前的状态操作。
如图10所示,按本发明的一个实施例的休眠模块的恢复过程包括:在S11步,进行调用;在S12步,估算是否允许网络休眠;在S13步,在允许网络休眠的情况下初始化网络接口;在S14步,在网络接口中存在本地存贮器的情况下恢复本地存贮器的内容;在S16步,允许网络接口操作;并且在S17步,返回到休眠模块。
如图12所示,按本发明的这个实施例的网络休眠系统中的RAM和ROM的存贮映射包括:中断矢量区、监视器/操作系统(OS)的处理区、操作系统区、网络驱动器区、网络休眠模块区、网络休眠信息区、网络软件区、自由空间区、和休眠模块处理区。
如图13所示,按本发明的一个实施例的网络休眠系统中的存贮映射包括:休眠建立区、休眠状态区、休眠参数区、网络休眠区、和网络休眠中断或网络休眠地址区。
计算机随电源接通而启动,并且按本发明的一个实施例的网络休眠系统通过将带有网络驱动器模块的网络休眠模块装入系统存贮器中而开始操作。
在图5中表示出网络休眠模块装入存贮器中的过程,并且说明如下:
首先,控制器中的CPU11初始化网络接口并进行自检。其次,通过估算非易失存贮器6中的休眠建立标志估算是否允许网络休眠。
在允许网络休眠的情况下,控制器1中的CPU11禁止图3所示的掩码寄存器22中的相应的标志操作以便禁止用于网络接口的事件信号的操作。
禁止该事件信号操作的理由如下:
网络一旦连到计算机,即使在不使用该网络时,也要通过网络接口4不断地接收数据。
顺便提一下,由于网络接口4在接收数据的时刻无条件地要产生中断,虽然计算机尚未使用,但电源控制装置2对将要操作的计算机也将作出错误的解释。
因此,仅在网络接口4使用图3所示的掩码寄存器22禁止了相应的中断(即,相应的事件信号)后的某段时间仍未使用计算机时才能自动中断电源。在禁止事件信号操作后,控制器1中的CPU11在图12所示的RAM中的网络休眠区存贮相应的信息,例如:用于网络接口的中断信号、I/O地址、直接存贮器存取,存贮信息等。然后,控制器1中的CPU11在非易失存贮器上存贮有关网络休眠的信息。这时,当利用网络休眠时,应将网络休眠中断矢量加到(或改变为)图12所示的中断矢量表上。
在系统存贮器中建立了网络驱动器模块和网络休眠模块后,控制器1中的CPU11停止操作。
如上所述,在网络休眠系统启动它的操作后,当控制器1作为一个计算机操作时,如果电源的中断是由于电源突然间断,或者在某段时间内电源未被使用产生的,则通过在存贮器中建立网络休眠模块来调出和执行图6所示的休眠模块的中止过程S67和S68。
如果在操作期间由于电源的突然间断而中断了电源,备份数据的电源3在通过电池向系统提供电源后产生AC电源中断检测信号。
在电源中断的情况下,备份数据的电源3在通过电池向系统提供电源时产生AC电源中断检测信号的整个操作过程如以下所述:
如果电能从AC电源31加到电源开关39和线性转换整流器32上,则备份数据的电源3启动它的操作。
电路的操作可分为四种情况:情况(A)-加上电源并且电源开关接通;情况(B)-加上电源但电源开关断开;情况(C)-由于电能间断或疏忽致使AC电源31中断而未加上电源;情况(D)-未加上电源但电源开关断开。
情况(A)-加上电源并且电源开关接通
在这种情况下,由AC电源31提供的AC电能通过电源开关39加到主电源3A上,通过主电源3A中的桥式整流器3A1整流交流电后电源3A2产生5伏和12伏的直流电。
产生的直流电通过加到扩展口3D使计算机操作,给扩展口3D可提供扩展卡,例如系统部分3C、视频卡、音乐卡、传真/调制解调器卡等。还有,AC电源31提供的交流电在经线性转换整流器中的变压器TF降压后通过二极管D31、D32和电容器D31、C32整流成直流电。
将线性转换整流器3C的直流电提供给电池充电器33使电池充电,并且如果电源状态检测器35估算出交流电的状态是正常的,则通过DC转换控制器37停止DC/DC变换器38的操作,从而将一个低电平信号从DC/DC变换器38输出到扩展口中断器3B。
如果从DC/DC变换器38输入该低电平信号,在扩展口中断器3B中的晶体管Q截止,并且FET导通,于是将5伏的直流电从电源3A2提供给扩展口3D。
情况(B)-加上电源并且电源开关39断开
因为用户断开了电源开关39,所以在切断AC电源31的电能的条件下主电源3A不工作。但AC电源31的电能通过线性转换整流器32整流成直流电并且将整流后的直流电提供给了电池充电器,使电池充电。如果电源状态检测器35估算出交流电的状态正常,则通过中止DC/DC变换器38可使电池34不放电。
情况(C)-未加上电源并且电源开关接通
在这种情况下,即AC电源31由于电能突然中断或计算机操作期间用户的过失而被断开,主电源3A和线性转换整流器32由于AC电源的中断而停止操作,于是加到系统端口3C和扩展口3D的电能可能会逐渐衰减。还有,因为线性转换整流器32没有产生直流电,所以电池充电器33停止了操作。
这时,电源状态检测器35估算出交流电是正常的,并且电源开关检测器36估算出电源开关39是接通的,于是DC转换控制器37产生一个控制信号去操作DC/DC变换器38。
同时,DC转换控制器37向系统部分3C输出一个AC电源中断检测信号。所说系统部分3C指的是图1中除了备份数据的电源3以外的所有组成部分。如果向DC/DC变换器38输入DC转换控制器37的一个控制信号,则通过DC/DC变换器38将给电池34充电的直流电转换成期望的直流电,随后通过两个二极管将其提供给主电源3A的桥式整流器3A1的输出端。
如上所述,主电源3A中的电源3A2是由DC/DC变换器38提供的直流电操作的,于是电源3A2的被衰减的输出电能再次提高了。
因此,从DC转换控制器37输入的AC电源中断检测信号和在系统部分3C中从电源3A2提供的5伏和12伏的直流电能够备份该工作环境。
另一方面,由于给电池34充电的电能不足以操作包括扩展口3D在内的整个系统,所以通过AC电源中断检测信号使扩展口中断器3B中的晶体管Q导通、FET截止,因此而可不向扩展口3D提供电源3A2的5伏直流电。
情况(D)-未加上电源并且电源开关39断开
在这种情况下,因为没有连接AC电源31并且电源开关39断开,所以主电源3A和线性转换整流器32都不工作。
另一方面,电源控制器2在某段时间内没有输入事件信号的情况下要产生超时信号。
下面参照图3说明电源控制器2的构成。
地址译码器21对地址进行译码,以便从由址总线输入的地址信号(ADRS)指定每个寄存器22、23、26的地址。
通过从地址译码器21输入的地址信号对掩码寄存器22、第一和第二时间寄存器23、26进行选择,并且在建立时建立总要输出的初始值。
在掩码寄存器22中,建立可屏蔽事件信号的信息,在第一和第二时间寄存器中建立参考时间值。
当在与门28中事件信号和掩码寄存器22的内容的逻辑积为“1”时,计数器24复位为“0”,这就是说,从外围设备输入了中断信号。
如果与门28中事件信号和掩码寄存器22的内容的逻辑积为“0”,即没有从外部设备输入中断信号,或者说输入了在掩码寄存器22中被屏蔽的中断信号,则计数器24继续计数。如果计数器24的值与第一时间寄存器23的值相同,即在参考时间内没有从外部设备输入在掩码寄存器22中未加屏蔽的中断信号,则第一比较器25输出超时信号。
如上所述,备份数据的电源3输出的AC电源中断检测信号和电源控制器2输出的超时信号都通过或门和系统总线输入到控制器1中的CPU11,以此作为休眠中断信号。
如果输入了这个休眠中断信号,控制器1中的CPU11就要估算是否配备了休眠支持网络驱动器,并且在配备了休眠支持网络驱动器的情况下调用如图8所示的网络休眠模块的中止过程。
如果调用了网络休眠模块的挂起过程,则如图7所示执行网络休眠模块的挂起过程(S71-S76)。
首先,控制器1中的CPU11通过估算是否允许场非易失存贮器6的休眠建立标志操作来估算是否允许休眠。
在允许网络休眠的情况下,控制器1中的CPU11复位网络接口4,在此之后禁止网络接口4的操作。
在这一步,如果本地存贮器仍旧在该网络接口内,则存贮本地存贮器的内容。
在完成网络休眠模块的挂起过程后,计算机返回到休眠模块。在这一步,在没有配备休眠支持网络驱动器、或者计算机如上所述从网各休眠模块的中止过程返回的情况下,控制器1中的CPU11将计算机的现行硬件状态存贮在RAM13中,然后把现行的计算机存贮器的所有内容都存贮在辅助存贮器5中。接下来,控制器1中的CPU11向支持数据的电源3输出该电源中断信号。如果输入了电源中断信号,则支持数据的电源3中断了电池34和电源3A2的电能,并使计算机进入休眠状态。
下参照图2对如上所述的备份数据的电源3在输入电源中断信号情况下中断电池电能的操作进行说明:
如果在终止了对工作环境的备份后输入了电源中断信号,则DC转换控制器37停止DC/DC转换器38的操作。于是,因为切断了电池34的电能,所以不可能提供5伏和12伏的直流电。还有,如果将电源中断信号输入到电源3A2,则通过中断电源3A2而中断了电能的施加。另一方面,如果在断开计算机电能的休眠状态用户再次施加电能或输入数据,则按以下所述调用图9所示的休眠模块的恢复过程S93-S99:
如果再次加电,则控制器1中的CPU11启动计算机并且自检,而后估算计算机是否处在休眠方式。
若该状态没有处在休眠方式,则控制器1中的CPU11按正常方式引导计算机。若该状态处在休眠方式,则控制器1中的CPU11通过把存贮器的所有内容都存贮在RAM中的方式将计算机的工作环境恢复到先前的状态。
然后,控制器1中的CPU11通过估算非易失存贮器的休眠标志是否被允许从而来估算该状态是否处在网络休眠状态,并且在它处在网络休眠状态的情况下调用图11所示的网络休眠模块的恢复过程。
如果调用了网络休眠模块的恢复过程,则按以下所述完成网络休眠模块的恢复过程S11-S17:
首先,控制器1中的CPU11估算是否允许网络休眠。若允许网络休眠,则控制器1中的CPU11初始化网络接口4。若在网络接口4中存贮在本地存贮器,则在这一步还要恢复它的内容。
然后,控制器1中的CPU11复位网络接口4,而后允许该网络接口4操作。
在完成以上所述的网络休眠模块的恢复操作之后,计算机返回到该休眠模块。
如果计算机从休眠模块的恢复过程返回,则控制器1中的CPU11继续按休眠前的状态操作计算机。
如上所述,在本发明的一个实施例中,如果在网络环境下的计算机中的电源突然中断并再次接通,则工作环境可在恢复到先前的状态;还有,如果计算机在网络环境中经过一段时间没有操作,则电源可自动中断,而后如果再次加上电源,则计算机可恢复先前的状态,因此可节省所耗的电能。
在具有紧急时自动支持功能和节约电能功能的计算机领域可以利用本发明的这一效果。