电源控制系统架构(PCSA)之电源管理基础设施组件

目录

6.5 电源管理基础设施组件

6.5.1 电源策略单元

6.5.2 时钟控制器

6.5.3 低功耗Distributor

6.5.4 低功耗Combiner

6.5.5 P-Channel到Q-Channel转换器


6.5 电源管理基础设施组件

6.5.1 电源策略单元

本节介绍电源策略单元(Power Policy Unit, PPU)。PPU的完整细节见ARM电源策略单元架构规范[6]。

PPU是将软件控制的电源域策略抽象为底层硬件控制信号的标准组件。在一个典型的安排中,一个PPU用于控制每个电源门控域。

SCP固件可以对PPU的电源策略进行编程。该策略可以是静态电源模式,也可以是PPU可以动态转换的一系列模式。这种动态行为基于来自组件LPI的活动指示器,不需要进一步的SCP编程。这使得硬件自主模式,如动态retention,可以透明地进入和退出软件。这提供了响应式功率控制,使组件能够在保持功能的同时处于尽可能低的电源状态,仅使用来自SCP的策略级控制。

PPU接口如图6.4所示。

5bfb56a8b2cb408889c0185bcd16a192.png

PPU接口有:

•软件接口:用于编程的总线接口,例如AMBA APB,以及由SCP用于PPU配置和策略控制的中断。

•电源控制状态机(PCSM)接口:一个LPI通信电源状态的变化控制电源控制的实现和技术特定方面的PCSM,如电源开关和存储器retention控制。

•设备控制接口:对电源域内的组件进行低级控制。它包括:

-一个或多个LPI,根据电源域组件的需要。

-设备控制,包括时钟使能、复位和隔离控制。

图6.5显示了这些接口的连接方式。

2373e41dc60741f4ae95ebcc86b08b5f.png

一个电源门控域可以包含多个组件,这意味着可以有多个LPI。根据电源域中组件的时钟和复位域,也可以有多个复位和时钟启用。

虚线表示控制信号连接,这些连接通常不存在于RTL中,但将作为使用UPF或类似手段的合成流的一部分添加。

有关PPU集成的更多详细信息,请参见7.2电源控制集成。

Power Control State Machine (PCSM)

低电平电源控制细节,如电源开关控制或逻辑或RAM保留的控制信号可以是特定的技术和单元库。为了避免修改核心PPU功能,它与控制这些元素的实现相关的电源控制状态机(PCSM)连接。这使得PPU成为一个通用的、可重用的标准组件。

电源控制状态机由PPU通过P-Channel LPI接口控制。PCSM将P-Channel电源模式请求转换为实现相关控制。

复位控制

PPU提供电源域复位功能。这可确保在进入和退出电源模式时应用相关复位来维持正确的组件状态。

PPU有多个复位输出,根据需要的复位动作在不同的电源模式下使用。

例如,保留和非保留组件有单独的复位。当域处于retention模式时,不能复位保留寄存器,因为保留状态将丢失。然而,非retention寄存器确实需要复位。

热复位和开机复位之间也可能存在差异。在热复位时,可能需要保留某些状态,例如用于调试或RAS目的。

时钟控制

PPU为功率域提供时钟门控。这确保了时钟输入可以根据需要进行门控,以在进入和退出电源模式时保持安全和正确的行为。

PPU提供多个时钟使能,用于不同的电源模式。例如,为了调试目的而模拟电源域的关闭状态时。在这种情况下,某些时钟需要保持启用状态,以允许对组件进行调试访问。

【注意】:PPU控制时钟来管理电源模式需求,而不是基于活动的高级时钟门控。高级时钟门控由时钟控制器管理,详细信息请参见6.5.2时钟控制器和7.1时钟控制集成。

隔离控制

PPU为电源域提供隔离单元控制。这些控件用于确保在关闭域时不传播浮动值。

PPU提供多种隔离控制,可用于不同的电源模式。例如,为了调试目的而模拟域的关闭状态时。在这种情况下,可能无法启用某些隔离单元以允许对组件进行调试访问,而其余隔离单元则对应于域的功能行为启用。

PPU策略支持

PPU支持两种电源域模式组、电源模式和工作模式。

电源模式

PPU支持PCSA定义的所有电源模式,如表6.1所示。

并非所有的ppu都需要支持所有模式,因此电源模式支持是设计时可配置的。

工作模式

