电源控制系统架构(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.hqwc.cn/news/214918.html

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

相关文章

MES管理系统需要与ERP系统协同工作吗

在当前的制造业环境中,信息化、智能化、数字化已经成为了企业转型升级的重要方向。其中,ERP企业管理系统与MES生产管理系统的应用和实施,对于提升企业的运营效率和竞争力具有显著效果。然而,在面对系统工具选择时,许多…

用GPT做美食:飞一般的感觉~

大家好,我是五竹。 自体验了GPT的识图功能以来,提到了两次使用GPT识别美食图片快速出文案的案例,但一直都没有来得及实战。不过公众号的一位女粉丝已经出成果了。 不能说是缘分,应该是微信公众号的算法推荐让她看到了我之前的一…

EFAK-v3.0.1版部署与使用

一、前言 EFAK((Eagle For Apache Kafka,以前称为Kafka Eagle)用于在使用 Topic 的情况下监控 Kafka 集群。包含Offset 的产生、Lag的变化、Partition的分布、Owner、Topic的创建以及修改的时间等信息。 二、环境&安装包 官方下载连接E…

系列六、Spring整合单元测试

一、概述 Spring中获取bean最常见的方式是通过ClassPathXmlApplicationContext 或者 AnnotationConfigApplicationContext的getBean()方式获取bean,那么在Spring中如何像在SpringBoot中直接一个类上添加个SpringBootTest注解,即可在类中注入自己想要测试…

ThreeJs实现简单的动画

上一节实现可用鼠标控制相机的方式实现动态效果,但很多时候是需要场景自己产恒动态效果,而不是通过鼠标拖动,此时引入一个requestAnimationFrame方法,它实际上是通过定时任务的方式,每隔一点时间改变场景中内容后重新渲…

一站式企业快递管理平台使用教程

因公寄件在企业中重要性的提升,催生出了企业快递管理平台。为什么这么说呢? 随着经济和快递行业的发展,因公寄件在企业中成了一件“常事”,寄文件合同、发票、节假日慰问品、样品等等,这种情况之下,因公寄件…

Linux 排查必看文件

目录 1. 登录日志 1.1 /var/log/wtmp 1.2 /var/log/btmp.* 1.3 /var/log/lastlog 1.4 /var/log/faillog 1.5 /var/log/secure 1.6 /var/log/auth.log 2. 系统日志 2.1 /var/log/cron.* 2.2 /var/log/syslog 2.3 /var/log/audit/audit.*log 3. 历史命令 3.1 ~/…

tp8 使用rabbitMQ(3)发布/订阅

发布/订阅 当我们想把一个消息,发送给 多个消费者的时候,我们把这种模式叫做发布/订阅模式,比如我们做两个消费者,其中一个消费者把消息写入磁盘中,别一个消费者把消息结果输出到屏幕上,就要用到发布订阅模…

井盖位移传感器生产厂家推荐,时刻感知井盖

马路上的井盖虽然看似微不足道,但实际上对于行人的“脚下安全”起着至关重要的作用。这些井盖下连接着供排水、燃气、电力、供热、通信等功能的管路和线路,是城市生命线运行的重要保障。因此保持井盖状态正常、明确管理责任是确保车辆和行人安全通行的重…

电源控制系统架构(PCSA)之系统分区电压域

目录 4.1 电压域 4.1.1 系统逻辑 4.1.2 Always-On逻辑 4.1.3 处理器Clusters 4.1.4 图形处理器 4.1.5 其他功能 4.1.6 SoC分区示例 本章描述基于Arm组件的SoC划分为电压域和电源域。 所描述的选择并不详尽,只是可能性的一个子集。目的是描述基于Arm组件的SoC…

重生之我是一名程序员 37 ——C语言中的栈溢出问题

哈喽啊大家晚上好! 今天呢给大家带来一个烧脑的知识——C语言中的栈溢出问题。那什么是栈溢出呢?栈溢出指的是当程序在执行函数调用时,为了保护函数的局部变量和返回地址,将这些数据存储在栈中。如果函数在函数调用时使用了过多的…

微服务实战系列之签名Sign

前言 昨日恰逢“小雪”节气,今日寒风如约而至。清晨的马路上,除了洋洋洒洒的落叶,就是熙熙攘攘的上班族。眼看着,暖冬愈明显了,叶子来不及泛黄就告别了树。变化总是在不经意中发生,容不得半刻糊涂。 上集博…