Arm SoC的电源和时钟管理详解

描述

本文讨论的是基于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也需要有相关的硬件支持。这也就是所谓的分层管理机制。

mcu

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

mcu

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

mcu

图二:SCP负责硬件管理

mcu

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

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

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

ARM系列 -- PCSA(一)

ARM系列 -- PCSA(二)

ARM系列 -- PPU

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

ARM系列 -- PSCI

ARM系列 -- CSS Message Interface Protocols

ARM系列 -- SCMI

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

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

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分