电源控制系统架构(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

 

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

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

相关文章

Python与设计模式--抽象工厂模式

Python与设计模式–抽象工厂模式 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上,有三类可以选择的上餐品:汉堡等主餐、小食、饮料。当我们选择好自己需要的食物,支付完成后&#xff0…

吴恩达《机器学习》10-1-10-3:决定下一步做什么、评估一个假设、模型选择和交叉验证集

一、决定下一步做什么 在机器学习的学习过程中,我们已经接触了许多不同的学习算法,逐渐深入了解了先进的机器学习技术。然而,即使在了解了这些算法的情况下,仍然存在一些差距,有些人能够高效而有力地运用这些算法&…

RevCol实战:使用RevCol实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 可逆柱状结构(RevCol)是一种网络结构,它受到GLOM(Global Columnar Memory)的启发。RevCol由N个子网络(或称为…

[SWPUCTF 2021 新生赛]no_wakeup

直接赋值即可 $a ->admin admin; $a ->passwd wllm; 发现没有绕过,改成大于2的绕过__wakeup 这是因为PHP在反序列化时会检查序列化字符串的长度,如果长度小于等于2,则不会调用__wakeup()方法。

Windows环境搭建

Windows环境搭建 一. jdk1.8安装1. 资源链接2. 安装3. 配置环境变量 一. jdk1.8安装 1. 资源链接 资源链接 提取码:tfms 2. 安装 1.双击下载好的JDK,点击下一步。 2.修改默认目录(可不修改),点击下一步, 3. 点击下…

EEG 脑电信号处理合集(2): 信号预处理

脑电信号在采集完以后,需要进行一系列的预处理操作,然后才能用于后续的科学研究和计算。预处理是脑电信号分析最基本且重要的一步。基于python环境MNE库。 1 使用带通滤波器,信号滤波,去噪,去工频干扰 data_path sam…

【SpringBoot篇】阿里云OSS—存储文件的利器

文章目录 🌹什么是阿里云OSS⭐阿里云OSS的优点 🏳️‍🌈为什么要使用云服务OSS🎄使用步骤⭐OSS开通⭐参考官方SDK 🍔编写代码⭐上传文件 🌹综合案例 🌹什么是阿里云OSS 阿里云对象存储&#xf…

Diffusion Model: DDPM

本文相关内容只记录看论文过程中一些难点问题,内容间逻辑性不强,甚至有点混乱,因此只作为本人“备忘”,不建议其他人阅读。 Denoising Diffusion Probabilistic Models: https://arxiv.org/abs/2006.11239 DDPM 一、基于 已知…

QFont如何设置斜体|QlineEdit设置只能输入数字|QThread::finished信号发出后worker未调用析构函数

QFont如何设置斜体 要设置 QFont 的斜体,你可以使用 setItalic() 方法。以下是一个示例代码: #include <QApplication> #include <QLabel> #include <QFont> int main(int argc, char *argv

可观测性建设实践之 - 日志分析的权衡取舍

指标、日志、链路是服务可观测性的三大支柱&#xff0c;在服务稳定性保障中&#xff0c;通常指标侧重于发现故障和问题&#xff0c;日志和链路分析侧重于定位和分析问题&#xff0c;其中日志实际上是串联这三大维度的一个良好桥梁。 但日志分析往往面临成本和效果之间的权衡问…

NET 8.0 中新的变化

1性能提升 .NET 8在整个堆栈中带来了数千项性能改进 。默认情况下会启用一种名为动态配置文件引导优化 (PGO) 的新代码生成器&#xff0c;它可以根据实际使用情况优化代码&#xff0c;并且可以将应用程序的性能提高高达 20%。现在支持的 AVX-512 指令集能够对 512 位数据向量执…

mysql union 和 union all区别?

在MySQL中&#xff0c;UNION和UNION ALL都是用于合并两个或多个SELECT语句的结果集。它们之间的主要区别在于如何处理重复记录。 UNION:UNION在合并结果集时会删除重复的记录。这意味着如果两个SELECT语句的输出结果中有相同的记录&#xff0c;那么UNION只会保留其中一个。在执…

您的计算机已被.locked1勒索病毒感染?恢复您的数据的方法在这里!

尊敬的读者&#xff1a; 勒索病毒如.locked1已经成为网络安全的一大威胁。这类病毒通过加密用户文件&#xff0c;并勒索赎金以解密这些文件&#xff0c;给用户和组织带来了巨大的损害。本文将深入介绍.locked1勒索病毒的特点、恶意目的&#xff0c;以及如何恢复被其加密的数据…

Oracle数据库语句大全

一&#xff0e;入门部分 创建表空间 create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on;删除表空间 drop tablespace schooltbs[including contents and datafiles];查询表空间基本信息 select *||tablespace_name from D…

PyQt6运行QTDesigner生成的ui文件程序

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计18条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库Q…

linux网络编程之UDP编程

linux网络编程之UDP编程 UDP编程模型服务端客户端 tcp与udp的区别 UDP编程模型 服务端 1.创建socket 2.构建服务器协议地址簇 3.绑定 4. 通信 sendto&#xff08;多了两个参数&#xff09; send connect #include <stdio.h> #include <sys/types.h> /*…

Selenium实战指南:安装、使用技巧和JavaScript注入案例解析

背景 ​ 最近一段时间我会重新开一个关于selenium的专题&#xff0c;由浅入深的给大家讲一下selenium&#xff0c;同时回顾一下之前学的内容&#xff0c;selenium可以实现模拟登录&#xff0c;动态数据获取&#xff0c;获取动态cookie等等&#xff0c;还有可以写一些抢p的脚本…

matlab使用plot画图坐标轴上的导数速度一点和加速度两点如何显示

一、背景 在使用matlab中的plot函数画图时&#xff0c;有时需要在坐标轴上显示一个点的导数项&#xff0c;如横坐标是时间&#xff0c;纵坐标是速度&#xff0c;也就是位置的导数 y ˙ \dot y y˙​&#xff0c;如下图所示&#xff0c;这在matlab如何操作呢&#xff1f; 二…

护士排班问题:Nurse Rostering Problem(NRP)实战并可视化页面

文章目录 护士排班NRP问题问题示例模型求解排班表可视化护士排班NRP问题 基于计算机的自动化排班有助于提高排班的效率和质量,从而使得人力资源得到有效的利用。护士排班问题并不专指对于医院护士的排班,实际上泛指这种限制条件较多的排班问题。护士排班NRP问题是一个典型的…

工厂方法模式 (Factory Method Pattern)

定义&#xff1a; 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;用于解决对象创建的问题。它定义了一个创建对象的接口&#xff0c;但让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法模式的关键…