15

棋子 · 2022年03月15日

ARM系列 -- 电源和时钟管理

今天把之前的文章汇总一下,希望大家看完后,对当前ARM体系下如何做电源和时钟管理能有一个总体认识。

本文讨论的是基于ARM IP的大规模SoC中的电源(时钟,复位等)管理,适用于众核处理器,手机SoC,汽车SoC等等。如果是小规模的设计可能就不适用了,比如MCU或者是简单应用的IoT芯片。

关于芯片电源管理,想到了一个比喻,不一定特别贴切,大家权当一乐。用众核处理器举例,AP可以比作企业/行业;SCP比作中央银行;功耗可以比作资金,企业有了资金就可以开足马力生产,反之就要降低产能。至于BMC嘛,大家都懂。

从宏观角度看,BMC监控着整个设备环境,拥有着至高无上的权力,但是一般不直接参与管理。当系统环境变差(经济过热),BMC给SCP(或者是MSCP,总之一个意思)下发命令。随后SCP根据命令适当降低整个多核CPU的功耗(收紧银根,降低资金流动性),但是这个过程中,SCP可能会降低所有的AP功耗;也有可能是关闭一些AP(治理某些过热企业/行业),保留另外的AP全速工作。反过来,当系统环境比较好的时候,BMC告诉SCP可以放宽功耗(货币宽松)。

从微观角度看,也就是每个AP可以根据自己的需求,向SCP发送请求。比如,工作负载大的时候,要求升压超频(申请拨款或者批贷);或者,工作负载小的时候,要求减压降频。这里有一个要求,一个AP不能直接控制SoC或者其它AP的功耗,只能与SCP通信,由SCP来完成。这好理解,虽然所有企业共享一个资金池,但是一家企业不能直接去抢别的企业的配额。

“治大国如烹小鲜”,很多事情道理是相通的,哈哈哈。

回到我们关心的芯片设计,要完成整个芯片的电源管理,需要软硬件结合。一般,上层软件部分交给操作系统(Linux和Android等);下层软件由固件(Firmware)实现;硬件部分由SCP,MHU,PPU这些模块构成,当然Core也需要有相关的硬件支持。这也就是所谓的分层管理机制。

image.png

一句话总结,SCP直接控制SoC的电源和时钟,而AP通过硬件和软件接口协同管理。充分理解下面三张图,就明了了。

image.png

图1 SCP和AP共同完成电源和时钟管理

image.png

图2 SCP负责硬件管理
image.png

图3 Linux电源和时钟管理软件栈

对于我们这些逻辑设计工程师来说,仅仅了解硬件设计是不够的,还要了解软硬件之间的接口。只有清楚了软件如何去调用硬件,才能更好的设计硬件。

先来了解一下SoC中电源和时钟管理的硬件架构:

接下来是软硬件协同的部分,主要是MHU,PSCI和SCMI:

与一些老牌芯片公司比,ARM在芯片电源管理方面做的算不上完美,一部分原因是ARM起步比较晚,尤其是服务器处理器领域里技术积累比较少,而且ARM目前只是作为IP供应商,本身并不量产芯片。至于其它原因,见仁见智,大家自行分析吧。但是,ARM为我们提供了一个较为完整的可参考的方案。那些老牌公司做的再好再完美,不对外开放啊,至多也就是通过公开发表的文章窥探一二。“双鸟在林不如一鸟在手”,是这个道理吧?有时候横向比较技术是没有什么意义的。

本人没有就职于ARM,也不是为ARM鼓吹,仅仅是出于对技术的好奇心写了一系列文章。由于本人水平有限,难免有错误之处,请大家指正。

原文链接:老秦谈芯
作者:老秦谈芯

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
20187
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息