ARMv8-A电源管理Power management

目录

一、ARMv8-A电源管理概述

二、idle管理

2.1 电源和时钟

Standby-待机

Retention-保持

Powerdown-关机

Dormant mode-休眠模式

Hotplug-热插拔

三、动态电压和频率调节

四、汇编语言power指令

五、电源状态协调接口


一、ARMv8-A电源管理概述

许多ARM系统是移动设备,并由电池供电。在这种系统中,优化功耗和总能量使用是关键的设计约束。程序员经常花费大量时间来尝试在这些系统中节省电池寿命。ARM核心内置了许多旨在减少功耗的硬件设计方法。

即使在不使用电池的系统中,节能也可能是一个问题。例如,您可能希望最大限度地减少能源使用以减少消费者的电费、出于环保原因,或者为了最小化设备产生的热量。

能源使用可以分为两个组成部分:静态功耗和动态功耗。

静态功耗(通常称为漏电)发生在核心逻辑或RAM块通电时。一般来说,漏电电流与硅面积成正比,这意味着芯片越大,漏电越高。随着制造几何尺寸变小,漏电占功耗的比例会变得更高。

动态功耗是由于晶体管开关而产生的,是核心时钟速度和每个周期改变状态的晶体管数量的函数。显然,更高的时钟速度和更复杂的核心消耗更多功率。管理功耗感知的操作系统动态地改变核心的功耗状态,平衡当前工作负载的可用计算容量,同时试图使用最少的功耗。其中一些技术动态地开启和关闭核心,或者将它们置于静态状态,不再执行计算。这意味着它们消耗的功耗很少。

【注意】:这里描述的功耗管理类型不是源自体系结构。这里描述的方法是软件功耗管理的常见实践示例。

二、idle管理

空闲管理通常由操作系统控制。在这种情况下,当一个核心处于空闲状态时,操作系统功耗管理(OSPM)将其置于低功耗状态。通常情况下,可供选择的状态有所不同,具有不同的进入和退出延迟,以及与每个状态相关联的不同功耗级别。通常使用的状态取决于核心再次需要的速度。在任何时候可以使用的功耗状态也可能取决于SoC中其他组件的活动,除了核心。每个状态都由进入该状态时时钟门控或电源门控的组件集合定义。

从低功耗状态转换到运行状态所需的时间,称为唤醒延迟,在较深的状态中较长。尽管空闲功耗管理受核心上线程行为的驱动,但OSPM可以将平台置于影响核心之外许多其他组件的状态。如果集群中的最后一个核心变为空闲状态,OSPM可以针对影响整个集群的功耗状态。同样,如果SoC中的最后一个核心变为空闲状态,OSPM可以针对影响整个SoC的功耗状态。选择也受到系统中其他组件的使用的影响。一个典型的例子是当所有核心和任何其他总线masters都处于空闲状态时,将内存置于自刷新状态。

OSPM必须提供必要的功耗管理软件基础设施来确定正确的状态选择。在空闲管理中,当一个核心或集群被置于低功耗状态时,它可以通过核心唤醒事件随时重新激活。也就是说,可以从低功耗状态唤醒核心的事件,例如中断。OSPM不需要明确的命令来将核心或集群重新置于操作状态。即使它们当前处于低功耗状态,OSPM也认为受影响的核心始终可用。

2.1 电源和时钟

可以减少能源使用的一种方法是移除电源,这样可以消除动态和静态电流(有时称为电源门控),或者停止核心的时钟,只消除动态功耗,可以称为时钟门控。ARM核心通常支持几个级别的功耗管理,如下所示:

  • Standby-待机。
  • Retention-保持
  • Powerdown-关机。
  • Dormant mode-休眠模式。
  • Hotplug-热插拔。

对于某些操作,需要在移除电源之前和之后保存和恢复状态。保存和恢复所需的时间,以及由此额外工作消耗的功耗,都可以成为软件选择适当的功耗管理活动的重要因素。

包含核心的SoC设备可以具有额外命名的低功耗状态,例如STOP和深度睡眠。这些指的是硬件锁相环(PLL)和电压调节器可以由功耗管理软件控制的能力。

Standby-待机

在待机模式下,核心保持通电,但大部分时钟被停止或者时钟门控。这意味着核心的几乎所有部分都处于静态状态,唯一的功耗是由于漏电电流和用于监视唤醒条件的少量逻辑的时钟。

进入此模式使用的是WFI(等待中断)或WFE(等待事件)指令。ARM建议在执行WFI或WFE之前使用数据同步障碍(DSB)指令,以确保挂起的内存事务在更改状态之前完成。

