PECI技术介绍
更新时间: 2026/04/24
在Gitcode上查看源码

基本概念

定义

PECI(Platform Environment Control Interface,即平台环境控制接口)是 Intel 定义并拥有的专有处理器侧通信接口标准,是 Intel 处理器与平台管理组件之间的核心通信通道,广泛应用于消费级 PC 到企业级服务器的 Intel 平台中,是 Intel 平台散热、功耗、性能与硬件监控管理的关键基础设施。

物理架构

系统架构图

在服务器平台中,通常 CPU 为 PECI 从机(Client),PCH 为 PECI 主机(Host)。在客户端平台中,CPU 为 PECI 从机,EC/BMC 为 PECI 主机。

PCH 在 PECI 架构中的角色

PCH(Platform Controller Hub,平台控制器 Hub)是 Intel 芯片组的核心组件,在 PECI 通信中扮演主机(Host)的角色:

  • PECI 主机:在服务器平台中,PCH 作为 PECI 总线的主机(Host),负责发起和管理 PECI 通信
  • 协议转发:PCH 接收来自 BMC 的 PECI 请求,并转发给对应的 CPU 处理器
  • 多路协调:在双路/四路服务器中,PCH 负责协调多个 CPU 的 PECI 通信

PCH 与 CPU 的连接关系

说明:

  • PCH 与各 CPU 之间有独立的 PECI 通道
  • 每个 CPU 有唯一的 PECI 地址(0x30-0x33)
  • PCH 支持多路 CPU 并行管理

PECI over eSPI 架构

数据流向

总线拓扑

采用主从架构的单线型(Single-Wire)双向总线,无需额外时钟/控制线,硬件布线极简。总线主机(Host)通常为服务器 BMC(基板管理控制器)、嵌入式控制器 EC、Super IO 芯片;从机(Client)为 Intel 处理器,支持一主多从拓扑,可原生支持多路服务器的多 CPU 并行管理。

寻址机制

每个处理器插槽对应唯一固定的 PECI 地址,与处理器物理插槽 ID 强绑定,单颗处理器的移除/故障不会影响总线其他设备的通信,天然适配多路服务器的高可用设计。

多路服务器 PECI 拓扑

对于 PECI Wire,每个处理器包将使用定义范围内的唯一固定地址,并且该地址应与处理器插槽 ID 有固定关系——如果移除其中一个处理器,不影响剩余处理器的地址。

传输特性

支持 2Kbps~2Mbps 可变传输速率,通过 CRC 循环冗余校验机制保障数据传输的完整性与正确性,适配不同场景下的实时性与可靠性需求。

PECI over eSPI

现代 Intel 平台原生支持 PECI over eSPI,可通过 eSPI 总线承载 PECI 协议,进一步简化平台硬件设计,提升信号完整性。当 PECI Over eSPI 启用时,eSPI 设备(如 EC)可以通过 eSPI 控制器访问处理器 PECI 接口,而不是物理 PECI 引脚。此支持可以提高 PECI 响应能力,并减少 PECI 引脚。

核心功能

PECI 的核心价值是为外部管理组件提供处理器内部状态的访问通道,以及对处理器关键特性的实时配置能力。

温度管理

这是 PECI 最基础也最核心的功能。它可直接读取处理器内置数字温度传感器(DTS)的核心/封装级温度数据,相比传统外置热敏电阻方案精度更高、延迟更低,是服务器风扇智能调速、过热保护的核心数据来源。

处理器包含一个数字温度传感器(DTS),用于报告作为热控制电路(TCC)激活温度偏移量的相对芯片温度。整个芯片上分布的温度传感器作为模数转换器在工厂进行校准。PECI 提供了一个接口,允许外部设备读取处理器温度、执行处理器可管理性功能,以及管理处理器接口调优和诊断。

功耗与性能控制

支持对处理器 Turbo 睿频、cTDP(可配置热设计功耗)、功率封顶、内存节流(Memory Throttling)等关键机制的实时监控与配置,实现服务器性能与功耗的精细化动态平衡。

寄存器访问

支持通过 PECI 总线读写处理器 MSR(模型专用寄存器)、PCIe 配置空间、片内 PCH 寄存器等,无需操作系统介入,即可实现处理器硬件状态的深度监控、调试与故障诊断,是服务器带外管理的核心能力。

平台健康监测

可获取处理器核心电压、电源状态、异常事件记录等关键硬件信息,为服务器的故障预警、硬件运维提供底层数据支撑。

PECI命令集

命令格式

PECI 定义了专用的命令协议,管理控制器作为 PECI 发起者(Originator),处理器作为 PECI 响应者(Responder)。

消息格式

PECI 消息包含:

  • 地址域:目标处理器 PECI 地址
  • 数据长度:传输数据字节数
  • 命令码:指定操作的 opcode
  • 数据域:命令相关参数
  • CRC:循环冗余校验

命令码定义

