ARMv8 Power Management

2024-05-27 15:08
文章标签 armv8 management power

本文主要是介绍ARMv8 Power Management,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

	能源消耗分类静态功耗:每当核心逻辑或RAM块通电时,就会发生静态功耗,也称为泄漏。一般来说,漏电流与总硅面积成正比,这意味着芯片越大,漏电流越高。随着制造几何尺寸的减小,泄漏造成的功耗比例显著增加。动态功耗:是由于晶体管切换而产生的,是核心时钟速度和每个周期改变状态的晶体管数量的函数。显然,更高的时钟速度和更复杂的内核会消耗更多的功率。
	基础:OSPM操作系统电源管理(Operating System Power Management,OSPM)在将计算从一个大内核转移到一个小内核,或从一个小内核转移到一个大内核时,可能必须打开或关闭内核和集群。PSCIARM提供了的软件接口,即功率状态协调接口(PSCI)
	降低功耗方法 // ARM内核通常支持多种级别的电源管理idle 管理相关概念power gatingremove power, which removes both dynamic and static currents// 但是断电前要保存状态// 恢复后要恢复状态// 且 恢复需要额外的能源消耗// 所以有时候一刀切不是最好的选择clock gatingstop the clock of the core which removes dynamic power consumption only第一个方法:Standby在待机操作模式下,内核保持通电,但其大多数时钟停止这意味着,core的几乎所有部分只有静态功耗(泄漏电流)唯一的动态功耗 是 1.观察唤醒条件的少量逻辑的时钟如何进入:使用WFI(等待中断)或WFE(等待事件)指令进入该模式。如何退出:对于WFI,中断或外部调试请求将唤醒内核。对于WFE,存在许多指定的事件,包括集群中执行SEV指令的另一个核心。A request from the Snoop Control Unit (SCU) can also wake up the clock for a cache coherency operation in an multi-core system.具体哪些模块的的时钟会停止实现定义进入退出产生的影响待机模式可以快速进入和退出(通常在两个时钟周期内)。因此,它对内核的延迟和响应能力的影响几乎可以忽略不计。对于管理电源的操作系统来说,待机状态和保留状态基本上是无法区分的。这种差异对于外部调试器和硬件实现来说很明显第一个方法的变体:Retention类似 standby + debug逻辑停止的状态第二个方法:Power down // core 断电core 断电降低了什么功耗core 的 动态功耗和静态功耗包括 cache RAM的功耗core 断电前应该做什么软件必须在core 断电前保存所有状态(取决于实现)到内存(DDR).以便恢复怎么给 core 断电// TODOcore 怎么恢复 电源// TODOcore 恢复电源的过程1.A reset of the core, after the power level has been restored.2.core will restart at the reset vector, typically in secure mode3.After initializing, the Secure world must resume the OS that called the power down interface, at the required return address第二个方法的变体:Dormant mode // 休眠模式相对于 "Power down",没有断cache RAM的电,所以可以休眠前,将状态保存到 RAM中, 从而恢复的时候更快仅适用于单核或(多核中的其他核心都关闭,且最后一个休眠的单核),因为多核时,一个core对应的cache 可能会被其他核心改变hotplug热插拔是一种可以动态打开或关闭内核的技术。热插拔的应用场景OSPM可以根据当前的计算需求 来 更改可用的计算容量(即热插拔)可靠性原因热插拔和在"Power down"有许多不同之处:1.当core热插拔时,监控软件会停止在中断和线程处理中使用该core。操作系统不再认为core可用。2.OSPM必须发出一个明确的命令,使core恢复在线,即热插拔core。相应的监控软件只会在该命令发出后开始安排或启用对该core的中断。被拔出之后,怎么恢复操作系统通常在一个主core上执行大部分内核引导过程,完成之后再使第二个core online二次引导的行为非常类似于将内核热插拔到系统中。两种情况下的操作几乎相同。动态电压,频率缩放调制许多系统在工作负载非常多变的情况下运行。有能力降低或提高核心性能,以匹配预期的核心工作量,这将是有用的。如果你能在内核不那么忙的时候慢一点时钟,你就能节省动态功耗。动态电压和频率缩放(DVFS)是一种利用以下技术,他利用了•功耗和工作频率之间的线性关系。•功耗和工作电压之间的二次关系。这个关系式为:P=C*V^2*fP是动态功率。C是相关逻辑电路的开关电容。V是工作电压。f是工作频率。关系式解析通过调节core的频率,使其与当前负载成比例,可以实现节电。一些频率可以在较低的电压下使用,并且可以实现净二次型节能。如果core运行更慢,其电源电压也会有所降低。降低电源电压的优点是可以降低动态和静态功率。与快速运行,然后进入待机状态,然后快速运行等替代方案相比,以较低的电源缓慢运行的方法可以节省能源。软件控制参数的工程问题: // SoC要求运行在ARM内核上的软件能够可靠地修改内核的时钟速度和电源电压,而不会在系统中造成问题。1.这需要诸如电压电平移位器和芯片上的分离电源来应对可变电源,以及电压域之间的同步器来应对时序变化。2.同样重要的是,系统中运行的软件能够准确预测未来的工作负载,从而相应地设置电压和时钟速度。对于给定的系统,可达到的OPP范围统称为系统DVFS曲线。给定电路的工作电压与电路可以安全工作的频率范围之间存在特定于实现的关系。给定的工作频率及其相应的工作电压表示为元组,称为工作性能点(OPP)。操作系统对DVFS的应用OS使用DVFS来节约能源,并在必要时保持在热限制范围内。core上的负载 调节 其工作频率。操作系统提供DVFS策略来管理功耗和所需的性能。针对高性能的策略选择更高的频率并使用更多的能量。旨在节能的政策会选择较低的频率,因此会导致较低的性能。
	power相关指令WFI/WFEWFI 进入Standby后如何被唤醒:• An IRQ interrupt, even if the CPSR I-bit is set.• An FIQ interrupt, even if the CPSR F-bit is set.• An asynchronous abort.• A Debug Entry request, even if JTAG Debug is disabledWFE 进入Standby后如何被唤醒:可以唤醒WFI的所有事件由集群中的另一个核心发出信号的事件SEV // SEV向集群中的所有核心发送事件信号。
	power 状态 协调 接口 // Power State Coordination Interface // PSCI需求来源如果管理电源的操作系统想要1.进入空闲状态2./下一个内核的电源2.迁移,其他特权级别的操作系统必须对此请求做出反应。同样,如果内核被唤醒事件从电源状态唤醒,则以其他权限级别运行的操作系统可能需要执行诸如恢复状态之类的操作。现状由于来自不同供应商的操作系统可以在ARM系统中同时执行,因此在执行电源控制时,需要有一种协作方法。但是没有免费提供的接口允许各种操作系统之间的互操作和集成。这给操作系统供应商带来了困难。解决方案ARM提供了一个软件接口,即功率状态协调接口(PSCI),这样OSPM就可以在核心没有工作时将其置于低功率状态。使用此接口,操作系统和固件可以在大型计算机上实现空闲、热插拔和状态迁移等电源管理技术。使用此接口发送的消息由所有相关执行级别接收。也就是说,如果实现了虚拟化和安全扩展,富操作系统发送的消息必须由虚拟机监控程序接收。如果后者发送消息,则安全固件必须接收该消息,然后与受信任的操作系统进行协调。这使每个操作系统能够确定是否需要保存上下文。PSCI指定了以下功能:CPU_SUSPEND在core上暂停执行。此调用用于空闲子系统,其中内核将通过唤醒事件返回执行。MIGRATE这用于请求单个核心的受信任操作系统将其上下文迁移到特定的核心CPU_OFF关闭了一个内核的电源。此呼叫用于热插拔。CPU关闭时断电的内核只能在CPU打开时再次通电CPU_ON开启一个核心。此调用用于为以下内核供电:•尚未启动到调用操作系统。•之前因CPU_关闭而断电。
  • ARM系列 – PCSA(一)
  • ARM系列 – PCSA(二)
  • SoC设计之功耗 – DVFS
  • ARM系列 – PSCI
  • ACPI Specification 第二章 条款的定义

