ARMv8-A编程指导之电源管理(2)

2 动态电压和频率缩放

        很多操作系统处于它们的工作负载时为变化的。因此有能力来减少或增加core性能来匹配期望core的负载。将core的时钟降低会减少动态功耗。

        DVFS为节省功耗的技术:

  1. 功耗与频率之间为线性关系;
  2. 功耗与工作电压成平方关系;

       关系给出如下:

P = C * V^2 *f

        其中,P为动态功耗,C为逻辑电路的切换容量,V为运行电压,f为运行频率。

        通过调整core时钟的频率可以节省功耗。

        在更低的频率时core也可以运行在更低的电压。减少供给电压的优点为它也减少了动态和静态功耗。

        给定电路的工作电压与电路可以安全工作的频率范围之间存在特定于实现的关系。给定的工作频率及其相应的工作电压表示为元组,称为OPP。对给定的系统,可达到的OPP范围统称为系统DVFS曲线。

        操作系统使用DVFS来节省功耗,在必要时保持在温度限制内。OS提供DVFS策略来管理功耗和要求的性能。以高性能的策略选择更高的频率并使用更多的功耗。以节省功耗的策略选择更低频率并导致更低性能。

3 汇编语言的电源指令

        ARM汇编语言包括可以用于将core处于低功耗状态的指令。架构定义这些指令为hint,意味着当它执行它们时core不要求采取其他行为。在Cortex-A处理器系列中,但时这些指令被实现为关闭core几乎所有的时钟。这意味着core的功耗明显减少因此仅静态leakage电流被驱动,没有动态的功耗。

        WFI指令会暂停执行直到core被一下情况唤醒:

  1. IRQ中断,即使PSTATE I位被设置;
  2. FIQ中断,即使PSTATE F位被设置;
  3. 异步abort;

        当相关PSTATE中断标志被禁用,通过中断唤醒的core的事件,core在WFI后实现下个指令。

        WFI指令被广泛使用在电池供电的系统中。比如,移动电话可以一秒可以多次将core处于standby模式,当等待你按按键。

        WFE与WFI类似。它暂停执行直到一个事件产生。这可以时列出事件,也可以由cluster中的其他core发出事件。SEV发出一个事件到所有core。通用定时器也可以用于变成来触发周期性的可以从WFE唤醒core的事件。

4 电源状态协调的接口

        当core被下电或上电时PSCI提供了OS方法来实现电源管理场景。这包括:

  1. core idle管理;
  2. 动态增加或移除core,从第二core启动;
  3. Big.LITTLE迁移;
  4. 系统关闭和复位;

       使用该接口发送的信息被执行的其他级别接受。即若EL2和EL3被实现,执行在guest上OS发送的信息必须被hypervisor接受。如果hypervisor发送它,安全firmware接受该信息,并与trusted OS协调。这允许每个操作系统来决定是否要求保存上下文。

        为获取更多信息,看PSCI spec。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值