今天来学习一下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
学习ARM要准备些什么啊?
本帖最后由 eehome 于 2013-1-5 10:07 编辑
学习ARM要准备些什么啊?跪求哪位大侠详细阐述一下,本人打算学习ARM但是不知从哪里下手,好像要装Linux系统吧!但听说在哪个系统下在windows下的驱动如:声卡驱动,就没用不知是不是?哪位学过ARM的大虾指教一下!{:1:}
2012-12-13 20:07:49
学习一下openmv的使用
openmv与stm32的串口通信简谈闲话Openmv主要代码STM32单片机的配置运行效果图片如下简谈闲话这两天本人利用周末时间粗略的学习一下openmv的使用,目的是用openmv图像处理数据并
2021-08-11 06:57:23
智能分配电流的最大功臣是谁?
分配电流,那我们就来仔细分析一下这套方案里那些仙童的IC——小米USB充器内含的仙童FAN6230A是一块整流主控IC,用来控制MOSFET,提高充电器的效率和保护充电电路;另一块仙童的芯片
2018-10-09 10:43:53
RFID技术对促进智能交通落地有什么影响?
脱颖而出。RFID技术在促进智能交通落地的同时,自身也得以更深入地发展应用。下面就随汽车电子小编一起来了解一下相关内容吧。
2019-09-04 07:14:46
《移动终端人工智能技术与应用开发》+理论学习
收到《移动终端人工智能技术与应用开发》有一段时间了,由于时间有限,加上工作原因,目前只看到第3章,前几章主要介绍人工智能和机器学习的基础知识,发展历程,分类等,重点说明了,在移动终端上如何实现人工之
2023-02-27 23:28:20
【OK210申请】基于ARM的图像采集和无线传输技术
学习ARM嵌入式开发的学习,所以急需这个板子进行开发学习。虽然我是初次接触ARM系列的开发平台,但是我相信在我的努力下,我一定会成功完成项目的开发工作项目描述:在我们的日常生活中,我们时时刻刻都在接触
2015-08-01 04:28:14
人工智能和机器学习技术在2021年的五个发展趋势
人工智能和机器学习如今一直在改变着我们的世界,2020年发生的冠状病毒疫情为这两种技术带来了新的机会和紧迫性,预计在2021年将会有更大的发展。疫情显然已经成为一种催化剂,从产品创新到消费者偏好
2021-01-27 06:10:12
以I.MX6ULL开发板为例来介绍一下嵌入式技术的学习步骤
本节结合迅为的终结者 I.MX6ULL 开发板来介绍一下嵌入式技术的学习步骤。大家都知道,嵌入式技术的知识面非常广,学起来往往不知道如何下手,我们通过这一小节给大家阐述一下嵌入式技术应该从哪里开始
2021-12-20 06:29:30
关于arm学习,求助。。。
关于arm的学习,本人之前只玩过51,略有接触430,准备接下来学习arm,想买一块arm11的开发板,有几个同学也一起学,论坛里有没有牛人帮忙介绍下啊,要能提供强大的售后技术服务的,你们都知道的,我还是个菜鸟呀,,谢谢大家啊1!!!!!
2012-09-12 15:01:32
分享一位老前辈撰写的ARM学习小记
意识到了这一点,嵌入式系统的 未来值得期待。作为个人来讲,无论你是单片机爱好者,还是电子技术应用专业的在校大学生,在掌握8051应用之后都应该尽 量学习一下ARM方面的知识。我个人推荐你学习三星电子
2016-08-06 14:47:28
刚学习DSP,想问一下大家有没有sy***ios的学习视频,可以分享一下吗?谢谢~~
刚学习DSP的小白,什么都不懂,想学sy***ios,可是都找不到视频,请问有哪位大神有,可以分享一下吗?谢谢~~
2017-11-02 19:59:28
初学ARM 求教 学习的流程及内容
本帖最后由 moro024 于 2013-12-17 13:56 编辑
小弟刚接触ARM ,想系统的学习一下ARM开发,但是发现ARM不像51学习起来思路那么清晰,我现在的主要困扰是不知道怎样
2013-12-17 13:55:42
基于深度学习技术的智能机器人
——工业机器人的智能化程度要求也越来越高,采用深度学习技术为工业机器人赋能是目前各大厂商的统一认知。本文结合实际案例,简要说明一下智能机器人的实现流程。一、智能机器人概念 人工智能技术,其主要作用就是用
2018-05-31 09:36:03
如何使用嵌入式的内存分配管理技术
嵌入式---内存分配管理嵌入式的内存一般都非常的小,最进在学习LWIP协议栈的移植,在正点原子的学习资料中找到了许多关于怎么移植协议栈的东西,其中使用到了内存的分配管理技术,能够高效的管理和使用内存
2021-12-17 06:41:46
如何通过VIPower M0TM技术去实现车用智能功率开关?
驱动汽车电子负载的VIPower上桥臂驱动器有哪些重要技术?如何通过VIPower M0TM技术去实现车用智能功率开关?
2021-05-13 06:52:56
带你宏观了解一下FPGA的市场,潜力?!
的,在16nm工艺下,和数字电路同在一个die(晶圆上的芯片)上,不得不佩服Xilinx的创新能力真的很强。2.深度学习 深度学习属于人工智能的范畴。深度学习主要研究的是人工神经网络的算法、理论
2018-02-08 10:25:32
想学习一下ARM下linux驱动开发,想要购买一块开发板,大家...
本人刚开始学习ARM,想要向驱动开发方向发展,看中飞凌旗下ARM9开发板FL2440、OK2440和ARM11的OK6410三块开发板,查了很多资料都说ARM9资料多容易学但用的很少,而ARM11相关资料相对较少,大家给点意见我买那块板合适!!
2013-01-07 09:31:31
想学习一下labview的上位机和下位机,求各位技术牛人帮助
想学习一下labview的上位机和下位机,哪位技术牛人有视频啊,帮我发一份吧。邮箱:963436193[url=]@qq.com[/url].万分感谢!
2013-08-09 17:28:10
想学一下matlab,请求一个老师教我一下。
求助一个老师,我是学习电力电子技术专业的学生,想学习一下matlab,我们老师教的不敢恭维呀。有愿教一下小弟的吗??小弟不胜感激呀。。。。
2012-09-13 22:51:34
想问一下RT-Thread系统的动态分配不是分配到堆区吗
,线程栈大小原本设置的是1024,运行后出现hardfault,把线程栈大小改成2048才可以,其中qrcode变量是动态分配的,想问一下动态分配的话不是分配到堆区吗,跟线程栈大小没有关系吧,为什么会出
2022-08-31 14:29:45
想问一下因特尔的vpu是什么技术?
各位大佬,想咨询一下下面的三个问题:①因特尔新推出的VPU技术是什么?未来会用在什么地方?②百度到的vpu是视频处理单元,这个和机器视觉有啥联系呀?③因特尔的vpu在人工智能领域,目前是处于什么的情况?谢谢
2019-11-23 18:46:04
整理一下关于Altium Designer9.0快速建立3D模型的文章,总结一下经验
学习一下网友关于Altium Designer9.0快速建立3D模型的文章,总结一下经验,分享一下,只作技术的交流
2015-12-11 11:44:13
新人求一些关于ARM学习的一些经验
, 之后不知道从何学起 ,最近买了一本C++谭浩强的书 准备学一下 之后准备接触数据结构在学习ARM, 看了一些有经验的人发的帖子 不知道自己应该接触嵌入式硬件还是嵌入式软件 还有ARM7跟ARM9的一
2015-06-22 20:06:10
新手如何学习ARM嵌入式开发
最近有网友问新手该如何学习ARM向其他工程师请教了一下 有以下方法前提:需要会C,了解操作系统,学习嵌入式系统,如linux或者wince下的编程,最好还有单片机经验,那样会事半功倍。1:先看关于
2014-04-18 14:57:33
新手请教一下该怎么学习PCB设计
一点基础, 想请各位前辈指点一下该学什么, 以及怎么学,我目标是要能设计ARM9这样级别的板子, 身边没有做相关工作的前辈可以请教, 目前靠做一些简单的模块板并制作实物来学习; e, i% y8 z4
2014-10-24 14:03:37
新手跪求给点一下学习ARM经验
我大三,马上就要出去实习了,也没多久呆在学校。大三上学期才开始接触嵌入式,目前只学了3门课程。《嵌入式系统概论》,《DSP原理及应用》,《ARM体系结构》。话说虽然学了这三门课,但是真正对嵌入式的学习和理解还是不是很透彻。跪求大神们给点学习的意见,另外想买块板子学学,有什么好用一点的板子推荐吗?
2015-01-10 17:03:56
浅谈ARM嵌入式系统如何学习与入门
学起才好?学了半天还是不懂?其实往往在一门技术的学习上,特别是在基础知识上不能胡乱的学习,只有掌握了技术的核心,运用起来才会得心应手。那么ARM嵌入式系统该如何掌握,怎么去快速入门呢?浅谈ARM嵌入式
2019-03-15 16:49:22
系统的学习一下嵌入式Linux开发
系统的学习一下嵌入式Linux开发,毕竟自己的工作也是这个范围内的,所以对我后期的工作会很有利!Arm架构型号ARM只做芯片设计,不做生产。公司将设计好的芯片卖给半导体厂商,这也是源于公司初期的规模
2021-12-14 06:19:12
记录一下arm裸板编程出现的问题
led. o -o led.elf ,错写成 arm-linux-ld -Ttext 0 led. o start.o -o led.elf在连接的时候必须将启动文件放在第一的位置,因为是在start文件中调用的其他函数,这种错误在make时不会出现错误,记录一下
2018-03-23 11:07:12
记录一下Linux设备模型学习历程
Linux设备模型学习笔记1KobjectKobject, Kset和KtypeUeventsysfs文件系统wowo这里写的很好了:内核等看wowo写的很有帮助我写一下我的理解。记录一下自己的学习
2022-02-17 06:05:12
请教一下有哪些ARM的DMA电路呢
请教一下有哪些arm的DMA电路,现在看到的是DMA330,用的bus好像是AXI的,有没有AHB bus的DMA(ARM设计),谢谢
2022-06-02 09:33:34
请问一下ARM的C文件是用ARM还是THUMB编译的
请问一下ARM的C文件是用ARM还是THUMB编译的?我不知道所选择的 C 文件到底是用ARM还是THUMB编译的,请大侠指点
2022-11-02 14:16:33
谁学过ZigBee技术
`ZigBee技术越来越在智能家居中的优势显现出来,正好我们参赛也需要这方面知识。于是想入手一套开发板,系统的学习一下。主要是基于CC2530的无线网络。求推荐一下,最好有视频.O(∩_∩)O谢谢!`
2014-11-28 16:20:59
可调谐光功率分配器应用及技术
本文介绍了可调谐光功率分配器的应用的几种情况,并介绍了目前可调谐光功率分配器的几种实现技术,相信可调谐光功率分配器在未来的光通信市场中会有非常诱人的应用前景。
2008-12-02 08:13:5617
如何开始进入ARM学习
如何开始进入ARM学习 ARM学习可以分为基于ARM内核的COS开发设计和基于ARM SOC的开发应用。由于站长是做ARM SOC应用的
2010-02-09 18:01:43209
功率分配器的技术指标_功率分配器的功能
功率分配器是一种将一路输入信号能量分成两路或多路输出相等或不相等能量的器件,也可反古将多路信号能量合成一路输出,此时可也称为合路器。下面,我们一起来了解一下功率分配器的技术指标。
2020-01-06 10:30:263903
评论
查看更多