这篇关于ARMv8 Power Management的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007821

相关文章

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

安装SQL2005后SQL Server Management Studio 没有出来的解决方案

一种情况,在安装 sqlServer2005 时 居然出现两个警告: 1 Com+ 目录要求 2 Edition change check 郁闷!网上说出现两个警告,是肯定装不成功的!我抱着侥幸的态度试了下,成功了。 安装成功后,正准备 “ 仅工具、联机丛书和示例(T)” 但是安装不了,他提示我“工作站组件”安装过了对现有组件无法更新或升级。 解决办法: 1 打开“控

Keysight U8031A DC power supply

Keysight U8031A DC power supply 文章目录 Keysight U8031A DC power supply前言电容充电⽰意图一、恒定电压操作二、恒定电流操作三、5v操作四、跟踪模式操作五、存储器操作六、对过电压保护编程七、对过电流保护编程八、锁键操作 前言 U8031A Power Supply 是一款具备前面板编程能力的三路输出电源。通过使

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程

超详细的 SQL Server Management Studio (SSMS) 下载、安装、连接数据库配置及卸载教程 SQL Server Management Studio (SSMS) 是微软提供的图形化管理工具,主要用于连接、管理和开发 SQL Server 数据库。以下是详细的 SSMS 下载、安装、连接数据库以及卸载的完整教程。 一、SSMS 下载与安装 1.1 下载 SSM

