计算机和计算机的电源控制方法

文档序号:6465950阅读:459来源:国知局
专利名称:计算机和计算机的电源控制方法
技术领域
本发明涉及一种计算机和一种计算机的电源控制方法,特别是涉及一种其中刚好在切断计算机的电源之前执行预定过程的计算机的电源控制方法,以及应用这种电源控制方法要的计算机。
个人电脑(PC)中提供一种芯片(以下称为“核心芯片”),上面安装一种用于控制PC的电源状态一包括存储PC的当前电源状态的内部寄存器的操作一的逻辑电路(以下称“状态机”),PC的电源状态管理一包括电源的开/关一由核心芯片的状态机进行。与核心芯片的状态机的接口(I/F)是标准化的,在符合APCI(高级配置和电源接口)标准的PC中,对状态机接口I/F的控制由操作系统(OS)管理。PC的断电(power-off)是通过在OS执行各种与断电有关的终止过程后指令电源单元通过状态机切断(turn-off)电源而进行的。
所以,如果在符合APCI标准的PC中,当PC的电源被切断时,由BIOS(基本输入/输出系统用于控制每个诸如键盘或软盘驱动器的硬件的输入/输出操作的程序)执行一个特殊的过程,诸如AML(用于执行用ASL(ACPI源语言)描述的面向系统的过程一组程序代码)(ACPI机器语言BIOS部分),就有BIOS进行的处理可能会被在它们进行的处理之后执行的OS的终止过程无效的问题。
举例来说,已知有一种能让与断电状态的PC相连的LAN(局域网)的管理员通过LAN远程地开通(turn-on)PC的电源的功能(此后称为WOL(LAN上唤醒)功能),但是,要使用这个WOL功能,PC的网络适配器的WOL功能需要以前是使能的(enabled)。
然而在符合ACPI标准的PC中,一直有下列问题。要关闭计算机系统,OS在PC的电源就要被切断之前停用(disable)除电源开关的开通以外的通电参数(包括由上述WOL功能进行的通电(power-on)),所以,即使PC的电源的切断被检测到,WOL功能被BIOS启用,WOL功能也被OS的终止过程停用并且电源被切断;因此,WOL功能不能被使用。
为了解决上述问题,需要执行一个诸如在OS的终止过程的执行之后启用WOL功能的特殊过程,但是要求提供新的机制来在OS的终止过程的执行之后执行该特殊过程,因为当前的OS不配备用于启动在终止过程的执行之后执行该特殊过程的程序的I/F。
作为上述机制的一个例子,采用I/O陷阱(trap)功能,有可能在核心芯片的内部寄存器(由状态机操作的寄存器)每次被访问时产生一个启动预定程序(例如BIOS)的中断,如果判定当前的时机就是刚好在PC的断电之前的时机,就根据进行存取时所处的地址和写入该地址的内容,执行一个特殊过程。
然而,上述方法有个问题,即增加了PC的CPU上的负荷,这是因为,核心芯片的内部寄存器每次被访问时,产生启动预定程序的中断。此外,因为OS的操作在CPU执行该预定程序时停止,所以也要求将该预定程序设计得使得该过程能在不对OS的操作造成影响的短时间内完成,这就导致需要大量的工作,诸如设计和核验。
本发明就是鉴于上述事实而作出的,其目的是获得一种计算机和一种计算机的电源控制方法,使得能刚好在计算机的电源被切断之前执行预定的过程,而不导致诸如负荷增加之类的后果。
与本发明相关的计算机包含控制装置,用于当断电指令根据操作系统的指令输出到电源单元时,中断断电指令向对计算机供电的电源单元的输入;用于生成计算机的硬件复位。如上所述,通过中断断电指令向电源单元的输入,电源单元继续向计算机供电,。此外,硬件复位还启动一个在计算机的断电的普通操作序列中一般不启动的过程例程(与本发明有关的处理装置)。
在本发明中,计算机的电源是在执行预定过程之后由因硬件复位而启动的该处理装置切断的。因为在操作系统进行的过程完成之后,按照操作系统的指令向电源单元输出要求切断计算机的电源的断电指令,所以预定过程能在计算机的电源就要被切断之前(就是说,在操作系统进行的过程完成之后)执行。
因为当切断计算机的电源时只向电源单元输出一次断电指令并且与本发明相关的控制装置可以由硬件来配置,所以,施加在计算机的CPU上的负荷不增加一这与在每次访问特定寄存器时就产生中断的那种情况不同。所以,按照本发明,可以实现在不引起负荷增加的条件下在计算机的电源就要被切断之前执行预定过程。
如上所述,当向电源单元输出断电指令时,操作系统为切断计算机的电源而执行的过程已经完成,所以,即使在断电指令被输出时生成硬件复位,操作系统进行的过程中也没有影响。此外,与本发明相关的处理装置还可以包含软件,例如可通过将该软件置于在发生硬件复位(所谓的POST通电自检)时启动的BIOS中,实现由硬件复位对该处理装置的启动。
此外,断电指令一般是按照操作系统的指令从控制计算机的电源状态的电源管理单元向电源单元输出的。在这种情况下,该处理装置可被安置在控制计算机的电源状态的电源管理单元与电源单元之间,可被配置成能中断从电源管理单元输出的断电指令向电源单元的输入。
此外,因为电源管理单元一般被配置成在它识别到电源状态有错时生成硬件复位,所以,在一个在控制计算机的电源状态的电源管理单元与电源单元之间提供控制装置的实施例中,要在断电指令向电源单元输出时生成计算机的硬件复位,最好这样来配置控制装置-使得能在电源管理单元输出断电指令时,为生成硬件复位而向电源管理单元输出一个表示故障电源状态的伪电源状态信号,然后将一个表示通电指令的伪通电信号输出到电源管理单元。
如上所述,因为能通过输出一个表示故障电源的伪电源状态信号来生成硬件复位,所以可以简化控制装置的结构。此外,电源管理单元在接到操作系统要求切断电源的指示时继续向电源单元输出断电指令,但是断电指令向电源单元的输出也因输出表示通电指令的伪通电信号而被阻止。
由于伪电源状态信号的影响,由电源管理单元控制的计算机的电源状态与实际的电源状态之间失配;但是,如果输出一个代表正常电源状态的伪电源状态信号,由电源管理单元控制的计算机的电源状态就改变,这样就能解决失配问题。
此外,如果与本发明相关的预定过程是一个要在计算机的电源被切断时固定执行的过程,就可以将与本发明相关的控制装置不停地运行着;但是,如果与本发明相关的预定过程是一个仅当被指示时才执行的过程(例如,一个为启用通过网络远程开通计算机的电源而改变网络适配器的设置的过程,等等),该处理装置最好有执行预定过程的指示和检测到操作系统执行的切断计算机电源的过程时,启用控制装置并在非易失性存储器中存储预定信息。
这就使得能仅当如果被指令执行预定过程,才在计算机电源被切断时生成硬件复位。此外,通过在非易失性存储器(例如CMOS(一种与后备电源相连的存储器)或EEPROM)中存储预定信息,就能在处理装置被硬件复位启动时,根据存储器中是否存储了预定信息而容易地确定是这是普通硬件复位还是执行预定过程的硬件复位。如果处理装置是硬件复位启动的并且存储器中存储着预定信息,就可以在执行预定过程和停止控制装置的操作之后切断计算机电源。
此外,作为与本发明相关的计算机,最好是例如符合ACPI标准的计算机。
因为与本发明相关的计算机的电源控制方法在按照操作系统的指令向电源单元输出断电指令时为向计算机提供电源而中断断电指令向电源单元的输入,生成计算机的硬件复位,在执行由硬件复位启动的过程例程中的预定过程之后切断计算机电源,所以,就能实现刚好在计算机的电源被切断之前执行预定过程,而不导致前文所述的负荷增加之类的后果。
现在将结合附图来详细说明本发明的一个实施例。附图简介