工作模式表示标准电源模式的配置,或者一般的电源域。每个操作模式的含义特定于域中的一个或多个组件。

工作模式转换发生在ON电源模式下,但是工作模式可以在某些其他电源模式下保持上下文,例如,具有retention的电源模式。

操作模式的一些用法示例如下:

•启用多个RAM配置:

-例如,调整缓存的大小,而一个组件是活跃的,通过关闭一些RAM实例以节省泄漏功率。

•多线程处理器核心内的线程管理。

-确保正确的线程管理,因为逻辑上关闭线程的中断只对处理器外部的电源控制基础设施可用。

•配置和访问控制管理,例如启用保存/恢复操作。

操作模式和预期使用模型在ARM电源策略单元架构规范中指定[6]。

仿真电源模式

为了实现下电调试功能,PPU支持仿真电源模式。

在模拟电源模式时,PPU完成除与PCSM通信外的所有正常控制序列。这意味着,例如,电源开关没有关闭。

设计的某些部分可以通过断言导致状态和功能丢失的适当重置来模拟断电。设计的其他部分是调试访问所必需的,或者包含调试状态,因此在取消断言重置的情况下保持功能。PPU支持不同的复位来提供此功能。

6.5.2 时钟控制器

时钟控制器用于为时钟域中具有这两种特性的组件提供高级时钟门控,Q-Channel LPI时钟门控支持,或根据6.2.3限制概述的AXI LPI时钟门控支持。

【注意】:PCSA不赞成使用AXI LPI,只能用于与遗留组件的接口。

时钟控制器接口如图6.6所示。

c5ca481b8b65419a8a14bd35db25b7a7.png

时钟控制器接口有:

•时钟门控接口:这是一个时钟使能信号来控制时钟门。

•组件接口:根据域的需要,由一个或多个Q-Channel接口组成。

•分层控制接口:它由电源控制和时钟控制分层Q-Channel组成,允许从更高级别的组件控制时钟控制器。

时钟控制器结合来自多个组件的时钟控制LPI来管理单个时钟域。它使用LPI来确保所有组件在时钟被门控之前都处于静止状态。它还确保时钟在任何组件离开休眠状态之前再次运行。

时钟控制器允许对LPI进行异步控制,这样来自时钟控制器的同步时钟启用可以连接到时钟树根部的时钟门。这种高级时钟门控可以在空闲情况下导致动态功率接近于零。

这种高级时钟门控并不排除在组件内部以更细的粒度实现任何时钟门控。

【注意】:时钟控制器不包括时钟门,但提供了一个必须同步使用的使能。

有关时钟控制器功能的更多详细信息,请参阅ARM CoreLink PCK-600电源控制套件技术参考手册[8]。

有关时钟控制器集成的详细信息,请参见7.1时钟控制集成。

6.5.3 低功耗Distributor

通常需要PPU或时钟控制器与时钟或电源域内的许多组件通信。

LPD (Low Power Distributor)将单个Q-Channel或P-Channel分配给多个通道。

它可以同时发送所有输出通道请求,也可以一个接一个地对它们进行排序。

Q-Channel和P-Channel协议的LPD可作为CoreLink PCK-600电源控制装备的一部分。有关更多信息,请参阅ARM CoreLink PCK-600电源控制套件技术参考手册[8]。

6.5.4 低功耗Combiner

有些组件(如电源域之间的协议桥接)需要从多个电源域的控制器进行控制。为了实现这一点,可以使用低功率组合器(LPC)从多个Q-Channel控制器来控制Q-Channel组件。

当任何控制器Q-Channel变为静止状态时,LPC请求组件Q-Channel静止。当所有控制器Q-Channel都是非静止状态时,它请求退出组件Q-Channel的静止状态。这允许,例如,当它的任何相关电源域进入低功耗模式时,使电源域桥处于静止状态。

LPC可作为CoreLink PCK-600电源控制套件的一部分。有关更多信息,请参阅ARM CoreLink PCK-600电源控制套件技术参考手册[8]。

6.5.5 P-Channel到Q-Channel转换器

P-Channel也可以用来控制电源域中的Q-Channel组件。

P-Channel到Q-Channel转换器(P2Q)将P-Channel请求转换为Q-Channel请求。电源模式如何映射到Q-Channel静态或运行状态是可配置的。

P2Q可作为CoreLink PCK-600电源控制套件的一部分。有关更多信息,请参阅ARM

