电源控制系统架构(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.niftyadmin.cn/n/5212292.html

相关文章

ElasticSearch之虚拟内存

查看当前Linux系统中vm.max_map_count变量的值,命令如下: sysctl vm.max_map_count执行结果的样例,如下: vm.max_map_count 65530修改参数vm.max_map_count的值,命令如下: sysctl -w vm.max_map_count2…

Java实现求最大值

1 问题 接收用户输入的3个整数,如何将最大值作为结果输出。 2 方法 采用“截图文字代码”的方式描述。 引入输入包调用main()函数,提示并接收用户输入的3个整数,并交由变量a b c来保存。对接收的3个数据进行比较,先比较a和b&#…

ubuntu环境删除qtcreator方法

文章目录 方法1方法2方法3参考不同的安装方法,对应不同的删除方法 方法1 apt-get或者dpkg 方法2 QtCreatorUninstaller 方法3 MaintenanceTool

服务器被入侵了怎么去排查

在当今数字化时代,网络安全问题变得越来越重要。其中,服务器被入侵是一种常见的安全威胁。当服务器被入侵时,我们需要采取一系列措施来排查和解决问题。本文将为您提供服务器被入侵后的排查步骤。 第一步:确认服务器被入侵 当发现…

【cppcheck 静态代码分析工具使用教程】

cppcheck 是一个流行的静态代码分析工具,用于 C 和 C++ 程序。它可以帮助检测代码中的错误、未定义的行为、内存泄漏等。在 Ubuntu 系统上使用 cppcheck 的基本步骤和示例如下: 文章目录 安装 `cppcheck`使用 `cppcheck`基本用法选项示例集成到 IDE注意事项安装 cppcheck 打开…

Vue 或者 React 中,什么情况下会用 Es6 的 Class类

// 问个问题,一般在 Vue 或者 React中 // 在框架具备很多组件通讯技术或者js语法支持的情况下,什么情况下会用 Es6 的 Class类?在Vue或React中,通常会在以下情况下使用ES6的Class类: 复杂组件或模块: 当需要构建较为复…

0003Java程序设计-ssm基于微信小程序的家教信息管理系统

文章目录 摘要目 录系统实现开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅🐧裙:776871563 摘要 本文讲述了基于微信小程序的家教信息管理系统的设计与实现。结合线上管理的特点,分析了家教信息管理系统的现状,给出…

Pix2Pix 使用指南:从原理到项目应用

Pix2Pix Pix2Pix 介绍:使用条件 GAN 进行图像到图像的转换Pix2Pix 原理Pix2Pix 模型结构生成器:Unet结构判别器:PatchGAN目标函数目标函数总结 Pix2Pix 项目使用 Pix2Pix 介绍:使用条件 GAN 进行图像到图像的转换 Pix2Pix 论文&a…