多处理在当今的电子系统中无处不在。主要优势是通过并行执行加快处理速度,并通过为每项活动配备合适的处理器来改进功耗、散热和延迟等操作特性。这同样适用于多核系统,这些系统通常在处理单元之间具有更紧密的数据和时序联系。
从历史上看,并行执行和由此产生的性能提升受到了工程界的大部分关注,工程界产生了先进的并行软件标准,例如开放计算语言 (OpenCL)、异构系统架构 (HSA)、开放多处理 (OpenMP) 等. 多处理器系统的操作特性,如电源,虽然对电子系统至关重要,但仍被困在与主操作系统捆绑在一起的操作系统定向电源管理 (OSPM) 中,作为整个系统的控制器。OSPM 面临的个挑战是在单个处理器管理程序上运行多个客户操作系统,然后是多操作系统、多核管理程序变体,是异构多操作系统、多处理器系统。因此,管理程序和专用内核开始接管 OSPM 角色,
延迟/功率权衡问题
目前没有通用的标准来管理异构多处理器系统中的系统功率。每个供应商都必须重新发明 API 和协议来处理电源管理,并花时间将这些 API 集成到系统中每个处理的每个代码库中。为了满足市场需求,供应商倾向于在他们用于每个内核的软件中利用现有的电源管理解决方案,然后将这些内核松散地耦合在一起以创建临时电源管理机制。这些临时制度往往具有高延迟电源状态转换。为了解决这个问题,公司创建了静态的、不经常更新的数据驱动方法,以延迟换取功率。由于这些权衡,供应商不得不放弃权力。
用于异构处理器的新 Power API
解决这个问题的方法是创建一个所有软件供应商都可以合理实施的 API 规范,一个充当底层电源管理基础的规范。由于异构系统的独特需求,应该可以使用少量代码实现 API,这样即使是的内核也可以参与系统范围的电源管理。API 还应该足够通用,以便可以表示大多数异构架构,但又不能过于通用以至于 API 变得难以使用。,API 应该与现有的电源管理方案兼容,例如 ARM 的电源状态协调接口 (PSCI)。
AGGIOS 和 Xilinx 在过去两年开发的新的可扩展能源管理接口 (XEMI) 满足了所有这些要求。
XEMI 不是革命性的;它不是故意的。XEMI 类似于 ARM 的 PSCI。与 PSCI 不同,XEMI 涵盖异构系统。XEMI 的意图是提供一个通用 API,允许所有软件组件对内核和外围设备进行电源管理。在较别,XEMI 允许用户指定电源管理目标,例如暂停复杂的处理器集群或仅暂停单个内核。然后,底层实现可以自由地自主实现节能方法。这种方法减少了延迟,因为操作请求者可以指定电源目标,而不必执行电源状态转换的每个步骤。
下一页 >>
消息传递接口掌握系统电源
XEMI API 提供了管理异构多核系统中组件电源状态的机制。通过将系统组件的电源状态控制委托给中央能源管理层,XEMI 使多个独立的处理集群能够以节能的方式共享可用的从属设备。
XEMI 假设一种系统架构由一个或多个处理集群、中央能源管理软件(它本身可以分布在多个内核上)以及可以进入多个电源状态的从属设备组成(图 1)。此外,可能存在电源岛和电源域的层次结构,允许通过在电源岛的情况下本地关闭电源或通过外部稳压器或电源管理 IC (PMIC) 的电源域来关闭组件组.
图 2. XEMI 系统架构
处理集群将通过 XEMI 提交功率/性能请求。这些请求由电源管理控制器接收和处理。电源管理控制器负责管理所有从属设备的电源状态,它根据处理集群断言的累积电源性能要求来选择。它还负责管理处理集群本身的电源状态,这将使用 XEMI 来协调它们自己的挂起过程与控制器。
处理集群的挂起过程主要由运行在这些集群上的软件启动和执行,而需要电源管理控制器来执行挂起过程的步骤。控制器正在关闭集群所在的电源岛和电源域,并通过潜在地调整处理集群运行所需的从属设备的电源状态。
XEMI 还包括用于请求挂起或唤醒其他处理集群的 API,提供标准化机制来协调系统睡眠状态以及管理处理集群之间的主/从关系。
XEMI API 中传递的要求可以是指明确的组件功能,也可以包括延迟要求,从而允许电源管理控制器为从属设备和处理集群选择电源状态。鉴于实际延迟将是平台特定的,取决于外部 PMIC 等组件,XEMI 允许将这些延迟细节封装在中央控制器固件中,而不是要求每个处理集群上的软件根据这些细节进行调整。应用软件只需要知道它的延迟要求;这些要求如何映射到各种设备的状态取决于电源管理控制器。
适用于 Xilinx Zynq UltraScale+ MPSoC 的 XEMI
Aggios 和 Xilinx 已经为 Zynq UltraScale+ MPSoC 创建了 XEMI 实现(图 2)。该平台非常适合构建 XEMI 的个实现,因为可编程逻辑允许工程团队有效地探索设计空间。此外,该平台将成为其他人继续完善 XEMI 规范的理想平台,因为它具有普遍可用性和易用性。
单击以获取更大的图像
图 2. UltraScale+ MPSoC 架构
Zynq UltraScale+ MPSoC 包含多个可以相互独立运行的处理集群,包括一个四通道 ARM Cortex-A53 应用处理器单元 (APU)、一个双通道 ARM Cortex-R5 实时处理器单元 (RPU) 和可编程逻辑,它可以承载一个或多个软核处理器。所有这些处理器都可以共享许多从属设备。此外,当 APU 等处理器未运行时,通过完全关闭电源岛可以进一步降低泄漏功耗。通过关闭整个全功率域 (FPD),可以进一步降低功耗。XEMI 用于协调和实施这些和其他转换。
单击以获取更大的图像
图 3. 深度睡眠 UML 图
图 3 中的统一建模语言 (UML) 图描述了 XEMI 如何用于实现典型的电源管理用例。该图显示了从“全开”状态到深度睡眠状态的转换,对全功率域 (FPD) 中的任何元件没有严格的唤醒延迟要求。在深度睡眠中,两个处理单元都关闭,内存保持不变,FPD 关闭。
实时处理单元 (RPU) 通过调用pm_request_suspend启动到深度睡眠状态的转换。然后,平台管理单元 (PMU) 要求 APU 使用pm_init_suspend 暂停自身。 APU 执行其自身的自挂起并将其上下文保存在双倍数据速率 (DDR) 内存中。APU 挂起程序完成后,PMU 会通过pm_acknowledge通知 RPU 。由于 FPD 内没有更多设备在使用或具有严格的延迟要求,因此 PMU 会关闭 FPD 的电源。
RPU 现在通过 PMU 释放 USB 设备。PMU 调用pm_release_node 并启动自己的挂起程序,将实时时钟 (RTC) 配置为其唤醒源。没有更多的电源管理活动,PMU 进入休眠 状态。发生唤醒事件时,PMU 知道需要唤醒哪些设备,并根据需要为电源域和电源岛处理正确的上电顺序。
结论
XEMI API 解决了异构多处理电源管理挑战,而无需在传统 OSPM 方法中进行许多必要的权衡。它允许软件供应商使用高效的实现自由构建针对其平台优化的底层电源管理基板。基板方法使设计人员能够回收传统实施方案遗留的功率。使用 XEMI API 的、以目标为中心的方法可以更轻松地完成需要大量跨系统协调的工作,例如关闭许多异构内核。在过去的 2 年里,Aggios 和 Xilinx 一直致力于使 XEMI 的愿景成为现实。随着 Xilinx 近推出的异构可编程处理 SoC,Zynq UltraScale+ MPSoC
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。