CPU电源状态

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

    ·功耗未知,应该接近零

    ·唤醒时间未知

### 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、付费专栏及课程。

余额充值