5. Power management

Cortex®‑A715核心提供了控制动态功耗和静态功耗散发的机制。
动态功耗管理包括以下特性:
• 分层时钟门控
• 每个核心的动态电压频率调节(DVFS)
静态功耗管理包括以下特性:
• 关机(Powerdown)
• 动态保留(Dynamic retention),这是一种低功耗模式,保留寄存器和RAM状态
5.1 Voltage and power domains
DynamIQ™ Shared Unit-110(DSU-110)的功耗策略单元(PPU)用于控制Cortex®‑A715核心的功耗管理。该核心支持一个功耗域 PDCORE 和一个系统功耗域 PDCLUSTER。同样,它支持一个核心电压域 VCORE 和一个集群系统电压域 VCLUSTER。功耗域和电压域具有相同的边界。
PDCORE 功耗域包含了所有的Cortex®‑A715核心逻辑以及属于 VCORE 域的部分核心异步桥接逻辑。PDCLUSTER 功耗域包含了属于 VCLUSTER 域的CPU桥接的部分逻辑。
下图显示了Cortex®‑A715核心的功耗域和电压域。它还显示了覆盖CPU桥接系统侧的集群功耗域和电压域。

 如果满足以下条件之一,您可以将VCORE和VCLUSTER电压域连接到相同的电源上:
• 核心配置为与DSU-110同步运行,共享相同的时钟。
• 核心不需要支持动态电压频率调节(DVFS)。
在具有多个Cortex®‑A715核心的集群中,每个核心都有一个 PDCORE<n>功耗域,其中n是核心的实例编号。如果不存在某个核心,则相应的功耗域也不存在。
下图显示了一个示例Cortex®‑A715配置的功耗域,其中包含一个四核心集群:

夹持(clamping)单元位于功耗域之间,通过功耗意图文件(UPF)进行推断,而不是在RTL中实例化。有关更多信息,请参阅Arm® Cortex®‑A715核心配置和集成手册中的功耗管理部分。
Arm® Cortex®‑A715核心配置和集成手册是一份机密文档,只有在获得相应产品许可证的情况下才可以获得。
关于DSU-110集群功耗域和电压域的详细信息,请参阅Arm® DynamIQ™ Shared Unit-110技术参考手册中的功耗管理部分。
5.2 Architectural clock gating modes    //架构级的时钟门控模式
WFI(Wait For Interrupt)和WFE(Wait For Event)指令将核心置于低功耗模式。这些指令会禁用时钟树顶部的时钟信号。核心保持完全供电并保留其状态。
5.2.1 Wait for Interrupt and Wait for Event
等待中断(WFI)和等待事件(WFE)是一种功能,通过禁用大部分核心时钟将核心置于低功耗状态,同时保持核心供电。当核心处于WFI或WFE状态时,输入时钟会在CPU桥接处对核心进行外部门控。
在WFI或WFE低功耗状态下唤醒核心所需的逻辑会消耗少量的动态功耗。除此之外,绘制的功耗仅限于静态漏电流。
当核心执行WFI或WFE指令时,它会等待核心中的所有指令(包括显式的内存访问指令)执行完毕,然后进入低功耗状态。WFI和WFE指令还确保存储指令已更新缓存或已提交给L3内存系统。
当事件寄存器被设置时执行WFE指令不会导致进入低功耗状态,但会清除事件寄存器。
核心在以下事件发生时退出WFI或WFE状态:
- 核心检测到复位信号。
- 核心检测到架构定义的WFI或WFE唤醒事件。
WFI和WFE唤醒事件可以包括物理中断和虚拟中断。
有关进入低功耗状态和唤醒事件的更多信息,请参阅Arm®架构参考手册A型架构部分。
5.2.2 Low-power state behavior considerations
要考虑到某些事件如何影响Cortex®‑A715核心的等待中断(WFI)和等待事件(WFE)低功耗状态行为。
在核心处于WFI或WFE状态时,当检测到以下任一事件时,核心内部的时钟会临时启用:
- 必须由核心L1数据缓存或L2缓存处理的系统嗅探请求
- 必须由核心L1指令缓存、L1数据缓存、L2缓存或TLB处理的缓存或转换查找缓冲器(TLB)维护操作
- 在效用总线接口上的访问
- 通过高级外设总线(APB)接口进行的通用中断控制器(GIC)CPU访问或调试访问
当时钟被临时启用时,核心不会退出WFI或WFE状态。
有关WFI和WFE的更多信息,请参阅Arm®架构参考手册A型架构部分。
5.3 Power control
DynamIQ™ Shared Unit-110(DSU-110)的功耗策略单元(PPU)控制着所有核心和集群的功耗模式转换。
每个核心都有自己的PPU来控制其自身的核心功耗域。此外,还有一个用于控制整个集群的PPU。
PPU决定并请求任何功耗模式的变更。然后,Cortex®‑A715核心执行达到请求的功耗模式所需的任何操作。例如,在接受请求之前,核心可能会关闭时钟、清除缓存或禁用一致性。
有关集群和核心的PPU的更多信息,请参阅Arm® DynamIQ™ Shared Unit-110技术参考手册中的以下章节:
- 功耗管理
- 使用功耗策略单元进行功耗和复位控制
5.4 Core power modes
Cortex®‑A715核心的功耗域具有一组定义好的功耗模式,以及这些模式之间的合法转换。每个核心的功耗模式可以独立于集群中的其他核心。
核心的功耗策略单元(PPU)在集群级别管理该核心的功耗模式之间的转换。有关更多信息,请参阅Arm® DynamIQ™ Shared Unit-110技术参考手册中的功耗管理部分。
以下表格显示了支持的Cortex®‑A715核心功耗模式。
未在下表中显示的功耗模式不受支持,不能出现。违反合法的功耗模式可能会导致不可预测的结果。您必须遵守第48页上描述的动态功耗管理、上电和下电序列。


