今天来学习一下ARM的“智能功率分配”(Intelligent Power Allocation)技术,下文中简称IPA。大家不要与地址转换中的“中间物理地址”(Intermediate PhysicalAddress)混淆了。
IPA是一个跟芯片功耗相关的方案。前面讲过芯片低功耗设计方法,比如动态调压调频(DVFS),时钟门控等等,基于的是功耗控制角度。今天我们从芯片热管理(Thermal Management)角度看一下。
为了提高芯片的性能,可以对于CPU等组件采取加压升频的办法。
这时,我们可能忽略了一点,就是芯片的散热问题。芯片的工作电压越高,频率越快,单位时间内消耗的能量越多,其中一部分电能转化成热能。
这部分热能累积在芯片内部,如果不能即时的散发出去,将会对芯片产生很大的危害,可能会造成芯片的使用寿命变短,工作异常,甚至是芯片被毁坏。
对于某些芯片的工作环境来说,可以增加一些必要的散热手段,虽然会增加整体系统的成本,比如我们可以在设备中增加风扇,散热片,散热管,水冷等设施。
但是有些芯片的工作环境受限,比如手机芯片,就没办法增加散热设施。这就要求芯片主动进行热管理,软件可以通过芯片中的硬件组件(比如传感器)来感知芯片中的温度,结合算法来调整硬件的供电电压和工作频率。
在Linux内核中,控制芯片内部温度的机制叫做“热框架(Thermal Framework)”。在这套体系下,芯片中有一个热管理组件(governor),芯片内部可以划分成多个“热区(Thermal Zone)”,每个热区中有温度传感器和冷却设备(Cooling Device)。这里的冷却设备指的是产生热能的组件,也就是功能模块,比如CPU和GPU。
这也好理解,因为芯片内的降温手段只能是被动的(passive),即让功能模块在单位时间内少产生热能。 IPA就是热管理组件。IPA的基本原理是基于一个比例积分微分(Proportional Integral Derivative,PID)控制器和一套功率分配算法,并且要求冷却设备提供功率模型(Power Model)。
IPA通过比例积分微分控制器来感知芯片的温度控制需求,然后通过算法来动态确定每个组件的功率上限(Power Budget),最后通过组件的功率模型来调整其工作环境。接下里一一介绍。 下图展示了IPA如何工作。IPA通过温度传感器探测芯片中的温度,确定SoC的功率上限,结合组件的功率需求,动态分配每个组件的功率值。
从硬件组成上来看,首先IPA需要有一个功率仲裁(Power Arbiter)单元。功率仲裁器内要实现一个PID控制器,其控制输入是温度传感器,功率策略(Power Policy)和设备的功率请求,控制输出是各个设备的功率/性能限定。
PID控制器是一个闭环控制系统(closed-loop control system),广泛应用于工业控制中。所谓的闭环控制系统,指的是被控对象的输出会反送回来影响控制器的输出。闭环控制系统有正反馈和负反馈之分,若反馈信号与系统给定值信号相反,则称为负反馈(Negative Feedback),若极性相同,则称为正反馈(positivefeedback)。
PID的这三个单词分别代表的是比例控制,积分控制和微分控制。其中,P是控制器的输出与输入误差信号成比例关系;I与误差积分成正比,表示过去错误的累积值;D与误差的倒数成正比关系,根据D当前变化率进行线性外推,预测未来误差。PID控制器的数学表达参考下图。
功率模型代表了冷却设备的功率特性。功率模型包含了设备的频率限制,性能与功率的相对关系等。功率模型的质量决定了应用IPA的质量,如果功率模型偏差太大,那么IPA的效果肯定好不到哪去。功率模型不是一个完全的设计值,应该是通过芯片测试加以校对得出的。
所以,无论模型有多精确,实际功耗仍与功率模型预测有偏差。 功率分配策略(power allocation policy)是在软件中定义的。如果一个设备被分配的功率值小于其最大性能所需要的功率值,那么设备将工作在分配的功率值,也就是此设备性能受限,工作在对应的电压/频率点;如果设备被分配的功率值大于其最大性能所需要的功率值,那么多余的功率会被分配给其它的设备。
功率分配策略也是一个通过测试和调教,迭代出来的。功率分配策略和功率模型会共同影响IPA的执行效果。
下面是一个了IPA运行测试案例。SoC系统中有大核处理器,小核处理器和GPU。图中的横坐标是时间,纵坐标是频率。红线表示的是GPU模块的频率随时间变化;绿线表示的是小核的频率随时间变化;蓝线表示的是大核的频率随时间变化。 在芯片启动阶段,也就是图中的“Period 1”阶段,由于其内部温度低,IPA没有启动,所以三个模块均工作在最高频率。
在“Period 2”和“Period 4”阶段,GPU的负载大,CPU的负载小,所以分配给GPU的功率多,GPU工作在较高的频率,而CPU工作在较低的频率。
在“Period 3”阶段,GPU的负载小,CPU的负载大,这时分配给CPU的功率多,CPU工作在较高的频率。
芯片工作了一段时间后,其内部温度上升。在“Period 5”阶段,IPA对所有的模块进行了功率限制,GPU和CPU都工作在了较低的频率。
最后总结一下,IPA是一个软硬件相结合的SoC功耗/热解决方案。在硬件方面,SoC需要实现调压调频的机制,温度传感器等,并且在设计初期划定好需要管理的“热区”;在软件方面,需要实现硬件驱动程序,上层的分配算法等等。采用IPA技术的往往是复杂的SoC,通常在这些SoC上需要运行操作系统。目前,IPA已经集成在Linux 4.2及以上版本中。
审核编辑:刘清
学习一下ARM的智能功率分配技术
- 处理器(221450)
- ARM(361233)
- 控制器(170262)
- SoC系统(10562)
- DVFS(11920)
相关推荐
ARM和安卓开发学习
师兄师姐们你们好,我以前学过单片机,并且用单片机做过一些项目,比如关于单片机对220V白炽灯的智能光照控制系统,走迷宫的机器人等。现在只学习单片机已经不能满足社会前进的需求了,所以,后面我想学习一下
2013-11-24 00:54:29
ARM汇编学习
以前用ARM的IDE工具,使用的是ARM标准的汇编语言。现在要使用GNU的工具,当然要了解一点GNU ARM汇编的不同之处。其实非常的简单,浏览一下文档然后再看看程序就完全可以搞定了,或者你硬着头皮
2017-11-24 10:52:41
arm学习遇到分离点,希望学习过来的给点建议
,挺有趣的。看了之后,觉得如何想对编程掌握更好的话,很有必要看c的数据结构和算法分析,接着也有朋友建议要看程序的堆栈分配和管理,学一下如何裁剪linux内核,ubootfileSystem的制作所以希望学习过来的烧友们给予适当建议~~谢谢
2012-12-29 19:25:23
arm技术是哪个国家的
ARM是一家成立于1990年的芯片设计公司,总部仍位于英国剑桥。 ARM公司本身并不生产处理器,而是将其技术授权给世界上许多著名的半导体、软件和OEM厂商。全世界有超过95%的智能手机和平
2020-06-22 09:33:58
一个学习ARM菜鸟的学习历程
高大上,但是一直不知道该怎么入门,于是随便在百度上搜了一下,刚好看到朱老师的零基础带你学Linux,说实话也没太在意,毕竟这种标题的课件太多了。点开看了一下,他先讲了一下嵌入式这个行业的发展,然后讲了
2016-01-03 09:49:25
功率源校准智能空开的问题
功率源校准智能空开的问题1.功率源面板为何有IA和Ia?怎么有两个电流端口?2.为何使用功率源校准智能空开时,UA和IA要短接起来?谁搞过智能空开的,讨论下
2018-06-28 09:58:57
功率分配器
依旧是凉风习习的天气,不过踏青正好。叶子都长很茂盛了,夏天的脚步来了。今天我们来了解下功率分配器吧。分配嘛,自然就有分担的意思在里边,这么长的名字,我们就简称为功分器了,它是一种将一路输入信号能量
2014-05-07 18:30:48
学习ARM流程的讨论
最近在学习ARM,我的方法是1、学习51单片机的开发;2、ARM裸机开发;3、然后再打算学习Linux。可是我没有Linux的任何基础,不知道怎么做?有没有高手,指导一下怎么学习Linux啊?或者推荐一些Linux的好书或资料??
2013-04-08 12:00:23
评论