16

棋子 · 2023年04月10日

ARM系列 -- IPA

今天来学习一下ARM的“智能功率分配”(Intelligent Power Allocation)技术,下文中简称IPA。大家不要与地址转换中的“中间物理地址”(Intermediate Physical Address)混淆了。

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的功率上限,结合组件的功率需求,动态分配每个组件的功率值。

image.png

从硬件组成上来看,首先IPA需要有一个功率仲裁(Power Arbiter)单元。功率仲裁器内要实现一个PID控制器,其控制输入是温度传感器,功率策略(Power Policy)和设备的功率请求,控制输出是各个设备的功率/性能限定。

image.png

PID控制器是一个闭环控制系统(closed-loop control system),广泛应用于工业控制中。所谓的闭环控制系统,指的是被控对象的输出会反送回来影响控制器的输出。闭环控制系统有正反馈和负反馈之分,若反馈信号与系统给定值信号相反,则称为负反馈(Negative Feedback),若极性相同,则称为正反馈(positive feedback)。

PID的这三个单词分别代表的是比例控制,积分控制和微分控制。其中,P是控制器的输出与输入误差信号成比例关系;I与误差积分成正比,表示过去错误的累积值;D与误差的倒数成正比关系,根据D当前变化率进行线性外推,预测未来误差。PID控制器的数学表达参考下图。

image.png

功率模型代表了冷却设备的功率特性。功率模型包含了设备的频率限制,性能与功率的相对关系等。功率模型的质量决定了应用IPA的质量,如果功率模型偏差太大,那么IPA的效果肯定好不到哪去。功率模型不是一个完全的设计值,应该是通过芯片测试加以校对得出的。所以,无论模型有多精确,实际功耗仍与功率模型预测有偏差。

功率分配策略(power allocation policy)是在软件中定义的。如果一个设备被分配的功率值小于其最大性能所需要的功率值,那么设备将工作在分配的功率值,也就是此设备性能受限,工作在对应的电压/频率点;如果设备被分配的功率值大于其最大性能所需要的功率值,那么多余的功率会被分配给其它的设备。功率分配策略也是一个通过测试和调教,迭代出来的。功率分配策略和功率模型会共同影响IPA的执行效果。

下面是一个了IPA运行测试案例。SoC系统中有大核处理器,小核处理器和GPU。图中的横坐标是时间,纵坐标是频率。红线表示的是GPU模块的频率随时间变化;绿线表示的是小核的频率随时间变化;蓝线表示的是大核的频率随时间变化。

在芯片启动阶段,也就是图中的“Period 1”阶段,由于其内部温度低,IPA没有启动,所以三个模块均工作在最高频率。

image.png

在“Period 2”和“Period 4”阶段,GPU的负载大,CPU的负载小,所以分配给GPU的功率多,GPU工作在较高的频率,而CPU工作在较低的频率。

image.png

在“Period 3”阶段,GPU的负载小,CPU的负载大,这时分配给CPU的功率多,CPU工作在较高的频率。

image.png

芯片工作了一段时间后,其内部温度上升。在“Period 5”阶段,IPA对所有的模块进行了功率限制,GPU和CPU都工作在了较低的频率。

image.png

最后总结一下,IPA是一个软硬件相结合的SoC功耗/热解决方案。在硬件方面,SoC需要实现调压调频的机制,温度传感器等,并且在设计初期划定好需要管理的“热区”;在软件方面,需要实现硬件驱动程序,上层的分配算法等等。采用IPA技术的往往是复杂的SoC,通常在这些SoC上需要运行操作系统。目前,IPA已经集成在Linux 4.2及以上版本中。

今天就到这里吧,是不是没用的知识又增加了一些呢?

作者:老秦谈芯
文章来源:老秦谈芯

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
11187
内容数
1222
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息