电源控制系统架构(PCSA)之电源状态层级

目录

5.2 电源状态层级

5.2.1 Core电源状态

5.2.2 Cluster的电源状态

5.2.3 设备电源状态

5.2.4 SOC电源状态


5.2 电源状态层级

电源状态可以组织为电源状态表的层次结构。每个电源状态表描述在其层次结构级别上可用的电源状态。

从系统级电源控制的角度来看,这种电源状态的层次结构很方便,因为它允许以最小的冗余表示所有合法的电源状态和电源模式组合。

尽管在电源状态表层次结构中可以有任意数量的层次,但本文描述了三个层次结构。这些级别是有效的电源管理所必需的,并在以下章节中进行了描述:

• 5.2.1 Core Power States

• 5.2.2 Cluster Power States

• 5.2.3 Device Power States

• 5.2.4 SoC Power States

图5.1显示了一个双cluster系统的电源状态层次结构示例。设备电源状态表没有在插图中描述,但是,根据操作系统管理的级别,一些设备也可能具有声明的电源状态层次结构。

e9f230a17b0f4727a9d90d495ff004a8.png

5.2.1 Core电源状态

服务器基础系统体系结构[1]为AP核心定义了以下电源状态语义。

RUN

Core已通电并运行代码。

IDLE_STANDBY

核处于WFI状态。保留完整的上下文,不需要保存或恢复软件状态。在任何中断或外部调试请求之后自动恢复执行。调试寄存器是外部可访问的。

IDLE_RETENTION

核处于WFI状态。保留完整的上下文,不需要保存或恢复软件状态。在任何中断或外部调试请求之后自动恢复执行。调试寄存器不能从外部访问。

SLEEP

核断电,但硬件将自动唤醒核心,例如在从GIC接收唤醒中断时。不保留上下文,因此必须显式保存状态。唤醒的核从复位向量开始,然后硬件特定的软件将恢复状态。

OFF

核断电,不需要被中断唤醒。唤醒核心的唯一方法是通过电源控制器显式地请求它上电,例如从运行在另一个核心上的系统软件或外部源(如上电复位)上电。当系统软件明确决定从活动服务中移除核心时,可以使用此状态,从而为硬件提供更积极的节能机会。没有保留核心上下文。

注意:SLEEP和OFF电源状态可能使用相同的电源模式,但在语义上是不同的,因为处于SLEEP状态的核在接收中断时唤醒的能力。

并不是所有的核状态都可以随时使用。它们的可用性取决于所支持和实现的电源模式。

与GIC架构的关系

Arm GICv2和GICv3架构定义了唤醒请求机制,用于将断电内核的中断请求路由到电源控制器。

GIC唤醒请求机制的架构支持软件管理的SLEEP和OFF状态,这些状态不保留上下文并通过重置重新启动。在这种情况下,中断转发到核被禁用,唤醒请求机制被路由到电源控制器。

相比之下,维护核心上下文的IDLE_STANDBY和IDLE_RETENTION状态在中断时自动恢复。在这种情况下,中断转发到核心在状态期间保持启用状态,并且不使用唤醒请求机制。在这些状态中,虽然可能存在进入该状态的软件选择,但不需要其他软件管理。

实现对IDLE_STANDBY和IDLE_RETENTION状态的核心支持需要唤醒源的逻辑在核心功率域之外,并在这些状态期间保持活动。唤醒源逻辑包括私有计时器以及中断、事件、窥探访问和调试请求的检测。

Core的电源状态到电源模式映射示例

表5.1使用Cortex-A55支持的特性提供了AP核心电源状态到可用核心电源模式的映射示例:

07a8719b6e0b4ae896685b96c30d7295.png

【注意】:Cortex-A55不实现对IDLE_RETENTION状态语义的支持,因为核心将响应WFI或WFE中调试寄存器的外部访问。

支持的电源状态到电源模式的分组涉及上下文丢失和唤醒属性:

•RUN电源状态表示核心正在运行的任何模式。没有上下文或唤醒的考虑。HW可以自主地、对软件透明地从retention模式进入和退出Advanced-SIMD/FP管道。硬件实现旨在确保对执行时间没有感知到的延迟影响。

•IDLE_STANDBY和IDLE_RETENTION状态表示核心处于WFI或不丢失上下文的WFE。执行可以从任何唤醒事件直接恢复。保留模式是自主的,硬件实现旨在确保软件不会因为这种自主电源模式选择而感知到延迟影响。

•SLEEP和OFF状态表示核心失去上下文的模式。这些状态由它们的唤醒特性来区分。这些状态的唤醒延迟明显更高。

5.2.2 Cluster的电源状态

本文档定义了以下AP cluster电源状态。

RUN

Cluster已上电,并且可以支持任何核心移动到任何电源状态。

SLEEP_RETENTION

Cluster处于关机状态,但在接收到具有唤醒能力的中断时能够唤醒。集群中至少有一个内核处于SLEEP状态,其他内核处于SLEEP或OFF状态。