图1是表示与该实施例相关的计算机系统的示意性结构的框图;图2是表示笔记本个人电脑的外观的透视图;图3是表示关机复位逻辑电路的构造的示意性框图;图4的示意性框图表示一例信号线-PME及与信号线-PME相连的硬件部件,用于解释从电源状态S1-S5和G3恢复到电源状态S0的操作;图5是表示断电过程的内容的流程图;图6是用于解释关机复位逻辑电路的操作的定时图。
标号描述10…计算机系统14…CPU42…网络适配器44…I/O桥
52…关机复位逻辑电路54…电源电路56…断电信号门电路58…电源良好信号控制逻辑电路60…电源开关信号控制逻辑电路68…电源管理单元76…门阵列逻辑电路80…内置控制器74…网络适配器图1中示意性表示了包含适合实现本发明的计算机系统10的每个子系统的硬件配置。用于实现本发明的一例计算机是笔记本类型的PC2(参看图2),它符合OADG(PC开放体系结构开发商组织)的规范,上面安装美国微软公司的“windows 98或NT”或者美国IBM公司的“0S/2”作为操作系统(OS)。下面说明计算机系统10的各部分。
CPU 14是整个计算机系统10的大脑,在OS的控制下执行各种程序。CPU 14例如可以是因特尔公司的CPU芯片“Pentium”、“MMX技术Pentium”或“Pentium Pro”,或者是诸如AMD公司等其它公司制造的CPUs,或者是IBM公司的“Power PC”。CPU 14包含L2(二级)高速缓存,它是一种高速存储器,用于通过暂非常有限的程序码或数据而缩短访问主存储器的总体时间。L2高速缓存通常由SRAM(静态RAM)芯片构成,其存储容量例如是512KB或更大。
CPU 14通过三层总线与下文描述的每个部件互连,这三层总线是,FS(前端)总线18,它是与处理器直接相连的总线,处理器被直接连接到自身的外部引脚;PCI(外围部件互连(总线20,作为用于高速I/O设备的总线;ISA(工业标准体系结构)总线22,作为用于低速I/O设备的总线。
FSB 18和PCI总线20,由通常被称为存储器/PCI控制芯片的CPU桥(主-PCI桥)24互相连接。本实施例的CPU桥24包含一个存储控制器操作程序,用于控制对主存储器16的存取操作;一个数据缓冲器,用于缓和FSB 18与PCI总线20之间数据传输速度之类的差异,并且例如可使用因特尔公司制造的440BX等。
主存储器16是个可写存储器,被用作向其读入CPU 14的执行程序的区域,或者向其写入执行程序的处理数据的工作区。主存储器16一般由若干DRAM(动态RAM)芯片构成,例如达到32MB的标准,可扩展到256MB。最近几年,为了满足提高速度的需要,DRAM芯片已经改变成高速分页DRAM、EDO DRAM、同步DRAM(SDRAM)、猝发式(burst)EDO DRAM、RDRAM等等。
这里所说的执行程序包括诸如Windows 98的OS、用于外围设备的硬件操作的各种设备驱动程序、以具体应用为目标的应用程序和存储在快速存储器72中的诸如BIOS的固件。
PCI总线20是一种能较快地进行数据传输的总线(例如,总线宽度32/64位,最大操作频率33/66/100MHz,最大数据传输速度132/264MBps),以较高速度驱动的诸如卡总线控制器30的PCI设备与PCI总线相连。PCI体系结构起源于美国因特尔公司的建议,它实现了所谓的PnP(即插即用)功能。
视频子系统26是一个用于实现与视频相关的功能的子系统,它包括视频控制器,视频控制器实际处理来自CPU工资14的画图指令,临时将处理过的画图信息写入视频存储器(VRAM),从VRAM读出画图信息并将其作为画图数据输出到液晶显示器(LCD)28(参看图2)。另外,视频控制器能通过附属的数-模转换器(DAC)将数字视频信号转换成模拟视频信号。模拟视频信号经信号线被输出到CRT端口(未予示出)。
另外,与PCI总线20相连的分别还有,卡总线控制器30、音频子系统32、停放站接口(docking station interface)(Dock I/F)34和小型PCI插槽36。卡总线控制器30是一种专用控制器,用于将PCI总线20的总线信号直接与PCI卡总线插槽38的接口连接器(卡总线)连接。PCI卡总线插槽38被安置在PC 12的主体的壁面中,插槽内装配符合PCMCIA(个人计算机存储器协会)/JEIDA(日本电子工业发展协会)规定的规范的PC卡40。
停放站I/F 34是用于连接PC 12与连接站(未予示出)的硬件,当PC 12被设置在连接站上时,连接站的内部总线就被连接到停放站I/F 34,与连接站的内部总线相连的各种硬件部件(例如图4中所示的连接站82的网络适配器84)就通过dock I/F 34与PCI总线20相连。此外,与小型PCI插槽36相连的,例如是用于将计算机系统10与网络(例如LAN)连接的网络适配器42。
在与该实施例相关的网络适配器42和84中,提供实现WOL功能的电路,WOL功能使与PC相连的LAN的管理员能通过LAN远程地开通处于断电状态中的PC的电源。在网络适配器42和84中,提供一个用于启用/停用WOL功能的WOL设置区。通过向内部寄存器中的WOL设置区写入表示启用WOL功能的信息(相对于本发明的预定过程),就能使WOL功能被启用。
PCI总线20和ISA总线22由I/O桥44互连。I/O桥44包括作为PCI总线20与ISA总线22之间的桥路的功能、DMA控制器功能、可编程中断控制器(PIC)功能、可编程间隔定时器(PIT)功能、IDE(集成的驱动电子器件)接口功能、USB(通用串行总线)功能和SMB(系统管理总线)功能,也包括一个实时时钟(RTC),例如可以采用因特尔公司制造的称为PIIX4的器件(核心芯片)。
DMA控制器功能是在没有CPU 14的干预的情况下执行外围设备(例如FDD)与主存储器16之间的数据传输的功能。此外,PCI功能是响应外围设备的中断请求(IRQ)而执行预定程序(中断处理程序)的功能。此外,PIT功能是按预定时间间隔生成定时信号的功能,生成频率是可编程的。
此外,与由IDE接口功能实现的IDE接口相连的是IDE硬盘驱动器(HDD)40,IDE CD-ROM驱动器48也通过ATAPI(AT连接分组接口-AT Attachment Packet Interface)连接与之相连。另外,还可以连接另一种类型的IDE设备,诸如DVD(数字视盘或数字多用盘)驱动器,以替代IDE CD-ROM驱动器48。外部存储设备,诸如HDD 46或COM驱动器48,例如被安装在PC 12的主体中被称为“媒体机架”或“设备机架”的外壳中。作为标准设备的这些外部存储设备与诸如FDD和电池组的其它设备可能是可交换的,可能是不相容的。
此外,I/O桥44中还提供一个USB端口,该USB端口与例如在PC 12的主体的壁面中提供的USB连接器之类相连。USB支持在通电时接入或拆卸新的外围设备(USB设备)的功能(热插功能)和自动识别新连接的外围设备并重新设置系统配置的功能(即插即用功能)。一个USB端口最多能菊链式地连接63个USB设备。USB设备包括各种例子,诸如键盘、鼠标、游戏杆、扫描仪、打印机、调制解调器、显示监视器和输入板。
此外,EEPROM 94也通过SM总线与I/O桥44连接。EEPROM 94是一种存储器,用于保存由用户登记的口令或监管口令(supervisorpassword)、产品系列号,它是非易失性的,其存储内容是电可重写的。
此外,I/O桥44还通过关机复位逻辑电路52连接到电源线路54(相当于与本发明相关的电源单元)。如图3中所示,电源电路54包括诸如AC/DC转换器62的电路、对电池64充电的充电器和DC/DC转换器66,用于生成计算机系统10中使用的诸如5V或3.3V的直流恒压。另一方面,在构成I/O壳44的核心芯片中,提供一个用于控制计算机系统10的电源状态的内部寄存器PM CTL REG,一个用于控制计算机系统10的电源状态、包括内部寄存器PM CTL REG的操作的逻辑电路(状态机)(以下将这个内部寄存器和逻辑电路通称为电源管理单元68)。
电源管理单元68和电源电路54通过关机复位逻辑电路52发送和接收各种信号,电源管理单元68通过信号发送和接收,识别从电源电路54向计算机系统10的供电的实际状态,电源电路54按照电源管理单元68的指令控制向计算机系统10的供电。
关机复位逻辑电路52相当于本发明的控制装置,它包含的硬件部件诸如有断电信号门逻辑电路56、电源良好信号控制逻辑电路58和电源开关控制逻辑电路60。关机复位逻辑电路52是由BIOS通过GPIO 88被启用/停用于操作的;当被停用时,它直接传输在关机复位逻辑电路52与电源电路52直接发送和接收的信号。后文将说明当被启用时关机复位逻辑电路52的各逻辑电路的操作。
ISA总线22是一种数据传输速度比PCI总线20低的总线(例如,总线宽度16位,最大数据传输速度4MBps),它被用来连接运行速度较低的外围设备,诸如键盘/鼠标控制器(二者都未予示出),以及超级I/O控制器70、由EEPROM之类构成的闪存ROM 72、CMOS 74、门阵列逻辑电路76。
I/O端口78与超级I/O控制器70相连。超级I/O控制器70控制驱动软盘驱动器(FDD0、通过并行端口的并行数据的输入/输出(PIO)、通过串行端口的串行数据的输入/输出(SIO)。
闪存ROM 72是用于存储诸如BIOS的程序的存储器,它是非易失性的,其存储内容是电可重写的。此外,CMOS 74有一个其中的半导体存储器与后备电池相连的结构,它起着非易失性和快速存储器的作用。在CMOS 74的存储区中,提供一个WOL功能位,用于保存表示WOL功能是否被使用的标志;一个关机复位位,用于保存表示是否已经进行关机复位(下文将作说明)的标志。存储区中存储上述标志和其它各种信息。
门阵列逻辑电路76是实现上述WO功能的逻辑电路,与门阵列逻辑电路76相连的内置控制器80控制键盘(未予示出),并与门阵列逻辑电路76合作,负责一部分电源管理功能。
另外,要构成计算机系统10,还需要图1所示的以外的其它电路。然而,这些都是该技术领域的熟练人员已知的,不是本发明的要点,所以不在本说明书中进行说明。此外,注意到在各图中只表示了的各硬件部件之间的部分联系,这是为了避免各图混淆不清。
现在说明本实施例的操作。与本发明相关的计算机系统10是个符合ACPI标准的PC,如下面的表一所示,定义有若干个电源状态(S0-S5、G3)。表一
表一中的“APM”表示各电源状态S0-S5和G3与APM(高级电源管理)标准中的各电源状态的对应关系。
在与本发明相关的计算机系统10中,由状态S1、S2和S3向状态S0的恢复是由是PCI总线20的一部分的信号线-PME(电源管理事件)和与信号线-PME相连的内置控制器80实现的。就是说,如图4所示,与信号线-PME相连的,有卡总线控制器30、音频子系统32和网络适配器42,如果PC 12被设置在连接站82上,则与连接站82的内部总线相连的网络适配器84也与信号线-PME相连。
如果电源电路54与AC电源相连,则内置控制器80和门阵列逻辑电路76在任何电源状态下都总是被供电,信号线-PME被保持在高电平(不活动)。每个与信号线-PME相连的硬件部件,如果检测到要将计算机系统10的电源状态恢复到S0的一个预定事件的生成,就将信号线-PME置于低电平(活动)。内置控制器80与核心芯片(I/O桥44)的电源管理单元68相连,如果它检测到信号线-PME已经变得活动,就通知计算机系统10要将电源状态恢复到S0的该预定事件的生成。计算机系统10收到这个通知后,就执行将电源状态恢复到S0的预定过程(例如向电源电路54输出一个指令信号)。
另外,电源管理单元68和电源电路54还连接一个信号线,以便输入因电源开关的开通而生成的信号-PWRON01,以及通过信号-PWRON01向电源管理单元68和电源电路54的输入而实现电源状态S4、S5和G3向电源状态S0的恢复。对于电源状态S4来说,也能用作为触发器包含在核心芯片(I/O桥44)中的、设置成实时时钟的定时器来进行恢复。
此外,与本实施例相关的门阵列逻辑电路76被提供用来实现通过LAN和网络适配器42或48从外部启动处于电源状态S4、S5或G3的计算机系统10向电源状态S0的恢复的WOL功能。
就是说,门阵列逻辑电路76的输入端与信号线-PME相连,门阵列逻辑电路76的输出端与通过OR(或)电路86的信号PWRON01的信号线相连。网络适配器42和84如果在WOL功能启用时被指令通过网络执行WOL,就使信号线-PME活动,如果门阵列逻辑电路76这个时刻是启用的,门阵列逻辑电路76就检测到信号线-PME已经变得活动,于是就通过OR(或)电路86将信号-PWRON02输入到电源管理单元68和电源电路54-如开通电源开关时的那样。这就如开通电源开关时的那样,导致电源管理单元68和电源电路54工作,将处于电源状态S4、S5或G3的计算机系统10恢复到电源状态S0。
由表一显然可见,按照ACPM标准,从电源状态S5和G3恢复到电源状态S0“仅仅是电源开关的通电”。为此,符合ACPM标准的OS在向电源状态S5或G3转换时执行一个过程,其目的是忽略作为从电源状态S5或G3恢复到电源状态S0的条件的、开通电源开关以外的事件的发生;该过程包括一个向网络适配器42和84的WOL设置区写入停用WOL功能的信息的过程。
上述过程是刚好在OS向计算机系统10发出停止提供电源(切断电源)的指令之前被执行的,电源在上述过程被执行之后,没有启动BIOS就被切断,所以,BIOS要改写曾经由OS写到WOL设置区的信息,以便启用WOL功能,那是有困难的。所以,与本发明相关的BIOS与关机复位逻辑电路52合作,刚好在转换到电源状态S5或G3之前生成一个硬件复位,由此改写曾经被写到WOL设置区的信息。
现在参看图5的流程图,来说明当检测到导致由电源状态S0(正在运行的)向电源状态S5或G3转换的事件(例如电源开关被关掉,借助软件用键盘或鼠标的操作给出断电指令,等等)时,由CPU 14执行诸如OS和与本实施例有关的BIOS的程序而进行的断电过程和关机复位逻辑电路52的操作。
在图5的流程图中,诸如关机复位逻辑电路的硬件进行的过程,由CPU 14执行AML而进行的过程,由CPU 14执行PM BIOS(电源管理BIOS)而进行的过程,以及由CPU 14执行POST而进行的过程,与由CPU 14执行诸如OS的其它程序而进行的过程在表示上作了区别。
AML、PM BIOS和POST都是通称为BIOS的程序(代码)的一部分。AML是通过ASL语言描述OS在各种条件下一这各种条件的每一个被作为一个单位(称为过程(method))-把什么过程作为面向系统的过程执行的程序码,PM BIOS是由被称为SMI(系统管理中断)的中断启动的程序,POST是在计算机系统10的电源被开通时或生成硬件复位时被启动的程序。
当检测到导致由电源状态S0向电源状态S5或G3转换的事件时,首先,在步骤200,由OS-确切地说-由执行OS的程序的CPU 14,执行关闭计算机系统10的预处理(OS关掉计算机电源的过程在本实施例中,为方便说明,将该过程划分为第一过程和第二过程)。当第一过程结束时,AML被OS调用。为了从电源状态S0转换到另一个电源状态,要以一个代表目标电源状态的参数,调用AML的一个被称为PTS(准备睡觉)的过程(method)。
具体来说,通过用特殊的编译程序来对用ASL描述的源代码进行中间编码而获得AML,AML经压缩后被存储在闪存ROM 72(或普通ROM)中。被读出时,在存储器上被扩展成要由OS读取的代码,当OS像解释程序一样地读取和执行该扩展的代码时,被说成是AML的该过程(本例中是过程PTS)就得到执行。
在本实施例中,在执行用于关闭计算机系统10的预定过程时要进行对CMOS 74的访问(详情以后作说明),但是,该AML中的对硬件操作有限制,访问CMOS 74有困难。所以在本实施例中,这样来配置AML的过程PTS,使得在过程PTS中产生一个SMI(中断),以启动BIOS的另一个对硬件操作的限制较少的程序(确切地说,PMBIOS),在下一个步骤202中,PM BIOS被AML的过程PTS启动,CPU14对PM BIOS的程序的执行,实现各过程步骤204-210。
在步骤204中,检查在CMOS 74的WOL功能位中保存的标志,在下一个步骤206中,根据该标志的值确定是否执行用于启用网络适配器42(或网络适配器84)的WOL功能的过程。
如果在CMOS 74的WOL功能位中设置的标志是个表示使用WOL功能的值,就能确定这表明要执行采用WOL功能(包括下文作说明的关机复位)的过程。因此,在上述情况中,在步骤206中的判定是肯定的;作为进行关机复位的过程,在步骤208中通过GPIO 88启用关机复位逻辑电路52(该步骤208相当于启动与本方面有关的控制装置);在下一个步骤210中,将CMOS 74的关机复位位中保存的标志改变为表示已经进行了关机复位的值(该步骤210相当于在与本方面有关的非易失性存储装置中存储预定信息)。
另外,如果在CMOS 74的WOL功能位中设置的标志是个表明不使用WOL功能的值,步骤206中的判定就是否定的,就不执行步骤208和210中的过程,关机复位逻辑电路52被保持在停用状态,以便中断关机复位。
当上述过程进行时,控制被返回到OS,在下一个步骤212中,由OS进行关闭计算机系统10的后处理(第二过程)。为从电源状态S0转换到电源状态S5或G3,在步骤212中也执行向网络适配器42和84的WOL设置区写入停用WOL功能的信息的过程。
当关闭计算机系统10的后处理全部完成时,在下一个步骤214中由OS进行关机过程。这个关机过程是通过向电源管理单元68位于预定地址的内部寄存器PM CTL REG写入预定信息而执行的。
随后,电源管理单元68检测到关闭计算机系统10的指令已经发出,它就将向电源电路54输出的信号-SUSC(指示计算机系统10处于断电状态的信号(相当于断电指令)的信号,参看图3)和信号-SUSB(指示计算机系统10处于暂停状态或断电状态的信号的信号,参看图3)两个都变成活动的(低电平)。
因上述信号的输出而进行的硬件操作与关机复位逻辑电路52是启用的还是停用的有关。如果关机复位逻辑电路52是停用的,就执行平常的关机序列,由关机复位逻辑电路52直接发送在电源管理单元68与电源电路54之间发送或接收的信号,由此使激活的信号-SUSC(和信号-USUB)能穿过中继信号-USUC和信号-USUB的断电信号门逻辑电路56被直接输入到电源电路54,电源电路54接到该信号时,停止向计算机系统10供电(步骤218)这导致计算机系统10从状态S0转变到状态S5或G3。
另一方面,如果关机复位逻辑电路52是被禁止的,关机复位逻辑电路52的断电信号门逻辑电路56就中断发送从电源管理单元68输入(分别被称为信号-SUSC#PIIX4和信号-SUSB#PIIX4)的信号。这就使从电源电路54输入的信号-SUSC得以保持不活动(高电平)(步骤220)。
此外,电源电路54向电源管理单元68输出表示对计算机系统10供电的状态的信号LAST#PWG(当供电的状态稳定时,该信号是活动的(高电平)),如果关机复位逻辑电路52是启用的,则在信号-SUSC#PIIX4变得不活动(低电平)的预定时间后,从电源电路54输出的信号LAST#PWG作为LAST#PWG#PIIX4向电源管理单元68中继的电源良好信号控制逻辑电路58,就去激活向电源管理单元68输出的LAST#PWG#PIIX4(变为低电平),而不管从电源电路54输入的信号LAST#PWG(表示故障电源状态的伪电源状态信号-也参看步骤222和图6)的电平如何。
如果电源管理单元68检测到输入到PWROK端的信号(从电源良好信号控制逻辑电路58输入的信号LAST#PWG#PIIX4)已经变得不活动,就判定对计算机系统10的供电已经变得不稳定,然后根据判定结果改写内部寄存器PM CTL REG中保存的计算机系统的电源状态,并使用于生成硬件复位的信号CPU#RST在预定时间内是活动(高电平)的。
电源管理单元68的输出信号CPU#RST分别被输入到电源良好信号控制逻辑电路58和电源开关信号控制逻辑电路60。电源开关信号控制逻辑电路60是通过二极管90与电源开关92相连的,通过电源开关92的操作,电平变化的信号-PWRSW被作为信号-PWRSW#PIIX4中继到电源管理单元68。当电源开关信号控制逻辑电路60检测到信号-CPU#RST已经变得活动时,如果关机复位逻辑电路52是启用的,就激活向电源管理单元68输出的信号-PWRSW#PIIX4(变为低电平),而不管信号-PWRSW(伪通电信号-也参看步骤226和图6)的电平如何。
此外,当电源良好信号控制逻辑电路58检测到信号-CPU#RST已经变得活动时,如果关机复位逻辑电路52是启用的,就将向电源管理单元68输出的信号-LAST#PWG#PIIX4从不活动(低电平)变得活动(高电平)(一种表示良好电源状态的伪电源状态信号-参看步骤228和图6)。
当电源管理单元68检测到向输入端PWROK输入的信号(电源良好信号控制逻辑电路58输出的信号-LAST#PWG#PIIX4)已经变得活动(低电平)时,它判定电源开关92已经开通,就将信号-SUSC和-SUSC(-SUSC#PIIX4和-SUSCPIIX4转变成不活动(高电平)的(参看步骤230和图6)。此外,当它检测到输入到PWROK端的信号(信号LAST#PWG#PIIX4)变得活动时,就判定对计算机系统10的电源的供应已经变得稳定。于是就将在内部寄存器PM TCL REG中保存的计算机系统的电源状态改写成相应于上述判定结果的状态。
在内部寄存器PM TCL REG中保存的计算机系统的电源状态与实际的电源状态之间有过暂时的失配,这是因为电源良好信号控制逻辑电路58已经改变了向电源管理单元68输出的信号-PWRSW#PIIX4的电平,但是上述过程提供了与实际电源状态的匹配。
电源管理单元68的输出信号-SUSC#PIIX4也被输入到电源开关信号控制逻辑电路60。如果电源开关信号控制逻辑电路60检测到在激活向电源管理单元68输出的信号-PWRSW#PIIX4之后信号-SUSC#PIIX4已经变得不活动(高电平),它就使信号-PWRSW#PIIX4变得不活动(高电平)(参看图6)。
在自电源管理单元68激活信号CPU#RST开始经过预定时间后,信号CPU#RST又被电源管理单元68去激活(低电平)(步骤230)。通过以上顺序,就在不停止向计算机系统10供电的情况下,为电源管理单元68输出的断电指令(关机指令)实现了生成硬件复位的关机复位;当信号CPU#RST变得不活动时,从闪存ROM 72中某预定地址开始顺序存储的各POST程序被读出并由CPU 14按顺序执行由此启动POST(与本发明相关的过程)(步骤232),然后执行以后各步骤234-244中的过程(相应于与本发明相关的处理装置的过程)。
在步骤234中,检查关机复位位中保存的标志的值,然后在下一个步骤236中,根据上述标志的值判断POST的当前启动是否是因为关机复位而引起的。仅当已经进行过关机复位时,在CMOS 74的关机复位位中保存的标志才会已经变成表示关机复位已经由PM BIOS进行过的值。
这样,如果在CMOS 74的关机复位位中保存的标志不是表示已经进行过关机复位的值,就能判定POST的当前启动不是因为关机复位而引起的,所以步骤236中的判断是否定的。在这种情况下,执行正常启动计算机系统10的过程(诸如POST的通常过程和OS的自引导过程)。
另一方面,如果在CMOS 74的关机复位位中保存的标志是表示已经进行过关机复位的值,就能判定POST的当前启动是因为关机复位而引起的,所以步骤236中的判断是肯定的,于是进入步骤238。在步骤238中,通过向网络适配器42(或网络适配器84)的内部寄存器的WOL设置区写入表示启用WOL功能的信息,启用网络适配器42(或网络适配器84)的的WOL功能。
在步骤240中,通过GPIO 88停用关机复位逻辑电路52;在步骤242中,将在CMOS 74的关机复位位中保存的标志关掉(即改变成表示未进行过关机复位的值)。在步骤244中,由BIOS(POST)执行一个关机过程。该关机过程也能-如前面所述步骤214中的那样-通过向电源管理单元68的内部寄存器PM CTL REG的预定地址写入预定信息而执行。
这样,电源管理单元68激活信号-SUSC和信号SUSB(低电平),但是,由于关机复位逻辑电路52已经在前面的步骤240中被停用,所以将信号-SUSC和信号SUSB穿过断电信号门逻辑电路56直接输入到电源电路54(步骤246),停止向计算机系统10供电(步骤218),计算机系统10从电源状态S0变成电源状态S5或G3。
当POST因关机复位而被启动时,不启动OS就停止向计算机系统10供电,这样,在步骤238中启用的网络适配器的WOL功能就不被OS停用,所以WOL功能被保持在可用的状态。
当通过网络指示执行WOL时,网络适配器42(或网络适配器(84)激活信号线-PME,这是因为WOL功能被启用-即使计算机系统10处于状态S5或G3时也如此。由此,门阵列逻辑电路76检测到信号线-PME已经变得活动,信号-PWRON02就从被门阵列逻辑电路76通过OR(或)电路86输入到电源管理单元68,将计算机系统10恢复到电源状态S0。于是,无论计算机系统10处于何种状态,WOL功能都能被使用。
另外,从关机复位逻辑电路52的操作到计算机系统10的断电之间的时间(从步骤220到步骤248的时间)很短,所以,与下述方式相比,施加到CPU 14上的负荷得到减少,-该方式中采用I/O陷阱功能来在内部寄存器PM CTL REG每次被访问时产生中断,每次要判断时机是否刚好是计算机系统的断电之前,如果判断时机刚好是在计算机系统的断电之前,就启用网络适配器的WOL功能。
以上的说明中,由AML的过程PTS产生一个SMI(中断),以启动PM BIOS,关机复位的执行被PM BIOS存储在CMOS 74中;但是,例如如果新提供一个AML可访问的非易失性存储装置-诸如与后备电源相连的寄存器,则不启动PM BIOS就可以由AML将关机复位的执行存储在上述存储装置中。
另外,举例说明了这种情形-在这种情形,启用WOL功能、停用关机复位逻辑电路52、关闭关机复位位和关掉计算机系统10等过程是由用关机复位启动的POST执行的;但是,另外的选择方案是,例如可以由在POST引起一个SMI时启动的PM BIOS来执行全部或部分的上述过程。
此外,作为包含电源管理单元的核心芯片,也可以采用PIIX4以外的芯片,并不限于PIIX4。
此外,在上述说明中,在本发明被应用到的方式中,在符合ACPI标准的计算机(一种其中运行着不支持WOL功能的OS的计算机)中启用网络适配器的WOL功能,但是这不是限制,本发明规范适用于-其中当计算机系统的电源被切断时,在OS进行的过程结束之后执行一个特殊过程(例如一个不受OS支持的过程)-的各种情况。另外,因为POST是在计算机系统的电源被切断后由关机复位启动的,所以,它也适用于通常由OS管理的资源的直接操作。例如,本发明也能被应用于这样的方式-其中,当计算机系统的电源被切断时,将诸如设备(如网络或硬盘)的状态和断电时间等信息先存储在CMOS或EEPROM中,上述被存储的信息在下一次通电时被使用。此外,它也适用于这样的情况-其中,由于硬件故障之类的原因,需要通过在断电时导致复位来断然地关掉计算机系统。
如上所述,本发明在断电指令被输出到电源单元时输出断电指令时,中断断电指令向电源单元的输入,生成计算机的硬件复位,在执行由硬件复位启动的过程例程中的预定过程之后切断计算机电源,所以本发明具有-在不导致负荷增加的条件下能实现刚好在计算机的电源被切断之前执行预定的过程-的突出优点。
权利要求
1.一种计算机,包含一个控制器,用于在根据操作系统的指令向电源单元输出断电指令时中断断电指令向为计算机供电的电源单元的输入,以及用于生成计算机的硬件复位信号;用于在执行预定过程之后切断计算机的电源的处理装置,该处理装置是由硬件复位信号启动的。
2.按照权利要求1的计算机,其中电源管理单元控制计算机的电源状态,控制器被安置在电源管理单元与电源电路之间,中断从电源管理单元输出的断电指令向电源单元的输入,在通过向电源管理单元输出代表无效电源状态的伪电源状态信号而生成硬件复位之后向电源管理单元输出代表通电指令的伪通电信号。
3.按照权利要求1的计算机,其中处理装置使能控制器并在被指令执行预定过程和检测到操作系统执行断电过程时在非易失性存储器中存储预定信息,在执行预定过程和停用控制器的操作后,如果计算机是由硬件复位启动的并且存储器中存储着预定信息,就切断计算机的电源。
4.按照权利要求1的计算机,其中预定过程是将网络适配器的设置改变成启用通过网络从远程地点开通计算机电源的功能的过程。
5.按照权利要求1的计算机,其中计算机符合ACPI标准。
6.一种计算机的电源控制方法,包含以下步骤在根据操作系统的指令向电源单元输出断电指令时中断断电指令向为计算机供电的电源单元的输入,生成计算机的硬件复位信号;在用硬件复位启动的过程例程执行预定过程之后切断计算机的电源。
全文摘要
本发明涉及计算机的电源控制方法,在核心芯片上的电源管理单元与电源电路之间提供一个关机复位逻辑电路。逻辑电路刚好在系统被关闭之前被启用,它中断电源管理单元向电源电路输出的断电信号-SUSC的输入,向电源管理单元输入一个用以产生一个硬件复位的、表示故障电源状态的信号,并输入表示电源开关的开通的信号。这导致POST被启动,POST在启用网络适配器的WOL功能后切断系统的电源。
文档编号G06F1/24GK1291737SQ0011899
公开日2001年4月18日 申请日期2000年9月12日 优先权日1999年9月16日
发明者山崎充弘 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1