以下图示显示了Cortex®‑A715核心功耗域支持的模式以及它们之间的合法转换。

相关信息:
5.2 第40页上的架构时钟门控模式
5.4.4 第44页上的全保持模式
5.2.1 第40页上的等待中断和等待事件模式
5.4.1 On mode
在On模式下,Cortex®‑A715核心处于开启状态并完全可操作。
可以将核心初始化为On模式。完成向On模式的转换后,所有缓存都是可访问和一致的。除了启用缓存的正常架构步骤外,不需要额外的软件配置。
5.4.2 Off mode
在关机模式下,核心完全断电,不保留任何状态。
在关机模式下,所有核心逻辑和RAM都处于关闭状态。该域无法使用,所有核心状态都会丢失。L1和L2缓存会被禁用、清除和失效,并且在进入关机模式时,核心会自动退出一致性。
在此模式下,冷重启可以重置核心。
当核心域关闭时,尝试对核心调试寄存器进行外部调试访问或者对实用总线进行访问会在内部调试接口返回错误响应。该错误表示核心不可用。
当核心处于关机模式时,可以访问DebugBlock中与External Debug Over PowerDown (EDOPD)功能相关的特定于核心的调试寄存器。
5.4.3 Emulated off mode
在模拟关机模式下,所有核心域逻辑和RAM都保持开启状态。所有调试寄存器必须保留其状态,并可以通过外部调试接口进行访问。所有其他功能接口的行为与核心处于关机模式时相同。
5.4.4 Full retention mode    //全保持模式
全保持模式是一种通过功耗策略单元(PPU)进行控制的动态保持模式。在唤醒时,可以恢复核心的全部功率,并继续执行。
在全保持模式下,仅提供保持寄存器和RAM状态所需的功率。核心处于保持状态,无法操作。
当满足以下所有条件时,核心进入全保持模式:
• 保持定时器已到期。有关设置保持定时器的更多信息,请参见A.1.17 IMP_CPUPWRCTLR_EL1,CPU电源控制寄存器。
• 核心处于等待中断(WFI)或等待事件(WFE)的低功耗状态。
• 核心时钟没有因以下任何原因而被临时启用:
◦ L1或L2快速缓存的snoop操作
◦ 缓存或转换查找缓冲器(TLB)的维护操作
◦ 调试或通用中断控制器(GIC)访问
核心在检测到以下任何事件时退出全保持模式:
• WFI或WFE的唤醒事件,根据Arm®架构参考手册(A-profile architecture)的定义。
• 需要临时启用核心时钟的事件,而不会退出WFI或WFE低功耗状态。例如:
◦ L1或L2快速缓存的snoop操作
◦ 缓存或TLB的维护操作
◦ 来自DynamIQ™ Shared Unit-110(DSU)的DebugBlock的调试访问
◦ GIC访问
5.4.5 Debug recovery mode    //调试恢复模式
调试恢复模式支持对外部看门狗触发的复位事件(例如看门狗超时)进行调试。
默认情况下,当核心从关机模式切换到开机模式时,会使其缓存失效。使用调试恢复模式可以在复位后观察到复位前存在的L1缓存和L2缓存内容。缓存的内容会被保留,在切换回开机模式时不会被修改。
除了保留缓存内容,调试恢复还支持保留可靠性、可用性和可维护性(RAS)状态。在调试恢复模式下,必须从外部应用 DSU-110 DynamIQ™ 集群范围的 Warm 复位。当将核心切换到开机模式时,RAS和缓存状态会被保留。
调试恢复仅用于调试目的。不得将其用于功能目的,因为在进入此模式时无法保证缓存的正确操作。
调试恢复模式可以在任何时候发生,而核心的状态没有保证。此类请求会立即被接受,因此对核心、DynamIQ™集群或更广泛的系统的影响是不可预测的,并且可能需要进行更广泛的系统复位。特别地,在复位时,可能会完成复位时的任何未完成的内存系统事务。
核心不期望在复位后完成这些事务,可能会导致系统死锁。
如果系统在调试恢复模式下向DynamIQ™集群发送散列请求,则取决于集群状态:
• 散列请求可能会获得响应并干扰缓存的内容。
• 散列请求可能无法获得响应并导致系统死锁。
5.4.6 Warm reset mode    //热复位模式
热复位(Warm reset)会重置除追踪逻辑、调试寄存器和可靠性、可用性和可维护性(RAS)寄存器之外的所有状态。
当Cortex®‑A715核心从CPU桥的DynamIQ™共享单元-110(DSU-110)一侧接收到热复位信号时,将会应用热复位来重置该核心的状态。
Cortex®‑A715核心实现了Arm®v8‑A Reset Management Register,即RMR_EL3。当核心在EL3模式下运行时,如果将RMR_EL3.RR位设置为1,则会请求进行热复位。
有关RMR_EL3的更多信息,请参阅Arm® A-profile体系结构参考手册。
5.5 Performance and power management
Cortex®‑A715核心实现了性能和功耗管理(PPM)功能,可用于限制核心内部的高活动事件或在效率和峰值性能之间进行权衡。
PPM功能包括: 
• 最大功耗缓解机制(MPMM) 
• 性能优化功耗(PDP)
5.5.1 Maximum Power Mitigation Mechanism    //最大功耗缓解机制
最大功率缓解机制(MPMM)是一种功耗管理功能,用于检测和限制高活动事件,特别是高功率的加载-存储事件和向量单元指令。在评估期间,如果高活动事件的计数超过预定义的阈值,MPMM会临时限制指令执行速率和内存系统事务。MPMM提供了三个档位,使其能够限制特定类别的工作负载。每个MPMM档位以不同的适应性水平来限制工作负载,其中档位0产生最激进的节流效果,而档位2最不激进。活动监控单元(AMU)为每个档位提供度量数据。外部功耗控制器可以利用这些度量数据来进行SoC功耗的预算管理,方式包括:
• 限制能够执行高活动负载的核心数量
• 切换到不同的动态电压和频率调整(DVFS)工作点
MPMM并不旨在限制接近典型功率水平的工作负载。MPMM的事件检测和限制目标是限制那些比典型整数工作负载具有显著更高功耗的工作负载。
MPMM不能作为唯一的电气安全机制。它本质上是一种在核心级别操作的局部辅助机制。MPMM并不替代粗粒度紧急功耗降低方案,但它确实最大程度减少了出现这类方案的可能性。它是第一道防线而不是完整的解决方案。
相关信息:
A.2.1 IMP_CPUPPMCR_EL3,在第253页的全局PPM配置寄存器
A.4.27 IMP_CPUMPMMCR_EL3,在第320页的全局MPMM配置寄存器
B.1.1 CPUPPMCR,在第468页的全局PPM配置寄存器
B.1.2 CPUMPMMCR,在第470页的全局MPMM配置寄存器
5.5.2 Performance Defined Power    //性能优化功耗
性能优化功耗(PDP)是一种功耗管理功能,通过在常规工作负载上降低功耗范围来换取峰值性能。
PDP的配置可在三个可能值中选择不同的适应性水平。当适应性水平增加时,平均工作负载功耗减少,但会导致不同工作负载的性能损失增加。
//性能损失->功耗减少
PDP对以下方面产生影响:
• 核心功耗降低。核心功耗减少,效率提高。
• 外部内存系统功耗降低。调节内存请求带宽以降低内存系统的功耗。
5.5.3 Dispatch block    //调度阻塞
在极端核心温度或功耗条件下,您可以临时停止处理器的前进进程,而不停止时钟。
DSU-110边界上提供了一个引脚,可以直接用于强制处理器停顿,持续时间为引脚被激活的期间。当处理器停顿时,新指令的调度将停止。然而,已经调度的指令将继续按照正常方式执行和完成。
5.6 Cortex®‑A715 core powerup and powerdown sequence
对于 Cortex®-A715 核心,没有特定的顺序来启动。要关闭核心,您必须按照特定的顺序进行操作。在复位后,不需要进行软件步骤来确保核心在一致性上。
以下是关闭 Cortex®-A715 核心的步骤:
1. 如果需要,将核心状态保存到系统内存中,以便在核心上电时可以恢复核心状态。
2. 禁用核心的中断:
   a. 在 ICC_IGRPEN0_EL1 和 ICC_IGRPEN1_EL1 寄存器中禁用中断使能位。
   b. 使用 GICR_WAKER 寄存器设置 GIC 分发器的唤醒请求。
   c. 读取 GICR_WAKER 寄存器,确认 ChildrenAsleep 位指示接口处于静止状态。