PrimeTime low power-SMVA分析(4)

1.6使用示例 以下使用示例展示了SMVA流程: - 所有电压条件下的SMVA分析 - 特定DVFS约束下的SMVA分析 在以下脚本示例中,红色突出显示的文本显示了在SMVA流程中使用的命令、命令选项和变量。这些功能只有在将timing_enable_cross_voltage_domain_analysis变量设置为true时才能使用。 1.6.1所有电压条件下的SMVA分析 要对多

PrimeTime low power-SMVA分析(2)

1.4 DVFS 场景 对于使用动态电压和频率缩放(DVFS)的设计,可以使用 DVFS 场景来同时分析设计在所有 DVFS 条件下的性能。有关详细信息,请参见以下主题: - DVFS 场景概念 - 查询 DVFS 场景 - 将 DVFS 场景应用于命令和属性 - 与 DVFS 相关的对象属性 注意: DVFS 场景是在 SMVA 分析中使用的电压/频率场景。它们与分布式多场

【Power Compiler手册】9.时钟门控(4修改时钟门控结构)

修改时钟门控结构 在执行 RTL 时钟门控时,可以指定 `set_clock_gating_style -max_fanout` 命令来限制由单个时钟门控元素门控的寄存器数量。结果可能是具有相同使能信号的多个时钟门控元素,并且在逻辑上,具有相同的门控时钟信号。所有具有相同使能信号的时钟门控单元属于同一个时钟门控组。由单个时钟门控元素门控的所有寄存器属于同一个时钟门控子组。 由 `compi

幂等运算power

分治思想   public static double power(double base, int exponent) {if ((equalToZero(base)) && (exponent <= 0)) {throw new IllegalArgumentException();}int positiveExponent = (exponent > 0 ? exponent : -ex

Fast Power

Calculate the an % b where a, b and n are all 32bit non-negative integers. Example For 231 % 3 = 2 For 1001000 % 1000 = 0 Challenge O(logn) 思想:recursion算一半,然后base case,处理算完一半以后的情况; 公式就是 (a*b) %