今天来学习一下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及以上版本中。
2键触摸检测芯片PT2032C简介
中国超算:百亿亿次的卫冕考问
LED驱动设计技巧及应用方案集锦
NVIDIA的一个可能解决方案是利用AI的力量
小型无人机全姿态增稳控制系统的设计与实现
学习一下ARM的智能功率分配技术
为什么CAN能取代RS485?
如何实现(电脑)PC机与单片机AT89C51的串行通信
物联网平台的未来会是怎样的
报道称M1 Mac mimi功耗仅为Intel芯片版本的1/3
软件发展教育先行 数码大方支持大学生成图大赛
关于CC1120开发套件的特点及应用介绍
网络升级的样板——易飞扬特色扇出型光模块
Dialog在SmartServer™生态系统中增加AI和数据分析合作伙伴,引领工业数字化转型
思林杰收上交所监管工作函
三位量子精密测量研究者荣膺“墨子量子奖”
兆易创新推出GD32VW553系列Wi-Fi 6 MCU
ADS7846控制器的特性及引脚图
新型橡胶复合材料有望应用于柔性电子器件中
加速度传感器(MPA1064A)实测---LOTO虚拟示波器