ARM SoC芯片上的低功耗是如何设计的

1, 介绍
随着芯片的集成化程度提升,很多模块都做到芯片的内部,比如isp、dsp、gpu,这样做成片上系统(system on chip,简称soc),好处是整个系统功能更内聚,板级面积会减少,但是芯片的体积却越来越大。为了减少芯片面积、降低芯片成本、减少芯片功耗,逐渐地提升了芯片的工艺,从而降低了功耗,提升了能耗比。
光靠工艺的提升来减少功耗,还不够。为了更好地功耗管理,arm提出了功耗控制系统架构(power control system architecture,简称pcsa),用来规范芯片功耗控制的逻辑实现。
pcsa基于arm的组件实现,规范包括:电压、电源和时钟的划分;电源的状态和模式;arm电源控制框架和集成规范;arm特定组件的电源和时钟集成;带有低功耗q-channel和p-channel接口的ip。
前面的文章讲述了linux侧的功耗软件管理框架(详见前面的文章《一文搞懂linux电源管理(合集)》),但是这些软件功耗管理都是基于芯片的相应功能实现的,接下来我们看一看这个pcsa具体由哪些部分组成,通过这些组成与整个功耗控制框架的学习,了解芯片上的低功耗是如何设计的。
2, 框架
2.1 基于arm的软硬件管理框架
基于arm的功耗软、硬件管理框图:
首先用户发起的一些操作,通过用户空间的各service处理,会经过内核提供的sysfs,操作cpu hotplug、device pm、eas、ipa等。在linux内核中,eas(energy aware scheduling)通过感知到当前的负载及相应的功耗,经过cpu idle、cpu dvfs及调度选择idle等级、cpu频率及大核或者小核上运行。ipa(intrlligent power allocation)经过与eas的交互,做热相关的管理。
linux kernel中发起的操作,会经过电源状态协调接口(power state coordination interface,简称psci),由操作系统无关的framework(arm trusted firmware,简称atf)做相关的处理后,通过系统控制与管理接口(system control and management interface,简称scmi),向系统控制处理器(system control processor,简称scp)发起低功耗操作。scp最终会控制芯片上的sensor、clock、power domain、及板级的pmic做低功耗相关的处理。
2.2 功耗控制框架
在soc设计中,需要一个硬件模块能够配合操作系统的功耗管理软件或驱动,来完成顶层的功耗控制,这个硬件模块可以是硬件电路,也可以是一个低功耗的处理器。考虑到灵活性,这个硬件模块一般是一个微处理器核(比如cortex-m0)加上一些外围逻辑电路做成的功耗控制单元(scp)。为了scp能够完成soc的功耗管理,又定义了一个功耗控制框架(power control framework,简称pcf),pcf包含了一些接口、组件、协议来配合scp做整个soc的功耗管理。
pcf是用于构建soc功耗管理所需的标准基础设施组件、接口和相关操作方法集合。其中,标准基础设计组件包括电源、时钟和接口组件。比如:支持scp通过软件接口编程的电源策略单元(power policy unit,简称ppu),用于低功耗控制的低功耗接口(low power interface,简称lpi)。
1) ppu
ppu实现了软件控制power domain开关控制的功能,scp向ppu发起对power domain的开、关操作,其中ppu会通过lpi向power domain发起复位/解复位、时钟开/关、电源隔离开/关的操作,然后ppu经由电源控制系统状态机(power control state machine,简称pcsm)控制power domain电的开、关。
2) lpi
lpi主要是指arm的q-channel和p-channel。q-channel是arm公司定义的一个低功耗接口,接口很简单,只有四根线。从axi的低功耗接口演变过来的,其用处是控制设备静止状态时的时钟和电源。
控制器可以根据设备的工作状态或系统状态,发起低功耗请求。设备可以根据自己的工作状态,从而决定是否接受请求。相比q-channel,p-channel把pactive信号加宽了,不再是一根信号,设备可以传递更多的工作状态给控制器。控制器会额外多发出一组pstate信号,描述切换power状态的请求。
2.3 电源域和电压域
为了更好地对电进行控制,arm划分了两个电相关的概念:电源域(power domain)和电压域(voltage domain)。电压域指使用同一个电压源的模块合集,如果几个模块使用相同的电压源,就认为这几个模块属于同一个电压域。电源域指的是在同一个电压域内,共享相同电源开关逻辑的模块合集。即在同一个电源域的模块被相同的电源开关逻辑控制,同时上、下电。一个电压域内的模块,可以根据设计需求,拆分到不同电源域。因此,电压域对应的是功能是dvfs,而电源域的概念对应的是power gating。
如下图,不同颜色表示不同的电压域,vbig是大核处理器的电源供电,vlittle是小核处理器的电源供电,vgpu是图形处理器的电源供电,vsys是系统电源。虚线框包围的模块表示可以做电源开关处理,比如处理器核。实线框包围的模块表示不能做电源开关,比如scp。


三星SDI净利润依然还处于下滑通道
三星20201年下半年推QD面板高端电视 LGD调整员工作息应对LCD面板需求激增
分治算法详解:表达式的不同优先级
基于电机控制的几种栅极驱动器解决方案
中红外偏振不敏感光栅耦合器件
ARM SoC芯片上的低功耗是如何设计的
简述开关式稳压电源的工作原理
压缩空气流量计算方法
特斯拉将不再提供Model 3最便宜的版本
业界再增两起并购:新思科技收购PikeTec,AMD收购Mipsology
iOS11即将发布:iOS11会出现的8个新功能或改进,Siri更调皮?
关于纸张表面瑕疵在线检测的介绍
苹果宣布将放弃无线充电产品AirPower
旷视科技申请在香港证券交易所上市已获批准
iPhone5发布时间确定!9月12日
国产小型粒料高速3D打印机,效率提升尤其显著
基于DCS系统6种常见故障的深度解析
CD4040输出信号的频率
人工智能最新现状分析,智能化时代要来临了吗?
为华为mate10让路,华为p10plus降至冰点价跟iphone7一战