如果调试通道处于活动状态,则保持活动状态。核心停止执行直到检测到唤醒事件。唤醒条件取决于进入指令。对于WFI,中断或外部调试请求会唤醒核心。对于WFE,存在几种指定的事件,包括集群中的另一个核心执行SEV指令。

Snoop Control Unit(SCU)的请求也可以唤醒集群中用于缓存一致性操作的时钟。这意味着处于待机状态的核心的缓存与其他核心的缓存保持一致(但是待机状态的核心不一定会执行下一条指令)。核心复位始终会强制核心退出待机状态。

各种形式的动态时钟门控也可以在硬件中实现。例如,当检测到空闲状态时,SCU、GIC、定时器、指令流水线或NEON块可以自动时钟门控,以节省功耗。

待机模式可以快速进入和退出(通常在两个时钟周期内)。因此,它对核心的延迟和响应性几乎没有影响。

对于OSPM来说,待机状态在大多数情况下与retention状态几乎没有区别。但是对于外部调试器和硬件实现来说有所不同,但对于操作系统的空闲管理子系统来说则不明显。

Retention-保持

核心状态,包括调试设置,在低功耗结构中得到保留,使得核心至少可以部分关闭。从低功耗retention状态切换到运行状态不需要对核心进行复位。在从低功耗retention状态切换到运行操作时,保存的核心状态将被恢复。从操作系统的角度来看,除了进入方式、延迟和使用相关的约束外,retention状态和待机状态之间没有区别。然而,从外部调试器的角度来看,这两种状态有所不同,因为retention状态下,外部调试请求的调试事件仍然挂起,核心电源域中的调试寄存器无法访问。

Powerdown-关机

在这种状态下,正如其名称所示,核心已关闭电源。设备上的软件必须保存所有核心状态,以便在断电期间进行保留。从关机状态切换到运行操作必须包括:

  • 在恢复电源后,对核心进行复位。
  • 恢复保存的核心状态。

关机状态的定义特征是它们会破坏上下文。这意味着所有数据、操作条件和操作状态都会丢失。这会影响在给定状态下关闭的所有组件,包括核心,以及在更深的状态下系统中的其他组件,如GIC或特定于平台的IP。根据调试和跟踪电源域的组织方式,调试和跟踪上下文中的一个或两个可能会在某些关机状态下丢失。必须提供机制,使操作系统能够针对每个给定状态执行相关的上下文保存和恢复。执行恢复从复位向量开始,之后每个操作系统必须恢复其上下文。

Dormant mode-休眠模式

休眠模式是关机状态的一种实现。在休眠模式下,核心逻辑关闭电源,但cache RAMs保持通电。通常,RAM被保持在低功耗retention状态,即它们保持其内容但没有其他功能。这比完全关闭提供了更快的重新启动速度,因为活动数据和代码保留在缓存中。同样,在cluster中,可以将单个核心置于休眠模式。

在允许单个核心进入休眠模式的cluster中,当核心断电时没有保持一致性的空间。因此,这些核心必须首先从一致性域中隔离出来。它们在执行此操作之前清除所有脏数据,并且通常是通过另一个核心发出信号,以通知外部逻辑重新应用电源来唤醒它们。

然后,唤醒的核心必须在重新加入一致性域之前恢复原始核心状态。由于核心在休眠模式下时内存状态可能已更改,因此可能仍然需要使缓存失效。因此,休眠模式更可能在单个核心环境中有用,而不是在cluster中。这是因为离开和重新加入一致性域的额外成本。在集群中,休眠模式通常只有在其他核心已经关闭时,最后一个核心才会使用。

Hotplug-热插拔

热插拔是一种动态开关核心的技术。OSPM可以利用热插拔根据当前计算需求来改变可用的计算容量。有时,热插拔也用于可靠性方面的考虑。

热插拔和将核心置于关机状态以节能的使用之间存在几个不同之处:

  • 当一个核心被热拔插时,监督软件会停止所有对该核心的中断和线程处理。该核心不再被调用的操作系统视为可用。
  • OSPM必须发出一个明确的命令将一个核心重新上线,即热插拔一个核心。适当的监督软件只有在此命令之后才开始对该核心进行调度或启用中断。

操作系统通常会在一个主核上执行大部分内核引导过程,并在稍后的阶段将从核bringing up。Secondary boot的行为类似于将一个核心热插入系统中。这两种情况下的操作几乎是相同的。

三、动态电压和频率调节