保留集群共享缓存的内容。
在集群中的核心可以移动到更高的功率状态之前,集群必须首先移动到RUN状态。

SLEEP

Cluster处于关机状态,但在接收到具有唤醒能力的中断时能够唤醒。集群中至少有一个内核处于SLEEP状态,其他内核处于SLEEP或OFF状态。

不保留集群共享缓存的内容。
在集群中的核心可以移动到更高的功率状态之前,集群必须首先移动到RUN状态。

OFF

Cluster关机,并且在接收中断时不会唤醒。集群中所有核心处于“OFF”状态。
不保留集群共享缓存的内容。

在集群中的核心移动到更高功率状态之前,必须首先将集群移动到适当的更高功率状态。

【注意】:SLEEP和OFF电源状态可能使用相同的硬件电源模式,但在系统级别上在语义上是不同的,因为当集群中的一个核心接收到具有唤醒能力的中断时,处于SLEEP状态的集群能够唤醒。

Cluster电源状态到电源模式映射示例

表5.2使用了DynamIQ共享单元(Shared Unit, DSU)处理器集群支持的特性,提供了一个集群电源状态到可用电源模式的映射示例。

该示例突出了将模式分组为功率状态和分层方法的价值,其中许多核心模式和状态可以分解为几个集群级功率状态。

7af5c8e1dd2c43849c1ee7fb45ce088d.png

5.2.3 设备电源状态

OSPM将有一个机制来表示设备依赖关系,防止SoC进入睡眠状态,直到这些依赖关系被解决。这种依赖关系管理将设备置于与处理器集群在电源管理层次结构中的同一级别。
本文档定义了以下简单的设备电源状态。

RUN

设备已上电,可以进行相应的操作。但是,可能需要特定于驱动程序的操作来启用时钟和其他功能。

OFF

设备下电。唤醒设备的唯一方法是显式地请求设备开机。通常,驱动软件将通过对OSPM的抽象来表达这种依赖关系。OSPM可以请求SCP来执行任何所需的操作。

5.2.4 SOC电源状态

本文档中使用的SoC电源状态仅用于说明目的。SoC的电源状态可能有额外的层次结构,并且将考虑本节未涉及的组件的电源状态。
本文档定义了以下SoC电源状态。

RUN

SoC系统是可用的,可以支持任何处理器集群移动到任何电源状态。设备也可以移动到任何电源状态。

系统中至少有一个AP核心处于RUN或SLEEP状态。
GIC已打开,系统内存可用。

SLEEP

SoC系统不可用,可以下电,但包括系统计数器和唤醒定时器在内的always-on域唤醒功能仍处于打开状态。SoC可以使用唤醒定时器自唤醒。它还可以响应任何系统特定的always-on域唤醒事件。
至少一个处理器集群必须处于SLEEP状态,其余集群必须处于SLEEP或OFF状态。当GIC断电时,唯一能够唤醒处理器的中断是always-on域唤醒事件。

操作系统管理的设备处于关闭状态。

在处理器集群或操作系统管理的设备可以移动到更高的电源状态之前,系统必须首先移动到RUN。

根据其功能,自我管理的设备可以处于任何电源状态。但是,如果需要系统逻辑资源,则必须使用always-on域唤醒事件来请求这些服务。必须有联锁到位,以保证安全行为,直到系统已经移动到RUN。

系统内存不可用。任何所需的上下文要么迁移到片外内存,要么保留在片内。必须保留任何外部DRAM保存系统上下文,通常是在进入SLEEP状态之前将设备置于自刷新模式。
SLEEP状态的深度可以根据省电和增加的进入和退出延迟而变化。OSPM根据自己的延迟需求和任何目标驻留预测来选择SLEEP状态深度。

不同深度的睡眠状态建议使用一个递增的数字后缀来命名,对应于增加的唤醒延迟,例如SLEEP0, SLEEP1等等。

DEEPSLEEP

SoC下电,包括系统计数器和唤醒定时器。系统无法自唤醒。它只能在响应外部事件时唤醒,例如开机复位。
外部DRAM存储器通过实现特定的方法保持在retention状态。

OFF

SoC下电,包括系统计数器和唤醒定时器。系统无法自唤醒。它只能在响应外部事件时唤醒,例如开机重置。
不保留外部DRAM内存。可以使用状态休眠到非易失性存储器,但这超出了本文档的范围。

电源状态映射

表5.3给出了一个如何将这些电源状态映射到系统中的电源域的示例。

1a6f2f7753eb42e2bd0f3ee4a5361b51.png

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle研学-介绍及安装

一 ORACLE数据库特点: 支持多用户,大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性(跨平台,linux转Windows) 二 ORACLE体系结构 数据库:oracle是一个全局数据库,一个数据库可以有多个实例,每个…

Azure Machine Learning - Azure可视化图像分类操作实战

