棋子 · 2020年05月06日

ARM DynamlQ架构的power介绍

ARM的处理器,在power架构,根据cluster的架构的变化而发生了变化。

一、big-little的power架构
如下图,是big-little的power 架构,整个cluster的所有组件,均使用相同的电压域。用虚线框包围的区域,表示该模块,有单独的power domain。

0.png
二、DynamlQ的power架构
arm在推出DynamlQ架构之后,也推出了新的power架构,不然,无法精细化的控制power。如下图所示:

不同的颜色,表示不同的电压域,用虚线框包围的,表示该模块,有单独的power domain。

可以看出,采用DynamlQ架构之后,每个core,有自己的电压域。

相比之前的big-little架构,取消了,很多信号。
image.png
左边,是big-little架构下,core与power controller(以下简称PMU)的信号连接:

2.png

3.png
4.png

三、P-Channel
P-channel的详细解析,可以看我之前写的博文:http://www.lujun.org.cn/?p=3634

对于P-Channel,有以下的一些信号:

5.png
PMU就是通过P-Channel,来和core以及cluster来通信,实现power的控制。

四、power mode
power mode,表示硬件power的状态,分为core的power mode和cluster的power mode。

1、core的power mode
power mode有以下一些模式:

6.png7.png

可见,在DynamiQ架构下的power,core的power模式,有多种模式。定义这么多模式,也是为了能够精细化的控制。

PSTATE and PACTIVE 编码如下:

8.png

比如,core要进入OFF状态,那么core会驱动P-Channel上的PACTIVE信号的0bit为1,PMU发现该bit为1,表示core要进入OFF状态。于是驱动PSTATE为4'b0000,并设置PREQ为1,发起power mode切换请求。core接收到该请求后,如果允许外部的PMU对core下电,会将PACCEPT信号拉高,PMU检测到该信号为高后,就可以将core断电了。

如果core不允许外部的PMU对core下电,会将PDENY信号拉高,PMU检测到该信号为高后,就知道不能对core断电。

2、cluster的power mode
cluster的power mode有如下4种:

9.png10.png

比如,cluster要进入OFF状态,那么core会驱动P-Channel上的PACTIVE信号的0bit为1,PMU发现该bit为1,表示cluster要进入OFF状态。于是驱动PSTATE为4'b0000,并设置PREQ为1,发起power mode切换请求。cluster接收到该请求后,如果允许外部的PMU对core下电,会将PACCEPT信号拉高,PMU检测到该信号为高后,就可以将cluster断电了。

如果cluster不允许外部的PMU对cluster下电,会将PDENY信号拉高,PMU检测到该信号为高后,就知道不能对cluster断电。

五、寄存器
为了支持DnyamlQ架构的power精细化控制,arm定义了一些系统寄存器,用来软件控制硬件的power mode。

寄存器分为,对core和cluster。

1、对core
CPUWRCTLR_EL1和 DBGPRCR_EL1,两个系统寄存器。

11.png12.png

软件如果写bit0为1,表示要将core下电。当后续的程序执行wfi指令之后,core就会通过P-Channel的pactive,向PMU,发送off请求。

2、对cluster
cluster有以下寄存器:

  • cluster-down寄存器,控制power off和memory retention
  • power 控制寄存器:控制function retention,L3 cache RAM size
  • performance monitor:控制cache部分power off

13.png14.png14 (2).png

六、cache的power
DynamlQ架构的cache的power mode,是多种组合。如下图:

15.png

就是看tag ram和data ram的上电状态。至于为什么cache,会有这么多种power mode,是因为DynamlQ架构下,cache变大很大。L2 cache成每个core私有的,并且还增加了L3 cache。如果不对cache的power,做精细化的管理,那么功耗,也就上去了。

下图是power mode的转换图:
16.png

以下是power mode的编码:
17.png

七、总结
为了适应复杂的DynamIQ架构,arm将power的架构也做了很大的修改。其中一点,是引入了P-Channel,实现更负责的power状态控制。以及对硬件,定义了很多的power mode,用于软件来方便的控制,从而实现低功耗。

推荐阅读
关注数
23576
内容数
1027
Arm相关的技术博客,提供最新Arm技术干货,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息