许多系统在其工作负载可变的条件下运行。因此,能够降低或提高核心性能以匹配预期的核心工作负载是很有用的。降低核心的时钟频率可以减少动态功耗。动态电压频率调节(DVFS)是一种利用以下特性的节能技术:

  • 功耗与操作频率之间的线性关系。
  • 功耗与操作电压之间的二次方关系。该关系可表示为: P = C × V^2 × f

其中:

P 是动态功耗。

C 是相关逻辑电路的开关电容。

V 是操作电压。

f 是操作频率。

通过调整核心时钟的频率来实现节能。

在较低的频率下,核心还可以以较低的电压运行。降低供电电压的优点是既降低了动态功耗,也降低了静态功耗。

对于给定电路,操作电压和电路可以安全运行的频率范围之间存在着具体的实现关系。操作频率和相应的操作电压组合成一个元组,称为操作性能点(Operating Performance Point,OPP)。对于给定系统,可达到的OPP范围总称为系统DVFS曲线。

操作系统使用DVFS来节省能量,并在必要时保持在热限制内。操作系统提供DVFS策略来管理所消耗的电力和所需的性能。针对高性能的策略选择更高的频率并使用更多的能量。而针对节能的策略选择较低的频率,因此使性能较低。

四、汇编语言power指令

ARM汇编语言包括可用于将核心置于低功耗状态的指令。架构将这些指令定义为提示(hints),这意味着核心在执行它们时不需要采取任何特定的操作。然而,在Cortex-A处理器系列中,这些指令是以一种方式实现的,即关闭了几乎所有核心部件的时钟。这意味着核心的功耗被降低,以至于只有静态漏电电流,而没有动态功耗。使用WFI指令可以将执行暂停,直到核心被以下条件之一唤醒:

  • IRQ中断,即使PSTATE I位被设置。
  • FIQ中断,即使PSTATE F位被设置。
  • 异步abort。

如果核心在相应的PSTATE中断标志被禁用时被中断唤醒,则核心在WFI之后执行下一条指令。

WFI指令在电池供电的系统中被广泛使用。例如,移动电话可以将核心置于待机模式,而在等待按下按钮时可能会多次进行这样的操作。

WFE与WFI类似。它暂停执行直到发生事件。这可以是列出的事件条件之一,也可以是cluster中另一个核心发出的事件。其他核心可以通过执行SEV指令来发出事件。SEV向所有核心发出事件信号。通用定时器也可以编程触发周期性事件,从而唤醒核心离开WFE。

五、电源状态协调接口

电源状态协调接口(PSCI)提供了一种与操作系统无关的方法,用于实现核心的启动或关闭的功耗管理用例。这包括:

  • 核心空闲管理。
  • 动态添加和移除核心(热插拔),以及从核引导。
  • big.LITTLE 迁移。
  • 系统shutdown和reset。

通过这个接口发送的消息被所有相关执行级别接收。也就是说,如果EL2和EL3被实现,操作系统在虚拟机中执行的消息必须被一个hypervisor接收。如果hypervisor发送它,消息必须被安全固件接收,然后与一个可信操作系统进行协调。这使得每个操作系统可以确定是否需要进行上下文保存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维码门楼牌管理系统:城市数字化管理的新里程碑

文章目录 前言一、二维码门楼牌管理系统的构成二、二维码门楼牌管理系统的功能三、二维码门楼牌管理系统的应用四、二维码门楼牌管理系统的未来发展 前言 随着城市管理的数字化、智能化水平不断提升,二维码门楼牌管理系统作为一种创新的城市管理方法,正…

JavaScript 学习总结(17)—— 前端开发规范之命名规范、html 规范、css 规范、js 规范

