学霸笔记-PPU (power policy unit)

2023-11-15

PPU 作为电池管理的一部分,带来了系统控制与设备之间的电源挥手协议。真正的底部控制部分放在外面,需要额外的状态机器来协助。这很容易理解。对于不同的设备,可能需要不同的电源控制场景。例如,一些模块可能会关闭时钟(clock gating),有些模块需要关闭电源( power gating ),在关闭设备电源的情况下,可以区分各种细分要求,例如,是否需要逻辑或存储来保存(retention);逻辑和存储是否可以单独关闭等。对各种条件进行排列组合,可能会有很多要求。举例说明,拿 CMN 内部系统缓存(HN-F )就逻辑部分而言, snoop filter ( SF )部分, SLC RAM 部分电源可分别控制;SLC RAM 部分适用 ON/OFF/RET 三种电源情况,还有 SLC RAM 物理上分为两个 bank ,可以考虑开一个 bank ,你也可以选择两个 bank 开启; SF 部分还支持 MEM_RET 。所有情况如下图所示:

上面只举了一个例子。不同设备在特定系统中的电源控制将更加复杂,因此很难使用 IP 顾全这么多。所有情况如下图所示:

上面只举了一个例子。不同设备在特定系统中的电源控制将更加复杂,因此很难使用 IP 顾全这么多。 因此,底层操作需要根据实际需要独立完成,即下图中的底层操作 PCSM ( Power Control State Machine )。比如电源开关,retention 操纵(save/restore)所有这些控制逻辑都是 PCSM 完成。

PPU 有两种方式:电源模式:( power mode )和操作方式(operating mode)。

电源模式是电源域的逻辑 RAM 稳定的电源组成,以及相关的时钟、校准和隔离操作。操作模式代表电源模式配置。这听起来有点绕口,一个流行的描述,电源模式是我们常说的 ON/OFF/ RET (retention)这种。

那为什么还要操作模式呢?对于 OFF 没有什么可以细分的,但是对于 ON 或是 RET 就情况而言,情况可能很复杂。回想上面提到的 HN-F 事例。把这些细分的场景归类为电源模式好吗?可以,但会把事情搞得复杂,不如用操作方法来描述这种细分场景。PPU 内部的电源模式和操作模式是梳理的 PPU 设计,与 UPF 里边的 power state 完全不是一回事,不用搞混(别问我为什么会搞混) … )。

下面慢慢挑一下电源模式和操作模式。 PPU 除下表外,支撑电源模式见下表 ON/WARM_RST/OFF 必须支持,其他都是可选的。大多数电源模式都是直观的,除了 OFF_EMU 和 MEM_RET_EMU 尤其一点。

让我们来看看操作模式。以下图为例,纵轴为电源模式,横轴为操作模式。绿色代表电源打开,黄色代表 retention ,红色代表电源关闭,网格代表校准,其中 RAM 可分为两部分,各自和控制。换句话说 RAM 可以打开,可以全关,也可以打开一半,或者打开另一半 retention ,等等(有点像前面提到的吗? CMN 的 SLC 事例)。例如,在电源模式下 ON 如果模块快速工作,也就是所有 RAM 打开操作模式为OPMODE_02;假如 RAM 开半关一半(为了省电) OPMODE_01 ; RAM 全部关闭,只保留逻辑部分正常工作。操作模式是 OPMODE_00 。我相信有了这种解释,人们就能理解这张照片

在不同的电源模式下,操作模式的编号含义也不同。有些电源模式没有操作模式,比如 OFF ,都关电了,没必要再细分了。

PPU 电源模式和操作模式编号如下,PSTATE 低 4bit 代表电源模式,高 4bit 代表操作模式。

学霸笔记-PPU (power policy unit)
在介绍了两种模式之后,一个自然的问题是如何在方式之间转换?在分离方面,电源模式的转换分为静态转换和动态转换。静态变换是利用软件设置电源对策(power policy ), PPU 按设定执行;

动态变换是利用软件设置最小电源模式,PPU 动态转换电源模式。前面说过,不管是Q-channel PPU 或是 P-channel PPU ,也支持电源模式,但是电源模式的变化还是有一些差异的。你可以想想为什么

集成软件设置启动和控制电源模式转换作为输入信号。

静态转换时,针对 Q-channel PPU ,去掉ON 和 WARM_RST 在中间,其它电源状态转换都需要 DEVACTIVE 为低;针对 P-channel PPU ,要遵守优先标准。

在转换动态电源模式时,除了更改编程对策外,还可以通过更改电源模式 DEVACTIVE 输入以实现模式转换。在转换动态电源模式时,PPU 还提供一种 “ 锁住 ” 作用。不要谈具体的软件操作。如果你感兴趣,去看指南。

操作模式的转换只产生在特定电源模式的转换中。有些电源模式没有操作模式。

学霸笔记-PPU (power policy unit)

系统控制器根据前面提到的配备插口设置电源模式和操作模式, PPU_PWPR ( Power Policy Register)完成这个存储器。有些方法是不被组成的 PPU 适用性,指南中有具体描述。

再来说说关键 PPU 的中断, PPU 会导致以下事件的结束,但这些结束也可以提前写 PPU_IMR (Interrupt Mask Register)屏蔽存储器。

前面也提到过, PPU 与设备间的 LPI 接口类型取决于 PPU 的种类。假如是 Q-channel PPU ,可以配置有1-8 个 Q-channel 连接多个设备;如果是这样; P-channel PPU ,所以只能配备 1 个 P-channel ,连接设备。说到这里,我不得不唠叨一下 PPU 在系统中使用。 PPU 电源控制部分与设备之间的控制指令有时钟、校准和隔离(power switch 和 retention )则在 PCSM 。从电源控制的角度来看,控制器的电源开关必须控制模块的时钟和校准,但反过来也没有必要。所以,假如只用 PPU 在这种情况下,做时钟管理,不考虑电源开关,Q-channel 够了,还有一个 PPU 尽量操作多个关系设备;如果使用; 如果PPU做电池管理,场景复杂,必须使用 P-channel 来通信,支持更多的状态,一个 PPU 只操作一个模块,否则多个模块混在一起,情况总数无法控制。PPU 可以通过两种形式设置与设备之间的控制插口 delay ,第一种是由配置引起的 PPU 设置时,第二种是系统控制器在运行中写字 PPU_DCDR

( Device Control Delay Configuration Register )存储器。

对于不太大的 SoC ,所有的 PPU 可立即放置在系统控制器下; SoC 如果设计规模比较大,也可以 把 PPU 在适当的时候,与被控制系统放在一起, PPU 软件接口可以放在系统总线上。

标签: 笔记   模式   电源