3. 禁用 RAS 寄存器的中断输出,或者将核心的 RAS 故障和错误中断输出重定向到系统错误管理器。有关更多信息,请参阅第49页的“在核心关机期间管理 RAS 故障和错误中断”的5.6.1节。
4. 将 IMP_CPUPWRCTLR_EL1.CORE_PWRDN_EN 位设置为1,表示请求关机。
5. 执行 ISB 指令。
6. 执行 WFI 指令。一旦执行了 WFI 指令,关机序列就不可中断。
在执行 WFI 指令后,如果从电源控制器收到关机请求,硬件将执行以下操作:
- 禁用和清理核心缓存
- 从系统一致性中移除核心
当设置了 IMP_CPUPWRCTLR_EL1.CORE_PWRDN_EN 位时,执行 WFI 指令会自动屏蔽核心中的所有中断和唤醒事件。因此,应用复位是唯一唤醒核心从等待中断(WFI)状态的方法。
5.6.1 Managing RAS fault and error interrupts during the core powerdown
//在核心关机期间管理 RAS(Reliability, Availability, and Serviceability)故障和错误中断。
在执行 WFI 指令后,电源管理架构不允许中断核心软件的执行。
因此,在以下情况下,无法通过中断来管理任何 RAS 故障或错误:
- 在核心关机程序执行 WFI 指令之前检测到 RAS 故障或错误,并且错误尚未清除。
- 在核心关机程序执行 WFI 指令后检测到 RAS 故障或错误。
您必须管理 RAS 故障和错误中断的状态,以完成核心关机序列。如果核心中存在活动的 RAS 故障或错误中断,则阻止核心关机,因此:
- 核心保持通电状态,但软件处于非活动状态。
- 核心处理器功率管理单元(PPU)发出的所有关机请求将被拒绝。
- 重新启动核心软件的唯一机制是进行完整的集群复位。
如果在核心关机过程之前禁用了 RAS 故障和错误中断输出,并且启用了错误检测和纠正响应,那么以下情况成立:
- 可纠正的错误将会被纠正。
- 可延迟处理的错误将会作为自动缓存清理和失效过程的一部分进行延迟处理。
- 当核心关闭电源时,可纠正和可延迟处理的错误记录将会丢失。
- 如果在核心关闭电源时存在不可纠正的错误,则不会向系统发出错误信号,并且可能会破坏系统行为。
如果方便的话,您可以禁用对可纠正和可延迟处理错误的 RAS 故障和错误中断生成,同时启用对不可纠正错误的中断。然而,在执行核心关机程序中的 WFI 指令之前,必须重新路由核心的错误中断输出到系统错误管理器。为此,可以按照以下方式配置 ERxCTLR_EL1 寄存器:
- ERxCTLR_EL1.CFI = 0
- ERxCTLR_EL1.FI = 0
- ERxCTLR_EL1.UI = 1
如果在关机过程中发生不可纠正的错误,核心将保持通电状态,软件将处于非活动状态。此时,系统错误管理器负责重置整个集群以及与核心和集群交互的更广泛系统。要使用这种方法,系统必须设计成允许核心的 RAS 错误中断重新路由到系统错误管理器。由于核心的 RAS 寄存器仅对在核心上运行的软件可访问,系统错误管理器无法确定不可纠正的错误发生在核心的哪个位置。
5.7 Debug over powerdown
Cortex®-A715核心支持调试关机功能,允许调试器在核心关机时保持与核心的连接。这种行为使得调试可以在关机情况下继续进行,而不需要每次重新建立连接。
调试关机逻辑是DynamIQ™ Shared Unit-110(DSU-110)中的DebugBlock的一部分。DebugBlock位于DSU-110 DynamIQ™集群之外,并且在调试关机过程中必须保持通电状态。
详细信息请参阅Arm® DynamIQ™ Shared Unit-110技术参考手册中的调试章节。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值