前言 一个好的程序员肯定是要能书写可维护的代码,而不是一次性的代码,怎么能让团队当中其他人甚至一段时间时候你再看你某个时候写的代码也能看懂呢,这就需要规范你的代码了。我是有一点强迫症的人,上周我们后端给我了一个CanUsename的接口(该接口的目的是判断输入的目的…

Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项

问题描述 最近想用 Rider 作为 UE4 开发的 IDE,但安装好 Rider 后,发现编辑器下拉框中没有 Rider 的选项,我检查了 UE4 的插件,发现 Rider Integration 插件已经安装且启用的。 环境:Ubuntu 20.04 UE4.27 Rider2023…

应急加电电源车-在航空航天、武器等多领域的应用

应急加电电源车是一种专门设计用于在紧急情况下为其他设备提供电力支持的车辆。它通常由电池或燃料电池驱动,可以在没有外部电源的情况下为其他设备提供持续的电力供应。这种车辆在灾难救援、野外作业、军事行动等领域具有广泛的应用。 应急加电电源车通常具有以下…

WordPress建站入门教程:如何在本地电脑搭建WordPress网站?

前面跟大家分享了『WordPress建站入门教程:如何安装本地WordPress网站运行环境?』,接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板(phpstudy)的“软件管理 – 网站程序”虽然可以一键部…

Springboot+vue的高校教师教研信息填报系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的高校教师教研信息填报系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&am…

数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

数据审计 -本福德定律 Benford’s law 准备工作,可以去下载 classicmodels 数据库资源如下 [ 点击:classicmodels] 也可以去我的博客资源下载 文章目录 数据审计 -本福德定律 Benfords law 前言一、什么是 本福德定律?二、数学公式三、应用…

最新会声会影2024旗舰版系统配置要求

大家好呀!小编今天给大家带来了一个超级实用的信息,关于会声会影2024旗舰版的系统配置要求! 会声会影2023-安装包: https://souurl.cn/gtyDFc 会声会影2023-安装包: https://souurl.cn/ZQ6QWp 会声会影2022-安装包&a…

Java零基础-反序列化和序列化

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测 目录 回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-BiTCN-B…

mc生存插火把

题目描述 话说有一天 linyorson 在“我的世界”开了一个 nn 的方阵,现在他有 m 个火把和 k 个萤石,分别放在 (x1,y1)∼(xm,ym) 和 (o1,p1)∼(ok,pk)的位置,没有光并且没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物&#xf…

Vue开发实例(六)实现左侧菜单导航

左侧菜单导航 一、一级菜单二、二级菜单三、三级菜单1、加入相关事件 四、菜单点击跳转1. 创建新页面2. 配置路由3. 菜单中加入路由配置4、处理默认的Main窗口为空的情况 五、动态左侧菜单导航1、动态实现一级菜单2、动态实现二级菜单 一、一级菜单 在之前的Aside.vue中去实现…

SRIO--IP讲解及环回测试

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、IP例化文件二、SRIO环回工程搭建三、板级验证3.1 板级验证环节3.2 系统所需硬件3.3 ILA波形前言 本章将为大家介绍 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Ge…

JavaScript入门学(Web APIs)

1.变量声明 2 DOM介绍 2.1 什么是DOM 2.2 DOM树 2.3 DOM对象&#xff08;重要&#xff09; 3.DOM&#xff08;文档对象模型&#xff09;-获取元素 3.1 获取匹配的第一个元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

Canvs的js库:Fabric.js简单强大,用于绘制各种图形

Fabric.js是一个用于创建交互式的HTML5 Canvas应用程序的JavaScript库。它提供了一个简单而强大的API&#xff0c;用于在Web浏览器中绘制和操作图形对象。Fabric.js可以用于创建各种图形应用程序&#xff0c;例如绘图编辑器、图像编辑器、流程图、地图和数据可视化等。 官网文…

校企合作项目总结

校企合作总结 前言项目框架开发待办水平越权总结 前言 寒假里小组给了校企合作的项目&#xff0c;分配给我的工作量总共也就两三套crud&#xff0c;虽然工作很少&#xff0c;但还是从里面学到了很多东西&#xff0c;收获了大量的实习经验&#xff0c;在这里总结记录一下。 项…

FreeRTOS学习笔记——FreeRTOS中断管理

精华总结&#xff1a; 中断优先级0为最高&#xff0c;任务优先级0为最低 中断优先级分组中为方便rtos管理4bit全部设置成抢占优先级 32单片机的中断管理是由3个寄存器完成&#xff08;名字忽略&#xff0c;具体功能忽略&#xff09;&#xff0c;三个寄存器都是32bit&#xff0c…

微信小程序云开发教程——墨刀原型工具入门(文件设置+编辑组件)

引言 作为一个小白&#xff0c;小北要怎么在短时间内快速学会微信小程序原型设计&#xff1f; “时间紧&#xff0c;任务重”&#xff0c;这意味着学习时必须把握微信小程序原型设计中的重点、难点&#xff0c;而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

NOC2023软件创意编程(学而思赛道)python小高组决赛真题

目录 下载原文档打印做题: 软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认…

【风格迁移】StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题

StyTr2&#xff1a;引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题 提出背景StyTr2 组成StyTr2 架构 提出背景 论文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代码&#xff1a;https://github.com/diyiiyiii/StyTR-2 问题&#xff1a; 传统的神经…