【CMN】Power management

        CMN-700包括几种电源管理能力,要么由外部控制,要么由SoC辅助。CMN-700具有以下电源管理功能:

(1)几个不同的预定义电源状态。这些状态包括SLC Tag和Data ram的all/half/none能否被powered up, powered down, or in retention。

memory retention:数据被保留,但是不能正常读写。

这些power状态降低了静态和动态的功率消耗。

(2)支持HNF中的static retention,其中SoC使SLC和SF ram处于retention状态。这样降低了静态功耗。

(3)支持in-pipeline的低延迟Data RAM retention控制,可用一个可编程的idle计数器来使SLC RAMs进入到retention状态。(也就是动态retention)

一、Power domains

CMN-700中的power domains包括:

Logic

        除HNF SLC Tag和Data ram和HNF SF ram外的所有逻辑。

System Level Cache RAM0

        HN-F中的SLC Tag 和 Data RAMs way[7:0]。每个HN-F分区中的RAM可以独立控制。

System Level Cache RAM1

        HN-F中的SLC Tag 和 Data RAMs way[15:8]。每个HN-F分区中的RAM可以独立控制。

Snoop filter only mode

        只有SF RAM,没有SLC RAM。每个HN-F分区中的RAM可以独立控制。

下图显示了一个电源域配置示例:

【CMN】Power management_第1张图片

下图显示了另一个电源域配置示例,其中CXSDB组件位于同一个电源域中:

【CMN】Power management_第2张图片

二、Power domain control

        CMN-700逻辑P-Channel控制除RAM和CXS电源域之外的所有电源域。除了控制逻辑域之外,P-Channel还允许HNF软件控制的电源域和逻辑域之间的同步。这个同步是通过一个配置状态来实现的,如下图所示:

【CMN】Power management_第3张图片

有两条路径转换从OFF到ON状态:

Cold reset

        逻辑PSTATE OFF到ON转换也启动所有HNF分区的NOSFSLC到FAM转换。

Exit from HN-F Static Retention state

        逻辑PSTATE从OFF转换到CONFIG,这表明CMN-700正在退出Memory Retention状态,并且不启动任何HNF分区power转换。下表包含了域内组件的power模式和相关的PSTATE值。

【CMN】Power management_第4张图片

三、HN-F power domains

        HNF有不同的 power状态。不同状态之间的转换就是使能或禁用HNF的不同部分。HNF有三种功率状态:

  1. 1.操作状态Operational states,,其中逻辑是打开的和启用的ram是正常运行的
  2. 2.功能保留状态Functional retention states,其中logic功能打开,启用的ram处于retention状态。
  3. 3.内存保留状态Memory Retention states,其中logic功能关闭,启用的ram处于retention状态。

在这些电源状态下,HNFs以四种模式运行:

FAM

        Full Associativity Mode (FAM), SF、SLC全部使能。

HAM

        Half-Associativity Mode (HAM), SF使能,SLC的lower half ways([7:0])使能,way[15:8]禁用且处于断电状态。

SFONLY

        Snoop filter only mode (SFONLY), SF使能,SLC处于 powered off。

NOSFSLC

        SF和SLC全部处于powered off。

(也就是对HN-F内部RAM(SLC0,SLC1,SF)的不同部分使能/禁用)

还有疑问可以看下表:

【CMN】Power management_第5张图片

状态转换图如下:

【CMN】Power management_第6张图片

        当HNF处于NOSFSLC状态时,SF不跟踪RNF的一致性。因此,由于功率状态转换到NOSFSLC,RNF在flush前必须处于静默。在从NOSFSLC转换到SFONLY、HAM或FAM状态之前,必须刷新RNF cache。

        这些HNF功率状态使用配置寄存器写入来进行转换,它必须针对SCG区域中的所有HNF。此外,逻辑域的P-Channel可以启动一个nosfslc的FAM转换。

注:CMN-700在SLC初始化完成之前不接受请求。

四、相关寄存器

cmn_hns_ppu_pwpr:power状态配置寄存器

【CMN】Power management_第7张图片

cmn_hns_ppu_pwsr:power状态上报寄存器

【CMN】Power management_第8张图片

cmn_hns_ppu_dyn_threshlod:动态retention转换时idle计数器的阈值寄存器

PS:如何实现power management模块的代码设计呢?

        CMN文档描述的很清楚了,可以通过寄存器配置,使其进入不同的power state,然后控制HN-F不同的组件power on/power off/retention。那么核心代码就是设计一个状态机,具体转换条件这里就不详细描述了。

        咱们下期见~

你可能感兴趣的:(ARM硬件开发,arm开发)