Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198917
  • 博文数量: 60
  • 博客积分: 3269
  • 博客等级: 中校
  • 技术积分: 648
  • 用 户 组: 普通用户
  • 注册时间: 2005-09-21 10:48
文章存档

2012年(6)

2011年(6)

2010年(30)

2009年(8)

2007年(6)

2005年(4)

我的朋友

分类:

2009-12-27 01:51:25

APM全称Advanced Power Management,中文名称高级电源管理
 
 
    APM全称Advanced Power Management,中文名称高级电源管理,目前最新的APM标准是1.2,它是一种基于BIOS的系统电源管理方案,它提供了CPU和设备电源管理并通过设备工作超时设定来决定何时将设备转换到低耗能状态。
    1.由于基于APM的BIOS都有它自己的电源管理方案,使得计算机与计算机之间缺乏一致性,每个BIOS开发者必须精心维护自己的APM BIOS代码和功能。
    2.系统进入挂起的原因无法知晓。用户是否按了进入睡眠按钮,还是BIOS认为系统已进入了空闲状态,或者电池电压过低,这些信息APM都无法知道,但是Windows必须要知道挂起的原因,即使系统没有进入空闲状态。
    3.BIOS无法知道用户在干什么,只有通过监视中断和I/O端口来猜测用户的活动。有时,BIOS会使系统处于完全混乱的状态,当系统没有空闲时将系统挂起或者当系统处于空闲状态时,却不进入挂起状态。
    4.早期版本的BIOS APM(1.0和1.1)不提供任何系统性能信息,系统是否支持睡眠状态就只有尝试将系统转入睡眠模式才知道。如果BIOS不支持睡眠模式,那将导致死机。BIOS APM 1.2解决了这个缺陷。
    5.BIOS对USB设备、加插的电脑配件卡和IEEE1394设备全然不知,导致当以上设备没有进入空闲状态,而BIOS却认为系统已经进入空闲状态,从而发生冲突,使这些设备无法正常使用或系统死机。
    由于APM有以上不足,因此ACPI应运而生。
 
