高级配置与电源接口
http://zh.wikipedia.org/zh-cn/%e9%ab%98%e7%ba%a7%e9%85%8d%e7%bd%ae%e4%b8%8e%e7%94%b5%e6%ba%90%e6%8e%a5%e5%8f%a3
全局状态(global system states)
acpi规范定义了一台兼容acpi的计算机系统可以有以下七个状态(所谓的全局状态):
'g0(s0)正常工作状态:计算机的正常工作状态-操作系统和应用程序都在运行。cpu(s)执行指令。在这个状态下(即没有进入g1睡眠),cpu和像硬盘、dvd驱动器等等这些的设备可以一再的进入和从低能源状态回来,叫做c0-cn和d0-d3。(例如膝上型计算机,当使用电池运行的时候通常关掉所有当前未使用的设备;一些桌面型计算机也这么做来减少噪声。)g1 睡眠细分为从s1到s4这四种状态。系统从这几种状态被唤醒到g0运行(唤醒等待时间)所需的时间最短的是s1,较短的是s2和s3,不太短的是s4。s1:最耗电的睡眠模式。处理器的所有寄存器被刷新,并且cpu停止执行指令。cpu和内存的电源一直维持着,一些设备如果没有被使用那么就会被停止供电。这种模式通常指上电待机或者简单叫做pos,特别在bios设置界面上。一些新式的计算机不再支持s1;老式的电脑对s1支持可能要比s3好。s2:一个比s1更深的睡眠状态,不过已经不给cpu供电了;然而,通常这种模式并不被采用。s3 :在bios中叫做挂到内存 (suspendto ram/str),在windowsxp以后的windows版本和一些linux发行版中叫做待机(standby),在windowsvista和mac osx则叫做睡眠(sleep),虽然acpi规范仅仅提到术语s3和睡眠(sleep)。在这个状态下,主存储器(ram)仍然有电源供给,尽管它也是几乎唯一的有电源供给的原件。因为操作系统、所有应用程序和被打开的文档等等的状态都是保存在主存储器中,用户可以把工作恢复到正好上次他们保持的状态-计算机从s3状态回来时主存储器的内容和它进入s3状态时候的内容是相同象的。(规范中提到了s3和s2是相当类似的,只有更多的组件在s3状态下会被关掉电源。)相比较s4来说s3有两个好处;计算机恢复的过程比重启要快,第二,如果任何正在运行的应用程序(被打开的文档等等)有私有信息在里面,这些信息是不会被写到硬盘上的。然而,在系统不能被唤醒比如遇到了电源故障的时候,高速缓冲存储器可能会被flushed来防止数据毁坏。s4: 在windows中叫休眠,在mac osx中叫作安全睡眠,也称为挂到硬盘,虽然acpi规范中只提到了一个术语s4(mainarticle:hibernate(osfeature))。在这个状态下,所有主存储器的内容被储存在非挥发性存储器,例如硬盘,保护操作系统当前的状态,包括所有应用程序,打开的文档等.这意味着从s4恢复后,用户可以恢复到原本的工作状态,采用的方法和s3是一样的。s4和s3之间的差异是,除了把主存储器中的内容移进移出所消耗的时间以外,在s3状态下的时候如果一旦停电了,所有主存储器上的数据就会丢失,包括所有的没有保存的文档,而在s4状态下则没有影响.s4和其他的s状态有很大不同,事实上更类似g2softoff状态和g3 mechanicaloff状态,而不是s1-s3.在s4状态下的系统同样可进入g3(mechanicaloff)状态,并且保留s4时候的状态信息.所以它可以恢复到以前的运行状态在关掉电源之后.g2(s5)softoff--g2,s5,和softoff都是相同的叫法。g2和g3mechanicaloff几乎是相同的,但有些部件仍然带电,使计算机仍然可以被键盘、时钟、modem(电话唤醒)、lan(网络唤醒)还有usb设备所唤醒。[1]在启动系统从g2恢复到g0正常工作模式的过程中,无论是g3mechanical off还是g2都得运行启动程序来启动操作系统。此外,当操作系统在不支持acpi的情况下运行,这种状态被定义为legacy。在这个状态下,硬件和电源不是通过acpi来管理的,实际上已经禁用了acpi。
(参考资料:acpi规范3.0b版的链接在下面 external links, 查看chapter 7.3.4)
[编辑]设备电源状态(device power state)设备状态对于用户来说往往是不可见的,比如当一个设备已经没有电源供应的时候,可能整个系统还是在工作状态,光驱应该是一个很好的例子吧。设备状态是与设备相关的状态,他们的定义和以下四个因素有关:
电源消耗(power consumption),设备用电量的多少。
设备状态/环境(devicecontext),设备(从d0进入其他状态的时候)保留了多少原来的状态/环境。操作系统负责保存丢失的设备状态/环境。
设备驱动(device driver),让设备恢复到d0,驱动程序应该做什么(或者做多少)。
设备状态有一下几个:
d0 fully-on 是(正常)工作状态,电源消耗量最多,设备是完全被相应的,并且设备保留了全部的设备状态/环境。d1 和 d2是中间电源状态,它的定义根据设备的不同而有所不同。d3 off是设备电源关闭所以对总线来说是没有相应的。设备状态/环境全部丢失,操作系统会重新初始化设备当重新给它加电的时候。这个状态下的设备恢复到d0相比之下需要最长的时间。
设备状态总结设备状态电源消耗保留设备状态信息驱动程序恢复
d1 d0>d1>d2>d3 >d2
d2 d0>d1>d2>d3 >d1
d3 - off 0 没有保留 完全初始化并且装载
[编辑]处理器电源状态(processor power state)处理器电源状态(c0到c3状态,后面还有cn)是指在g0状态下(只对g0状态有效,在其他状态下不予讨论)的处理器电能消耗和温度管理的状态。
只有c0状态下cpu才会执行指令,c1到cn状态下cpu都处于各种不同程度的睡眠状态(sleepingstates),在这睡眠状态下,cpu都有一个恢复到c0的唤醒时间(latency),它是和cpu的电能消耗有关的,通常,用电能量越小意味着得花更长的时间恢复到c0状态,也就是唤醒时间越长。
当在c0状态下时,acpi允许通过定义节流阀(throttling)过程,和通过进去多性能状态(multipleperformance states,p-states)来改变处理器的性能。
各个状态的定义如下所示:
c0是正常工作状态,当处理器处于这种状态下的时候,它能正常处理指令。c1(通常称为halt)拥有最短的唤醒时间,这个延时必须短到操作系统软件使用cpu的时候不会考虑到唤醒时间方面的因素。一些处理器,比如说奔腾4(pentium4),支持c1e(enhancedc1 state)这样的低电能消耗技术。这个状态是不被软件所见的。
c2 (通常称为stop-clock),这个状态下处理器维持着所有的软件所见的状态信息,但是需要更长的时间来恢复到c0。这个状态下情况最坏的硬件唤醒时间是由acpi固件提供,并且操作系统软件可以利用这些信息来决定是采用c1而不是c2状态,c2比c1更省电。c3(通常称为sleep),相比c1和c2更省电了。这个状态下情况最坏的硬件唤醒时间是由acpi固件提供,并且操作系统软件可以利用这些信息来决定是采用c2而不是c3状态,当处于c3状态时,处理器缓存保留了所有的状态信息,但是忽略所有的侦听。操作系统软件负责保证缓存数据的一致性。[编辑]设备和处理器性能状态(device and processor performance states)设备和处理器性能状态(px状态)是在c0(对于处理器)和d0(对于设备)下定义的电源消耗和能力的状态。性能状态允许ospm在性能和能源消耗之间取得平衡。p0是坐高性能状态,从p1到pn是连续的低性能状态,最高限制n为16。
p0状态,使用最大性能并且消耗的电能最多。p1状态,性能比前者要小,但是消耗电能也相应少一些。pn状态,n是的大小是依赖于处理器和设备的,处理器和设备可以定一个任意的不超过16的数字。这个状态在intel处理器中称为speedstep,在amd处理器中称为powernow!或cool'n'quiet,在via处理器中称为powersaver。
