本帖最后由 walla 于 2014-7-7 09:47 编辑
intel cpu有很多不同的节能状态,用一个字母+数字表示,数字越小工作负荷越大,数字越大越节能。
比如字母G代表系统状态,G0时代表全速,而G3代表断电关机; L代表PCIe总线,C则代表处理器的节能状态。
从全速C0到深度节能C7,有着怎样差别,下面是从intel官网和其他网上原文摘译的内容,供大家参考,如有误欢迎指出。
需要注意的是,对最新一代的CPU每一种C状态都可以在一个线程上体现,for example,线程1,2工作在C0状态,而线程3,4可以工作在省电的C3状态。 但整个cpu的状态是依照最耗电那个线程的状态决定的,以上例来说,当前cpu的状态是C0
C1: 所有x86 cpu都有一个指令 "HLT",它的作用是让CPU闲置(idle),什么都不做。一旦有新的指令(一个硬件发送的信号),便会恢复到正常工作水平. 自486DX4处理器以来,intel工程师将"HLT"指令升级成“Auto Halt”,也就是现在的C1状态。C1状态下CPU会在没有任务的时候自动闲置, 内部时钟关闭。但总线接口和高级可编程中断控制器(APIC)仍在工作。C1还有一个子模式C1E,它和C1其他功能一样,除了在恢复工作时cpu 使用最低工作电压,而不是满载电压。
C2: C2和C1功能类似,除了C2多了一条信号“STPCLK”。差别是,C1的“Auto Halt”是软件方式实现的,发送一条指令。而信号“STPCLK”是通 过硬件发送。从Core 2 Duo开始采用C2的升级版C2E,但在最新的intel第四代cpu数据表里看不到C2/C2E状态,一部分C2的功能被归类到C3里去了。
C3: C3也被称为睡眠状态“Sleep state”,第一次使用还是奔腾II和第一代速龙时代。CPU首先会进入C2状态,然后激活一个信号“SLP/DPSLP”, 再进入C3。C3模式下核心所有内部时钟被关闭,包括总线接口和APIC。外部时钟也会中断如果识别码是DPSLP(SLP和DPSLP取决于不同的主板)。 同时将cpu的一级,二级缓存都挪到三级共享缓存里,并清空。也就是说,在睡眠状态下cpu无法响应任何外部总线或中断的请求,也就是彻底睡了。
C4:C1,C2和C3主要是对时钟下手,而C4则开始对cpu电压动刀了。C4也被称为 更深度睡眠状态Deeper Sleep state,(不知道怎么翻比较合适), 第一次使用C4是在迅驰上的奔腾M处理器。C4是cpu进入C3睡眠后下调内部电压达成的,硬件信号"DPRSTP"。
C6:C6是较新的一种节能状态,自Core2 Duo开始装备。cpu进入这个状态后,会将cpu核心(可以是单一的核心)里所有的寄存器数据挪到一个 SRAM(静态内存)里去。然后该核心就可以任君处置了,比如把电压设为0V。在恢复的时候,再把之前的数据从SRAM搬回核心的寄存器里。真正 意义上单独关闭一个核心变为可能(需要Nehalem核心或更新CPU才能支持)
C7: C7和C6几乎是一模一样的,除了,当最后一个核心进入C7状态时,该核心还要把三级缓存挪走,清空,然后降压(或断电)。在退出C7状态 时,三级缓存并不是立即工作的,必须把数据读回(该去哪去哪儿),CPU正式可以工作了之后,L3才开始工作。这样的好处是,如果退出之后马上 又要进入C7,那L3就不必反复倒腾了。
觉得有收获的请回复支持下啦
|