ACPI全称Advanced Configuration and Power Interface,中文名称高级配置电源界面
    ACPI全称Advanced Configuration and Power Interface,中文名称高级配置电源界面,ACPI是为了解决APM的缺陷而问世的。它定义了许多新的规范:
    1.ACPI将现有的电源管理BIOS代码、APM应用编程接口、PNP BIOS应用编程接口、多处理器规范表格等集合成一种新的电源管理和配置接口规范。
    2.ACPI允许操作系统(不是BIOS)控制电源管理,这点与APM不相同。
    3.ACPI标准定义了硬件寄存器、BIOS接口(包含配置表格、控制方法以及主板设备列举和配置)、系统和设备的电源状态和ACPI热模型。
    4.BIOS支持的代码不是用汇编语言而是用AML(ACPI Machine Language,ACPI机器语言)编写的。BIOS不能决定用于电源管理或资源管理的策略或超时。
    5.使用ACPI系统的所有设备可以互相通信来了解彼此的使用情况,并且都受操作系统的控制,操作系统对正在运行的系统状态了如指掌,所以操作系统处于执行电源管理的最佳位置。
 
  ACPI(Advanced Configuration Management)是1997年由INTEL/MICROSOFT/TOSHIBA提出的新型电源管理规范,意图是让系统而不是BIOS来全面控制电源管理,使系统更加省电。 其特点主要有:提供立刻开机功能,即开机后可立即恢复到上次关机时的状态,光驱、软驱和硬盘在未使用时会自动关掉电源,使用时再打开;支持在开电状态下既插即拔,随时更换功能。
  ACPI主要支持三种节电方式:
  1、(suspend即挂起)显示屏自动断电;只是主机通电。这时敲任意键即可恢复原来状态。
  2、(save to ram 或suspend to ram 即挂起到内存)系统把当前信息储存在内存中,只有内存等几个关键部件通电,这时计算机处在高度节电状态,按任意键后,计算机从内存中读取信息很快恢复到原来状态。
  3、(save to disk或suspend to disk即挂起到硬盘)计算机自动关机,关机前将当前数据存储在硬盘上,用户下次按开关键开机时计算机将无须启动系统,直接从硬盘读取数据,恢复原来状态。
  ACPI可实现以下功能:
  1、用户可以使外设在指定时间开关;
  2、使用笔记本电脑的用户可以指定计算机在低电压的情况下进入低功耗状态,以保证重要的应用程序运行;
  3、操作系统可以在应用程序对时间要求不高的情况下降低时钟频率;
  4、操作系统可以根据外设和主板的具体需求为它分配能源;
  5、在无人使用计算机时可以使计算机进入休眠状态,但保证一些通信设备打开;
  6、即插即用设备在插入时能够由ACPI来控制。

 
  不过,ACPI和其他的电源管理方式一样,要想享受到上面这些功能,必须要有软件和硬件的支持。在软件方面,Windows 98提供了支持(但不全面,默认禁止STD,需要给setup.exe加参数强制开启,但BUG很多),Windows 2000对ACPI给予了全面的支持;硬件方面比较麻烦,除了要求主板、显卡和网卡等外设要支持ACPI外,还需要机箱电源的配合。电源在提供5伏电压给主板的同时,还必须使电流稳定在720毫安以上才可以,这样它才能够实现电脑的“睡眠”和“唤醒”。
  ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是:
  S0--实际上这就是我们平常的工作状态,所有设备全开,功耗一般会超过80W;
  S1--也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下;(其实有些CPU降温软件就是利用这种工作原理)
  S2--这时CPU处于停止运作状态,总线时钟也被关闭,但其余的设备仍然运转;
  S3--这就是我们熟悉的STR(Suspend to RAM),这时的功耗不超过10W;
  S4--也称为STD(Suspend to Disk),这时系统主电源关闭,硬盘存储S4前数据信息,所以S4是比S3更省电状态.
  S5--这种状态是最干脆的,就是连电源在内的所有设备全部关闭,即关机(shutdown),功耗为0。
  我们最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。顾名思义,STR就是把系统进入STR前的工作状态数据都存放到内存中去。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。内存的读写速度极快,因此我们感到进入和离开STR状态所花费的时间不过是几秒钟而已;而S4状态,即STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。由于硬盘的读写速度比内存要慢得多,因此用起来也就没有STR那么快了。STD的优点是只通过软件就能实现,比如Windows 2000就能在不支持STR的硬件上实现STD。

 
  ACPI模式常见问题
  电脑长眠不醒
  这主要是硬件对ACPI支持得不好。这时首先应该翻阅主板和其他硬件的说明书,看看它们是不是完全支持ACPI。也有的时候在BIOS中设置使用显卡的USWC Uncacheable Speculative Write Combining模式会有这样的情况,改回到UC Uncacheable模式就可以解决问题。
  STD模式的失效
  STD是一种省电的高级应用,全称为“Suspend To Disk””(STD就是休眠至硬盘功能,将当前系统状态保存到硬盘后,硬盘随即停止转动,系统进入低功耗状态当再开机时系统会跳过自检,直接从硬盘恢复原来的系统状态,而不是正常系统的默认状态,从而缩短了开机时间。)这种模式由于硬盘文件格式的兼容性可能会出现问题,刷新BIOS就可以解决问题
 
ACPI与APM综合比较
    综上所述,ACPI与APM有着很多的优势,推荐使用ACPI来管理系统。下面通过WinXP关机问题来进一步探讨它们之间的区别与应用。有人问为什么在WinXP的控制面板→电源选项中没有高级电源管理选项页和启用高级电源管理支持选项,从而使系统无法正常关机。其实在2000年以后出现的主板BIOS大都支持ACPI管理,因此当Power Management Setup中的ACPI function设为Enabled时,WinXP已经接管和控制了电源管理。所以系统中不会出现APM的选项页,当然也就不会出现启用高级电源管理支持选项。大多数的WinXP是可以正常关机,如果不能关机,原因可能是ACPI存在兼容性问题,解决的方法是升级最新的BIOS文件。如果还是不行,就把Power Management Setup中的ACPI function设为Disabled,并将PM Control by APM设为Yes。然后重启进入WinXP就会发现在控制面板→电源选项中多出了高级电源管理选项页(APM)和启用高级电源管理支持选项,只要勾选启用高级电源管理支持,并且在注册表的HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\ Winlogon中找到PowerdownAfterShut- down,并将值设为1,再重启,通常问题就可解决。
阅读(955) | 评论(0) | 转发(0) |
0

上一篇:C语言简介

下一篇: CPU的一点知识

给主人留下些什么吧!~~