aubrey 发表于 2007-11-21 16:01

ACPI之处理器电源状态


                                                  在G0工作状态下,ACPI定义系统处理器的电源状态,要么为活跃状态(正在执行),要么为睡眠状态(未执行)。处理器电源状态被设计为C0,C1,C2,C3...Cn。C0电源状态是活跃状态,即CPU执行指令。C1到Cn都是处理器睡眠状态,即和C0状态相比,处理器处理器消耗更少的能源并且释放更少的热量。当进入睡眠状态,处理器不执行任何指令。每个睡眠状态都有一个和省电多少对应的延迟。一般来说,进入和退出的延迟越长,这个状态越省电。为了保持能量,OSPM在空闲时将处理器置于其中一个支持的睡眠状态中。在C0状态下,ACPI允许处理器的性能通过一个定义的节制过程发生改变,通过改变进入多种性能状态(P-states). 处理器的电源状态如下图所示:
http://blog.chinaunix.net/photo/41699_071121153341.jpg
ACPI定义这样的逻辑在每个CPU的偏置上,即OSPM通过转换来切换不同的处理器电源状态。这个逻辑是可选的,在FADT表和处理器对象中有描述。FADT表中的这些字段和标志描述了硬件的对称性,以及处理器对象对特别的CPU时钟逻辑包含的位置(在P_BLK寄存器块和_CST对象中有描述)。
P_LVL2和P_LVL3寄存器提供可选的支持,将系统处理器置于C2或者C3状态。P_LVL2寄存器将排好序的处理器置于C2状态,P_LVL3讲排好序的处理器置于C3状态。C3状态的额外支持通过总线主状态和仲裁禁止位被提供(PM!1_STS寄存器中的BM_STS位和PM2_CNT寄存器中的ARB_DIS位)。系统软件通过读取P_LVL2或者P_LVL3寄存器数据来进入C2或者C3状态。硬件必须精确的将处理器放在恰当的时钟状态,通过对相应的P_LVLx寄存器的读操作。平台必须定义可选的接口来允许OSPM使用_CST对象进入C-state。
处理器的电源状态支持是对称的,通过FADT表和P_BLK接口;OSPM假设同一系统里的所有的处理器都在相同的电源状态下。如果处理器有不对称的电源状态支持,BIOS将通过FADT表选择和使用所有处理器最低的相同的电源状态。例如,如果CPU0支持所有的电源状态乃至C3,但是CPU1仅支持C1,那么OSPM将仅将空闲的处理器置于C1(CPU0将不会被置于C2和C3状态)。注意C1必须被支持,C2和C3是可选的。
[*]处理器电源状态C1所有的处理器必须支持这种状态。这种状态的支持是通过一个本地的处理器指令(HLT或者mwait),并且认为不需要芯片组的硬件支持。这种状态的硬件延迟必须足够的低,使得OSPM在决定是否使用该状态时不需要考虑延迟方面的问题。除了将处理器置于一种电源状态,这个状态没有其他的软件可见的效果。在C1状态下,处理器可以保持系统cache里面的内容。
硬件可以以任何理由退出该状态,但必须是在有中断到达处理器的情况下。
[*]处理器电源状态C2这种电源状态不是必需的。如果存在,该状态能够更好的省电,它通过使用P_LVL2命令寄存器或者由_CST提供的另一种机制来使处理器进入该状态。这个状态的最坏情况下的硬件延迟在FADT的表里面有声明,OSPM可以根据这个信息来决定什么时候C1状态应该被C2状态代替。除了将处理器置于一种电源状态,该状态没有其他的软件可见效果。OSPM假设C2比C1更省电,但是退出的延迟比C1要高。
C2电源状态是一种可选的ACPI时钟状态,需要芯片组的硬件支持。时钟逻辑由一个接口组成,可以用来被操纵使处理器精确的进入C2电源状态。在C2电源状态下,处理器被认为能够保持其cache的一致性;例如,总线控制器和多处理器的活动可以发生而不破坏cache里面的内容。
C2状态将处理器置于一种低功耗的状态,围绕多处理器和总线控制器系统做优化。当存在总线控制器或者多处理器活动时(这一条件将阻止处理器进入C3状态),OSPM将使一个空闲状态下的处理器群体进入C2状态。处理器簇能够在C2状态下监视总线控制器或者多核CPU访问内存的行为。
硬件可以以任何理由退出该状态,但必须是在有中断到达处理器的情况下。
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/41699/showart_427689.html
页: [1]
查看完整版本: ACPI之处理器电源状态