目录 一、数据准备二、创建自定义视觉资源三、创建新项目四、选择训练图像五、上传和标记图像六、训练分类器七、评估分类器概率阈值 八、管理训练迭代 在本文中,你将了解如何使用Azure可视化页面创建图像分类模型。 生成模型后,可以使用新图像测试该模型…

VR Interaction Framework2.0使用

1 按键 ,比如按压下手柄的B键 if (InputBridge.Instance.BButtonDown){print("kkkkkkbbbbb456");} 2抓取某个物体,那么就在要抓取的那个物体上加一些组件,特别是Grabble Unity Events

nginx知识梳理及配置详解

软件开发全文档获取:点我获取 nginx安装 #nginx安装 yum -y install gcc pcre-devel openssl-devel #依赖包 useradd -s /sbin/nologin nginx ./configure --prefix/usr/local/nginx #指定安装目录 --usernginx #指定用户 --with-http_ss…

大语言模型概述(三):基于亚马逊云科技的研究分析与实践

上期介绍了基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。本期将介绍大语言模型训练在亚马逊云科技上的最佳实践。 大语言模型训练在亚马逊云科技上的最佳实践 本章节内容,将重点关注大语言模型在亚马逊云科技上的最佳训…

Vue解析器

解析器本质上是一个状态机。但我们也曾提到,正则表达式其实也是一个状态机。因此在编写 parser 的时候,利用正则表达式能够让我们少写不少代码。本章我们将更多地利用正则表达式来实现 HTML 解析器。另外,一个完善的 HTML 解析器远比想象的要…

【机器学习】聚类(一):原型聚类:K-means聚类

文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. Kmeans类a. 构造函数b. 闵可夫斯基距离c. 初始化簇心d. K-means聚类e. 聚类结果可视化 2. 辅助函数3. 主函数a. 命令…

PCL 计算两点云之间的最小距离

目录 一、 算法原理二、 代码实现三、 结果展示四、 相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、 算法原理 pcl::registration::CorrespondenceEstimation是确定目标和查询点集(或特征)之间对应关…

java中关键字 volatile 和 synchronized 有什么区别

java中 volatile 和 synchronized 有什么区别?

MySQL数据库主从集群搭建

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改) MySQL数据库主从集群搭建 主从复制,是用来建立一个和主数据库完全一样的数据库环境&#xff0c…

软著项目推荐 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

SpectralGPT: Spectral Foundation Model 论文翻译1

遥感领域的通用大模型 2023.11.13在CVPR发表 原文地址:[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ​ 基础模型最近引起了人们的极大关注,因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型…

搜索引擎---项目测试

一)项目背景: 首先介绍一下项目:项目的目标是实现一个基于JAVAAPI的站内搜索引擎 java官方文档是在学习java语言中不可或缺的权威资料,相比于各种网站的Java资料,官方文档无论是语言表达还是组织方式都要更加全面和准确,因为没有人比作者更加…

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好,现在实现视图层的页面展示。 投票的标题、,描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示,涉及到单选还是多选&…

IO多路转接之epoll

目录 一. epoll的实现原理 二. epoll的相关接口 2.1 epoll_create -- 创建epoll模型 2.2 epoll_ctl -- 对epoll模型进行控制 2.3 epoll_wait -- 等待epoll所关注的事件就绪 2.4 epoll相关接口的使用方法 三. Epoll服务器的模拟实现 3.1 EpollServer类的声明 3.2 Epoll…

基于51单片机电子钟万年历LCD1602显示

51单片机的电子钟万年历LCD1602显示 🔴 🔵51单片机的电子钟万年历LCD1602显示🔴 🔵主要功能:🔴 🔵讲解视频🔴 🔵仿真图:🔴 🔵程序&…

Java Web——XML

1. XML概述 XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。XML是一种用于存储和传输数据的语言,它使用标签来标记数据,以便于计算机处理和我们人来阅读。 “可扩展”三个字表明XML可以根据需要进行扩展和定制。这意味…

小程序中的大道理之三--对称性和耦合问题

再继续扒 继续 前一篇 的话题, 在那里, 提到了抽象, 耦合及 MVC, 现在继续探讨这些, 不过在此之前先说下第一篇里提到的对称性. 注: 以下讨论建立在前面的基础之上, 为控制篇幅起见, 这里将不再重复前面说到的部分, 如果您还没看过前两篇章, 阅读起来可能会有些困难. 这是第一…

动态规划学习——子序列问题

目录 ​编辑 一,最长定差子序列 1.题目 2,题目接口 3,解题思路及其代码 一,最长定差子序列 1.题目 给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列…

《使用Python将Excel数据批量写入MongoDB数据库》

在数据分析及处理过程中,我们经常需要将数据写入数据库。而MongoDB作为一种NoSQL数据库,其具有强大的可扩展性、高性能以及支持复杂查询等特性,广泛用于大规模数据存储和分析。在这篇文章中,我们将使用Python编写一个将Excel数据批…