news 2026/4/23 10:58:18

【DeepSeek】ARM PSCI (Power State Coordination Interface) 服务介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【DeepSeek】ARM PSCI (Power State Coordination Interface) 服务介绍

ARM PSCI (Power State Coordination Interface) 服务介绍

1. 概述

PSCI (Power State Coordination Interface)是 ARM 定义的一种标准接口,用于操作系统(OS)与底层固件之间进行电源管理相关的通信。

在 ARMv8-A 架构(AArch64)引入之前,Linux 内核等操作系统需要直接操作 SoC 厂商特定的硬件寄存器来管理 CPU 的电源状态(如启动、关闭、休眠)。这导致内核代码中充斥着大量的板级私有代码,难以维护。

PSCI 的出现旨在解决这一问题,它将电源管理的具体实现下沉到更底层的固件(如 ARM Trusted Firmware, ATF)中,内核只需通过统一的接口(SMCC/HVC)调用即可。

2. 核心目标

PSCI 的主要设计目标包括:

  • 解耦:将操作系统的电源管理逻辑与底层硬件实现分离。OS 内核不再需要关心具体 SoC 的电源控制寄存器细节。
  • 标准化:提供统一的标准 API,使得同一份内核镜像可以在不同厂商的 ARM 芯片上运行,只要固件实现了 PSCI 标准。
  • 安全性:电源管理操作通常涉及关键系统资源,PSCI 调用通常发生在 EL3(最高特权级)或 EL2(Hypervisor 模式),确保系统状态的安全性。

3. 架构与调用机制

PSCI 通常作为ARM SMC (Secure Monitor Call)调用规范的一部分实现。

调用路径

  1. OS 内核 (EL0/EL1):发起电源管理请求(例如:关闭 CPU)。
  2. SMC/HVC 指令:内核执行smchvc指令,CPU 陷入更高特权级。
  3. 运行时固件 (EL3/EL2)
    • EL3 (Secure Monitor):如果是裸机或标准安全固件场景,请求被路由到 ARM Trusted Firmware (ATF)。ATF 中的 PSCI 模块处理该请求,操作硬件。
    • EL2 (Hypervisor):在虚拟化场景下,Hypervisor 可以拦截 PSCI 调用并进行虚拟化处理。
  4. 硬件操作:固件操作具体的电源控制逻辑(如断电、复位、状态保存)。

4. 主要功能接口

PSCI 定义了一系列功能 ID (Function IDs),主要涵盖以下几类操作:

4.1 CPU 电源管理

这是 PSCI 最核心的功能,用于多核启动和热插拔:

  • PSCI_VERSION:查询固件支持的 PSCI 版本(如 0.1, 0.2, 1.0, 1.1)。
  • CPU_ON启动一个处于关闭状态的 CPU 核心。这是 SMP(对称多处理)系统启动从核的关键接口。内核传递目标 CPU 的 MPIDR 和启动地址。
  • CPU_OFF:关闭当前 CPU 核心。通常用于 CPU 热插拔或系统关机流程。
  • CPU_SUSPEND:将当前 CPU 挂起(进入低功耗状态,如 Retention 或 Standby)。支持“浅睡眠”到“深睡眠”不同级别的状态。
  • CPU_RESET:复位指定的 CPU 核心。

4.2 系统级电源管理

  • SYSTEM_OFF:关闭整个 SoC 或系统。
  • SYSTEM_RESET:复位整个系统。
  • SYSTEM_SUSPEND:将整个系统挂起到内存,类似于 ACPI 的 S3 状态。

4.3 辅助功能

  • AFFINITY_INFO:查询指定 CPU 或集群的电源状态(是 ON, OFF 还是 ON_PENDING)。
  • PSCI_FEATURES:查询特定 PSCI 功能是否支持及其属性(PSCI 1.0 引入)。
  • SET_SUSPEND_MODE:设置挂起模式(仅限 PSCI 1.0+)。

5. PSCI 版本演进

  • PSCI v0.1:早期版本,主要解决 SMP 启动问题,功能 ID 定义不够规范。
  • PSCI v0.2:引入了标准的psci_smc_handler,统一了功能 ID 分配,增加了SYSTEM_SUSPEND等。
  • PSCI v1.0:增加了PSCI_FEATURES查询、MEM_PROTECT(内存保护)等特性,完善了状态 ID 的定义。
  • PSCI v1.1:增加了SYSTEM_RESET2(支持不同类型的系统复位)等扩展功能。

6. 在 Linux 内核中的体现

在 Linux 内核设备树中,我们经常看到类似以下的节点,这表明内核将通过 PSCI 进行电源管理:

psci { compatible = "arm,psci-0.2"; /* 或 "arm,psci-1.0" */ method = "smc"; /* 调用方式为 smc,虚拟化环境下可能为 hvc */ cpu_suspend = <0x84000001>; cpu_on = <0x84000003>; cpu_off = <0x84000002>; };

内核启动时,psci_dt_init会解析该节点,注册smp_operations(如psci_smp_ops),从而将cpu_up等内核操作映射到 PSCI 的CPU_ON调用。

7. 总结

ARM PSCI 是现代 ARM SoC 电源管理的基石。它通过定义标准的 SMC 接口,成功地将操作系统的电源管理策略与底层硬件的具体实现分离开来。这不仅简化了 Linux 内核的维护工作,也促进了 ARM 生态中固件(如 ATF)与操作系统之间的协同标准化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:44:17

Phi-3.5-mini-instruct多场景落地:法律从业者合同要点摘要工具

Phi-3.5-mini-instruct多场景落地&#xff1a;法律从业者合同要点摘要工具 1. 引言&#xff1a;法律从业者的痛点与AI解决方案 法律从业者每天需要处理大量合同文件&#xff0c;从冗长的商业协议到复杂的法律条款。传统的人工阅读和摘要方式不仅耗时耗力&#xff0c;还容易遗…

作者头像 李华