命令码命令名称功能描述
0x00Ping处理器在线检测
0x01GetTemp0读取温度(CPU 0)
0x02GetTemp1读取温度(CPU 1)
0x04GetDIB获取设备信息
0x61RdPCIConfig0读取 PCIe 配置空间
0x62RdPCIConfig1读取 PCIe 配置空间
0x65WrPCIConfig0写入 PCIe 配置空间
0x66WrPCIConfig1写入 PCIe 配置空间
0xA1RdPkgConfig0读取 PCS 寄存器
0xA2RdPkgConfig1读取 PCS 寄存器
0xA5WrPkgConfig0写入 PCS 寄存器
0xA6WrPkgConfig1写入 PCS 寄存器
0xB1RdIAMSR0读取 IA 模块 MSR
0xB2RdIAMSR1读取 IA 模块 MSR
0xB5WrIAMSR0写入 IA 模块 MSR
0xB6WrIAMSR1写入 IA 模块 MSR
0xE1RdPCIConfigLocal0读取本地 PCIe 配置
0xE2RdPCIConfigLocal1读取本地 PCIe 配置
0xE5WrPCIConfigLocal0写入本地 PCIe 配置
0xE6WrPCIConfigLocal1写入本地 PCIe 配置
0xF7GetDIB获取设备信息

GetTemp 命令详解

命令格式

写入长度: 1 字节
读取长度: 2 字节
命令码: 0x01 (GetTemp0) 或 0x02 (GetTemp1)

响应格式

字节定义
MSB温度数据高字节 / 错误码 (0x80 表示错误)
LSB温度数据低字节 / 错误码细分

错误码细分

错误码说明
0x00通用错误
0x01预留
0x02温度太低
0x03温度太高

温度值表示

PECI 报告的温度是一个负值,表示当前温度与热节流点(TCC 激活温度)的差值,而非绝对温度。

温度转换流程

例如:处理器最高温度为 85°C,当前温度为 35°C,则 PECI 报告的温度值为 -50°C。

计算公式:

绝对温度(°C) = TCC激活温度 - (PECI报告值 / 64)

其中 PECI 报告值除以 64 得到摄氏度整数值,余数部分乘以 100 再除以 64 得到小数部分(单位:0.01°C)。

Linux内核API

c
int peci_temp_read(struct peci_device *device, s16 *temp_raw)
// 使用 GetTemp PECI 命令

int peci_pcs_read(struct peci_device *device, u8 index, u16 param, u32 *data)
// 使用 RdPkgConfig PECI 命令

int peci_pci_local_read(struct peci_device *device, u8 bus, u8 dev, u8 func, u16 reg, u32 *data)
// 使用 RdPCIConfigLocal PECI 命令

int peci_ep_pci_local_read(struct peci_device *device, u8 seg, u8 bus, u8 dev, u8 func, u16 reg, u32 *data)
// 使用 RdEndpointConfig PECI 命令

int peci_mmio_read(struct peci_device *device, u8 bar, u8 seg, u8 bus, u8 dev, u8 func, u64 address, u32 *data)
// 使用 RdEndpointConfig PECI 命令

版本演进

核心版本迭代

PECI 规范随 Intel 处理器架构持续演进:

版本核心能力典型应用场景
PECI 1.1基础的处理器在线检测(Ping)、温度读取(GetTemp)、设备信息获取早期酷睿平台、入门级服务器的基础温控
PECI 2.0新增 MSR 寄存器读写、扩展功耗管理指令主流至强可扩展平台的基础带外管理
PECI 3.0新增 PCIe 配置空间访问、多路 CPU 协同管理、安全校验增强现代双路/多路服务器的全功能处理器带外管理

服务器应用场景

在 Intel 架构服务器中,PECI 是 BMC 与 CPU 通信的核心"专线":

服务器 BMC 通过 PECI 总线,在主机操作系统未启动、甚至宕机的情况下,持续获取 CPU 温度、功耗、运行状态数据,实现无感知的智能风扇调速、功耗封顶、过热保护,保障服务器 7×24 小时稳定运行。

结合 IPMI/Redfish 协议,将 PECI 获取的处理器硬件数据向上层运维平台暴露,实现服务器的远程监控、故障诊断与性能调优。

支持通过 PECI 完成处理器固件配置、微码更新、异常事件日志采集等高级运维操作,是 Intel 服务器平台带外管理体系的核心组成部分。

补充说明

规范文档说明

Intel PECI 规范不是作为独立文档发布的,而是作为给定 Intel CPU 的外部设计规范(EDS)的一部分。外部设计规范通常不公开可用,仅向 Intel 授权的合作厂商开放。

主流 Linux 内核已原生集成 PECI 子系统与驱动,提供了标准的设备访问接口与用户态工具链,可快速实现基于 PECI 的硬件监控功能开发。

参考资料

Intel 官方文档

Linux 内核文档

其他参考资料