【CMN】Power management

news2025/1/12 23:02:58

        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可以独立控制。

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

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

二、Power domain control

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

有两条路径转换从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值。

三、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)的不同部分使能/禁用)

还有疑问可以看下表:

状态转换图如下:

        当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_hns_ppu_pwsr:power状态上报寄存器

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

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

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

        咱们下期见~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot2.7.14整合redis7

需要的依赖库&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</gro…

kubernetes(4)

目录 flannel网络插件 calico网络插件 部署 网络策略 限制pod流量 限制namespace流量 同时限制namespace和pod 限制集群外部流量 k8s存储 configmap 字面值创建 通过文件创建 通过目录创建 通过yaml文件创建 使用configmap设置环境变量 使用conigmap设置命令行参数 通过数据卷使…

android10.0(Q) MTK 6765 user版本打开root权限

前言 相比较 Android8.1、9.0 而言&#xff0c;Android10.0 版本 的 root变得相当麻烦&#xff0c;10.0 中引入了动态分区机制&#xff0c;同样的要想完全 adb root&#xff0c;需要 fastboot 解锁&#xff0c;然后关闭 verity 才能 adb remount 成功。我尝试和之前一样修改 f…

10.26数字钟设计,数电第二次实验总结

实验七 数字钟设计&#xff08;*****&#xff09; 实现一个六十进制数字时钟&#xff0c;秒到 60 则归零重加&#xff0c;同时让分加1&#xff0c;分加到60归零重加&#xff0c;并让小时加 1&#xff0c;小时加到24归零重加。要求用数码管1,0显示秒值&#xff0c;数码管3,2显示…

解决MyBatisPlus自动生成的主键值过长的问题?

解决MyBatisPlus自动生成的主键值过长的问题&#xff1f; 执行alter table 你的表名 auto_increment 你想要自增开始的值&#xff1b; 如下图&#xff1a; 看一下数据库插入代码&#xff0c;如下图&#xff1a; 最后连续插入两次&#xff0c;看下数据库表插入的实际值&…

OpenCV学习(一)——图像读取

1. 图像入门 读取图像显示图像写入图像 import cv2# 读取图像 img cv2.imread(lena.jpg) print(img.shape)# 显示图像 cv2.imshow(image, img) cv2.waitKey(0) cv2.destroyAllWindows()# 写入图像 cv2.imwrite(image.jpg, img)1.1 读取图像 读取图像cv.imread(filename, fl…

程序员们平时都喜欢逛什么论坛呢?

网站不在多&#xff0c;好用就行&#xff1b;技术不求精&#xff0c;好摸鱼就行。是时候祭出我收藏夹里的这15个网站了&#xff01; 求职必备&#xff1a;牛客网 https://www.nowcoder.com/ 年少不知牛客好&#xff0c;等到要面试的时候才发现是神器。 你可以在牛客上搜索到一…

C++内存管理:其七、标准库中的allocator

首先明确一点&#xff0c;绝大多数情况下&#xff0c;是标准库中的容器使用allocator。因为容器需要频繁的申请和释放内存。 一、容器使用allocator 典型的例子&#xff1a; vector<int , allocator<int>> a;但是为什么我们通常的定义vector变量的方法是&#x…

OpenCV学习(二)——OpenCV中绘图功能

2. OpenCV中绘图功能2.1 画线2.2 画矩形2.3 画圆2.4 画多边形2.5 添加文本 2. OpenCV中绘图功能 绘图可以实现画线、画矩形、画圆、画多边形和添加文本等操作。 import cv2 import numpy as np# 读取图像 img cv2.imread(lena.jpg)# 画直线 cv2.line(img, (0, 0), (512, 512…

【Javascript】函数声明的方式

方式一&#xff1a; function c(a,b){return ab;}var sumc(3,4);console.log(sum); 方式二&#xff1a; var afunction (a,b){return ab;}; console.log(a(1,3)); 方式三&#xff1a; 构造声明 var cnew Function (a,b,return ab); console.log(c(1,2));声明函数过程中&…

【机器学习合集】人脸表情分类任务Pytorch实现TensorBoardX的使用 ->(个人学习记录笔记)

人脸表情分类任务 注意&#xff1a;整个项目来自阿里云天池&#xff0c;下面是开发人员的联系方式&#xff0c;本人仅作为学习记录&#xff01;&#xff01;&#xff01;该文章原因&#xff0c;学习该项目&#xff0c;完善注释内容&#xff0c;针对新版本的Pytorch进行部分代码…

王道p40 1.设计一个递归算法,删除不带头结点的单链表L中的所有值为x的结点(c语言代码实现)图解递归

视频讲解(献丑了)&#xff1a;p40 第1题 王道数据结构课后代码题c语言代码实现_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Xa4y1Q7ui/?spm_id_from333.999.0.0 首先它是一个不带头结点的单链表 我们就得特殊处理 我们先让*LNULL&#xff1b; 然后为s开辟一个新…

vue3-admin-element框架登录如何修改?

1、找到vite.config.js文件 配置反向代理 2、找到src文件下的user.js文件 3、找到views文件下的login文件 打开找到comp文件夹找到LoginFrom.vue页面进去 把这个改成自己的账户数据&#xff08;密码不一致自行更改&#xff09; 4、找到store文件下的modules下的user.js 5、找到…

Java工具库——FastJson的40个常用方法

那些想看却没看的书&#xff0c;在心里摆满一个图书馆… 工具库介绍 阿里巴巴的 FastJSON&#xff0c;也被称为 Alibaba FastJSON 或阿里巴巴 JSON&#xff0c;是一个高性能的 Java JSON 处理库&#xff0c;用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性…

企业电脑监控软件三大盘点

信息技术的不断发展&#xff0c;企业对于员工电脑监控的需求越来越强烈。监控员工电脑可以有效地提高工作效率&#xff0c;防止员工泄露公司机密&#xff0c;同时也可以保护公司的信息安全。 其中给大家推荐三款实用的企业电脑监控软件&#xff1a; 一、域之盾软件 该软件可实…

VS2015 搭建wxWidgets-3.2.3测试环境及运行samples

此方法免去繁琐的环境配置,直接运行及写自己的代码。 1:我们到wxWidgets的官网下载 Release wxWidgets 3.2.3 wxWidgets/wxWidgets GitHub 下载完成后如下: 2:解压上面下载的wxWidgets-3.2.3.zip 解压后如下: 之后到如下目录,运行wx_vc14.sln 3:生成结果 D:\camer…

2023年以就业为目的学习Java还有必要吗?

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

操作系统【OS】调度算法对比图

FCFS SJF 高响应比 时间片轮转 多级反馈队列 可抢占&#xff1f; √ √ √ 队列内算法不一定 不可抢占&#xff1f; √ √ √ 队列内算法不一定 特点&优点 公平实现简单有利于长作业不利于短作业有利于CPU繁忙作业不利于IO繁忙作业 因为CPU繁忙型进程即…

Kafka入门05——基础知识

目录 副本数据同步原理 HW和LEO的更新流程 第一种情况 第二种情况 数据丢失的情况 解决方案 Leader副本的选举过程 日志清除策略和压缩策略 日志清除策略 日志压缩策略 Kafka存储手段 零拷贝&#xff08;Zero-Copy&#xff09; 页缓存&#xff08;Page Cache&…

AGENS算法c++实现

cluster二维数组存放数据的编号&#xff0c;每次计算两个簇的距离&#xff0c;找出距离最近的&#xff0c;将其中一个簇的编号加入另一个编号的一维序列中&#xff0c;再将这个编号清除&#xff0c;之后再循环cluster。 #include<vector> #include <iostream> #in…