CPU 电源状态( C-States )

 

CPU 电源状态( C-States )

一般用户很少注意到这个状态,通常只会在使用 CPU-Z 来监控时钟频率和电压时才会留意到它。移动处理器的 C 状态比台式机的多。例如, Core 2 Duo 处理器( Meron )会支持 C0-C4 状态,然后桌面型 Core 2 Duo 处理( Conroe )仅支持 C1-C0 状态。

 

    C0 状态(激活)

    ·这是 CPU 最大工作状态,在此状态下可以接收指令和处理数据

    ·所有现代处理器必须支持这一功耗状态

 

    C1 状态(挂起)

    ·可以通过执行汇编指令“ HLT (挂起)”进入这一状态

    ·唤醒时间超快!(快到只需 10 纳秒!)

    ·可以节省 70% 的 CPU 功耗

    ·所有现代处理器都必须支持这一功耗状态

 

    C2 状态(停止允许)

    ·处理器时钟频率和 I/O 缓冲被停止

    ·换言之,处理器执行引擎和 I/0 缓冲已经没有时钟频率

    ·在 C2 状态下也可以节约 70% 的 CPU 和平台能耗

    ·从 C2 切换到 C0 状态需要 100 纳秒以上

 

    C3 状态(深度睡眠)

    ·总线频率和 PLL 均被锁定

    ·在多核心系统下,缓存无效

    ·在单核心系统下,内存被关闭,但缓存仍有效

    ·可以节省 70% 的 CPU 功耗,但平台功耗比 C2 状态下大一些

    ·唤醒时间需要 50 微妙

 

    C4 状态(更深度睡眠)

    ·与 C3 相似,但有两大区别

    ·一是核心电压低于 1.0V

    ·二是二级缓存内的数据存储将有所减少

    ·可以节约 98% 的 CPU 最大功耗

    ·唤醒时间比较慢,但不超过 1 秒

 

    C5 状态

    ·二级缓存的数据被减为零

    ·唤醒时间超过 200 微妙

 

    C6 状态

    ·这是 Penryn 处理器中新增的功耗管理模式

    ·二级缓存减至零后, CPU 的核心电压更低

    ·不保存 CPU context

    ·功耗未知,应该接近零

    ·唤醒时间未知

 

 

 

 

 

电脑高性能化是一把双刃剑,虽然可以带来快速的数据处理性能,但功耗的增加也成为令人头疼的问题。因为过高的功耗不仅会消耗大量的能源,也会导致芯片发热量的增加,影响电子芯片的稳定性和寿命。那么,如何降低芯片的功耗,实现节能的目的?

  从硬件厂商的角度来说,一方面,他们可以通过提高芯片工艺制程来实现降低能耗和发热的目的;另一方面,通过改变各个电子芯片工作状态中的运行方式更是能够实现电脑的动态节能,以适当的性能应对不同的处理负荷。而这种方式就是本文所要讨论的节能技术。目前主流的处理器都有哪些动态节能的技术,又该怎样充分利用这些技术呢?


  ◆Intel C-State Tech

  Intel C-State Tech是主板厂商在BIOS中加入的深度节能技术。它是根据处理器的使用情况自动调节其电源状态,进而调节处理器的电压、频率和功耗。

  C-State是指处理器的功耗和温度管理状态。只有在C0状态下,处理器是激活的,才能执行指令;而在C1到Cn状态下,处理器都处于各种不同程度的睡眠状态,睡眠可以带来处理器功耗的减少。但在这睡眠状态下,处理器都有一个恢复到C0的唤醒时间,不同的C-State要耗费不同的唤醒时间。

不同处理器电源状态下的唤醒时间与功耗:功耗越小,恢复到C0状态的唤醒时间就越长。


  如表中所示,C1与C2状态既能将处理器的功耗控制在全速运行时的30%以内,又能在非常短的唤醒时间内根据负载做出快速的反应。

  部分厂商的主板提供了Intel C-State Tech的支持,用户可以选择是否启用该技术,并对各个C-State状态进行控制。

主板BIOS中的Intel C-State Tech选项设置


  小提点:

  由于Intel C-State Tech在处理器进行状态切换时也会要求北桥芯片和内存进行电压与频率的调整,进入省电模式,因而它对整个平台的硬件要求比较高。如果主板的质量不过关或者内存的体质不够好,开启Intel C-State Tech后,会致使Windows系统出现频繁的死机等问题。反过来,如果Intel平台的电脑经常出现死机,则可以在主板的BIOS中检查该选项是否启用。

 

### CPU电源状态详解 #### C0 状态 在C0状态下,处理器处于完全活动的状态。此时所有的功能都正常运行,可以执行任何指令并处理数据。 #### C1 状态CPU进入C1状态时,会停止某些内部操作来减少功耗。对于`acpi_idle` cpuidle驱动程序来说,并不会从ACPI表中获取此状态的信息;相反,在需要进入C1状态的时候,操作系统会选择合适的机制如执行HLT指令(停机等待中断),或者是在支持的Intel平台上使用MWAIT指令[^1]。 #### C1E (Enhanced C1) 状态 这是增强型的一级休眠模式,它允许更深层次的节能措施被激活而不需要改变架构上的工作方式。相比普通的C1,它可以进一步降低频率和电压以节省更多电力消耗。这种状态通常由硬件自动管理而不依赖于软件层面的操作系统控制。 #### C6 状态 到了更深一层的低功率模式即C6状态,几乎全部核心资源都会关闭或置于非常低效的工作条件下。在此期间,除了维持最基本的生命体征外,其他一切非必要的电路都将断电。要唤醒回到活跃态则需耗费一定时间成本来进行初始化过程。 #### C8 和 C10 状态 随着技术进步出现了更加激进的省电策略——比如C8以及最深沉睡级别的C10。这些极端情况下不仅会使整个计算单元暂停运作,甚至可能切断内存刷新周期从而让RAM也跟着一起休息。恢复过来之后往往伴随着较长延迟因为必须重新加载大量上下文信息才能继续之前未完成的任务流程。 ```python # Python伪代码展示不同C状态下的行为差异 def cpu_power_states(): states = ["C0", "C1", "C1E", "C6", "C8", "C10"] for state in states: if state == "C0": print(f"In {state}: Full operational mode.") elif state == "C1": print(f"In {state}: Halt instruction or MWAIT is used to save power.") elif state == "C1E": print(f"In {state}: Enhanced deeper idle with reduced frequency and voltage.") elif state == "C6": print(f"In {state}: Most resources are powered off except minimal necessary ones.") elif state == "C8" or state == "C10": print(f"In {state}: Extremely deep sleep where even memory refresh might be stopped.") cpu_power_states() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值