CoreLink PCK-600电源控制套件技术参考手册。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/215681.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19.oracle11g中的游标

oracle11g中的游标 一、案例引入二、什么是游标三、隐式游标1、隐式游标的属性2、创建语法3、示例 四、显示游标1、显示游标的属性2、创建语法3、示例 五、REF游标1、REF游标的属性2、创建语法3、示例 六、循环游标1、 循环游标的作用2、用for 与 loop 创建3、示例 一、案例引入…

【Rust日报】2023-11-22 Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器

Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器 Floneum 是一款用于 AI 工作流程的图形编辑器,专注于社区制作的插件、本地 AI 和安全性。 Floneum 有哪些特性: 可视化界面:您无需任何编程知识即可使用Floneum。可视化图形编辑器可…

Educational Codeforces Round 158 (Rated for Div. 2)(A~E)(贪心,树形DP)

A - Line Trip 题意:有一条路,可以用一条数线来表示。你位于数线上的点 0 ,你想从点 0 到点 x ,再回到点 0。你乘汽车旅行,每行驶 1个单位的距离要花费 1 升汽油。当您从点 0出发时,汽车已加满油(油箱中的…

RocketMQ 消息中间件 知识点汇总

目录 RocketMQ1、什么是RocketMQ?常用术语:2、为什么需要消息队列3、什么是异步处理4、什么是服务解耦5、什么是流量控制6、消息队列两种模型队列模型:发布/订阅模型:总结:7、怎么保证消息不丢失8、如何处理消息被重复消费**出现消息重复的情况:****解决方法:**9、如何保…

基于官方YOLOv4开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】

本文是关于基于YOLOv4开发构建目标检测模型的超详细实战教程,超详细实战教程相关的博文在前文有相应的系列,感兴趣的话可以自行移步阅读即可:《基于yolov7开发实践实例分割模型超详细教程》 《YOLOv7基于自己的数据集从零构建模型完整训练、…

【HuggingFace Transformer库学习笔记】基础组件学习:pipeline

一、Transformer基础知识 pip install transformers datasets evaluate peft accelerate gradio optimum sentencepiece pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge在host文件里添加途中信息,可以避免运行代码下载模型时候报错…

代码随想录算法训练营第五十四天|392.判断子序列 115.不同的子序列

文档讲解:代码随想录 视频讲解:代码随想录B站账号 状态:看了视频题解和文章解析后做出来了 392.判断子序列 class Solution:def isSubsequence(self, s: str, t: str) -> bool:dp [[0] * (len(t)1) for _ in range(len(s)1)]for i in ra…

matlab三维地形图

matlab三维地形图 %%%%—————Code to draw 3D bathymetry—————————— %-------Created by bobo,10/10/2021-------------------- clear;clc;close all; ncdisp E:\data\etopo\scs_etopo.nc filenmE:\data\etopo\scs_etopo.nc; londouble(ncread(filenm,lon)); lat…

黑马点评笔记 分布式锁

文章目录 分布式锁基本原理和实现方式对比Redis分布式锁的实现核心思路实现分布式锁版本一Redis分布式锁误删情况说明解决Redis分布式锁误删问题分布式锁的原子性问题分布式锁-Redission分布式锁-redission可重入锁原理分布式锁-redission锁重试和WatchDog机制分布式锁-redissi…

java学习part10 this

90-面向对象(进阶)-关键字this调用属性、方法、构造器_哔哩哔哩_bilibili 1.java的this java的this性质类似cpp的this, 但它是一种引用,所以用 this. xxx来调用。 this代表当前的类的实例,所以必须和某个对象结合起来使用,不能…

C#学习相关系列之base和this的常用方法

一、base的用法 Base的用法使用场景主要可以概括为两种: 1 、访问基类方法 2、 调用基类构造函数 使用要求:仅允许用于访问基类的构造函数、实例方法或实例属性访问器。从静态方法中使用 base 关键字是错误的。所访问的基类是类声明中指定的基类。 例如&…

uniapp高德、百度、腾讯地图配置 SHA1

uniapp高德、百度、腾讯地图配置 SHA1 当winr弹出cmd弹框后输入 keytool -list -v -keystore debug.keystore 显示keytool 不是内部或外部命令,也不是可运行的程序或批处理文件。可以先看看是否有下载jdk且配置了环境变量,具体操作如下:keyto…