王朝百科
分享
 
 
 

C-state

王朝百科·作者佚名  2010-05-21  
宽屏版  字体: |||超大  

C-state

ACPI Processor C-state

ACPI,即Advanced Power Configuration Power Interface.在G0工作状态下,ACPI定义系统处理器的电源状态,要么为活跃状态(正在执行),要么为睡眠状态(未执行)。处理器电源状态被设计为C0,C1,C2,C3...Cn。C0电源状态是活跃状态,即CPU执行指令。C1到Cn都是处理器睡眠状态,即和C0状态相比,处理器处理器消耗更少的能源并且释放更少的热量。当进入睡眠状态,处理器不执行任何指令。每个睡眠状态都有一个和省电多少对应的延迟。一般来说,进入和退出的延迟越长,这个状态越省电。为了保持能量,OSPM在空闲时将处理器置于其中一个支持的睡眠状态中。在C0状态下,ACPI允许处理器的性能通过一个定义的节制过程发生改变,通过改变进入多种性能状态(P-states). 处理器的电源状态.

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访问内存的行为。

硬件可以以任何理由退出该状态,但必须是在有中断到达处理器的情况下。

处理器电源状态C3

系统对C3处理器电源状态的支持也是可选的. 如果存在,这种状态比C1和C2状态更加节省功耗. 使用P_LVL3命令寄存器或者_CST机制可以进入C3状态. 这种状态的最坏的硬件延迟在FADT表中声明了,OSPM可以通过这一信息来决定什么时候需要进入C3状态而不是C1或者C2状态. 当在C3状态中,处理器的cache保持着状态但是处理器没有窥视总线控制器,或者多核CPU进行访存.

硬件可以以任何理由退出这种状态,但必须是因为一个中断投递到了该处理器,或者当BM_RLD被设置时,一个总线控制器企图访存.

OSPM负责保证cache的一致性.在单处理器环境下,这可以通过使用PM2_CNT.ARB_DIS总线控制器仲裁寄存器来保证总线控制器的活动不会发生在C3状态下. 在多处理器环境下,处理器的cache可以通过flush和invalidate来保持一致性.

有两种机制支持C3电源状态:

1. 在进入C3状态之前,让OSPM flush和invalidate cache

2. 提供一种硬件机制,阻止控制器写内存(只支持UP)

在第一种情况下,OSPM将在进入C3之前flush系统的cache. 由于flush系统的cache通常有很大的延迟,OSPM只对多核平台的空闲处理器支持这种情况. flush cache通过ACPI定义的一种机制来完成.

单处理器平台提供一种硬件功能,OSPM将尝试将平台置于一种模式,当处理器处于C3模式,这种模式组织系统总线控制器来写内存。一旦总线控制器请求一个访问,CPU将从C3中被唤醒,并且重新使能总线控制器访问.

OSPM使用BM_STS位来决定要进入的电源状态是C2还是C3. BM_STS是一个可选的bit位,表示总线控制器是活跃的. OSPM使用这一位来决定在C2和C3之间的策略. 频繁的总线控制器活动将CPU的电源状态降到C2,没有总线控制器活动将CPU的电源状态提升到C3. OSPM保持BM_STS的一个变化历史来决定CPU电源状态的策略.

用在C3里的最后一个硬件特性是BM_RLD位. 这一位决定总线控制器的访问是否导致Cx电源状态的退出. 如果这一位被设置,一旦有总线控制器访问,Cx将退出. 如果该位被复位为零,总线控制器的访问将不会导致电源状态的退出. 在C3状态中,总线控制器的申请需要CPU转换回C0状态,但是在C2状态中,这样的转换将不

是必须的.在C3状态下,OSPM可以设置这一位,在C1或C2状态下,可以清除该位.

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有