PECI接口

低速信号设计之 PECI 篇 PECI(平台环境控制接口)是Intel提出的单线型双向总线技术,主要用于处理器与系统监控设备间的通信。其采用强上拉和弱下拉的电气设计,支持2Kbps~2Mbps的传输速率,并通过CRC校验确保数据可靠性。PECI广泛应用于计算机系统的CPU温度监测和功耗控制,以及服务器领域的数据中心温度管理和健康状态监测。在布局布线时需注意信号完整性、电源完整性及遵循Intel规范。典型应用案例包括服务器温度管理系统和工作站节能优化,展现了PECI在提升系统稳定性和降低能耗方面的重要价值。 阅读详情
AI摘要

本文介绍了PECI(Platform Environment Control Interface)总线及其在CPU温度监控中的应用。PECI是一种一线总线协议,主要用于监测CPU及芯片组的温度。文章详细解释了Intel处理器的温度控制机制,包括TM1和TM2机制如何工作以防止CPU过热,并介绍了通过PECI接口读取CPU温度的具体方法。

PECI是用于监测CPU及芯片组温度的一线总线(one-wirebus),全称是Platform Environment Control Interface。它最主要的应用是监测CPU温度,最新版本的PECI接口还包括一些其他的功能。

1 Intel Processor的温控机制

在CPU中,通常每个CPU核心都有一个数字温度传感器。在PC平台下,处理器可以通过MSR(Mode specific registers)获得处理器自身的温度、调节风扇转速度,从而实现温度控制。在服务器平台下,温度控制通常是由BMC来做的,业务CPU本身没有办法控制机框的风扇转速度。BMC直接或间接通过PECI总线获取到CPU核心温度,再根据所有温度值调整风扇转速。

MSR方式读取CPU温度读取到的是即时温度,PECI方式读取到的是256ms时间窗内的平均温度。MSR方式是需要CPU处理C0状态才能读取。PECI方式在C0~C6均可以使用。

 

图表1 PECI接中的连接方式

Intel Pentium M 开始在处理器中引入DTS(数字温度传感器)。温度传感器通常是每个CPU核心一个。


图表2 Intel温控组件

1.1 TM1

为了保护CPU不会在过热时被烧坏,从Pentium4开始,处理器中又加入了一个温度监示器Thermal Monitor 1,简称TM1。TM1会监示数字温度传感器的读数,当读数高于阈值Tjmax时,TM1会调节处理器时钟的占空比,以降低功耗,降低温度。这里所谓的调节时钟占空比与传统意义上的时钟占空比不同,这里调节的是时钟信号的开闭时间比例,比如说,它会在某一段时间内,37.5%的时间打开CPU时钟,让CPU工作,另62.5%的时间关闭CPU时钟,让CPU停止工作以降低功耗和温度。


Figure 1 TM1调整CPU时钟占空比

1.2 TM2

TM2是Pentium M时引入的,它提供了另一种降低CPU温度的办法。在CPU某个核心的温度超过Tjmax时,它会尝试降低时钟频率和供电电压来降低功耗和温度。TM1和TM2是两个单独的机制,或以分别启用和禁用。Intel推荐两个机制同时使用。它们的启用和禁用是通过BIOS设置IA32_MISC_ENABLE这个模式寄存器的第3、13位来实现的。BIOS打开这两个机制后,OS和用户程序不可关闭。

 

1.3 温度阈值

Tjmax是我们所知的第一个阈值,当CPU上任意一个核心的温度达到这个阈值时,CPU会产生一个PROCHOT#信号(processor hot)。该信号可触发TM1和TM2。处理器时会通过调节时钟占空比、降低时钟频率和供电电压的方式来降低功耗和温度。产生PROCHOT#信号的同时,温度监示器还会产生一个中断给CPU,其中断向量号通过LAPIC和LVT来设置。模式寄存器IA32_THERM_INTERRUPT有两个位用于高温中断使能(温度超过Tjmax时产生中断)和低温中断使能(温度回到低于Tjmax的范围时产生中断)。

PROCHOT#通过CPU的一个引脚拉出,并且可以连接在外设上,由外设来发生这个信号。比如说一个系统中有另一个设备的温度超过阈值,它可以拉低使能这个信号,从而使CPU也一起降温,从而降低机箱内的温度,制造一个更好的散热环境。

如果TM1和TM2启动后温度没能降低下来,并且继续升高到可能造成CPU物理损坏的温度时,核心会触发THERMTRIP#信号,并且关闭CPU电源。

CPU硬件实现的温度控制机制是用于CPU自我保存的温控机制,当这些机制不足以降温时,CPU会断电,从而造成系统突然掉电,造成数据损失。因而一般要求BMC在要以一定的周期读取CPU核心温度,根据温度调整风扇转速,并且当温度超过Tjmax-10时,让风扇全速转动。

2 相关MSR

2.1  IA32_THERM_INTERRUPT

IA32_THERM_INTERRUPT寄存的地址为0x19B。BIOS通过IA32_THERM_INTERRUPT模式寄存器使能温度相关的中断,其各字段定义如下:

表格 1 IA32_THERM_INTERRUPT 0x19B

位

描述

0

High temperature interrupt enable

1

Low temperature interrupt enable

2

PROCHOT# interrupt enable

3

FORCEPR# interrupt enable

4

Critical Temperature interrupt enable

7:5

reserved

14:8

Threshold 1 value

15

Threshold 1 int enable

22:16

Threshold 2 value

23

Threshold 2 int enable

63:24

reserved

 

在一个实际系统读到的该寄存器的值为:

sudo modprobe msr

sudo rdmsr –p 0 0x19B

3

 

2.2  IA32_TEMPERATURE_TARGET

IA32_TEMPERATURE_TARGET模式寄存器的地址为0x1A2。该模式寄存器是只读的。

表格 2 IA32_TEMPERATURE_TARGET模式寄存器

位

描述

23:16

温度目标,单为是摄氏度,当达到这个温度时触发TM1和TM2,产生PROCHOT#信号。

在一个实际系统读到的该寄存器的值为:

sudo modprobe msr

sudo rdmsr –p 0 0x1A2

0x5B08

0x5B=91摄氏度

 

嵌入汇编方式读取MSR:

__asm____volatile__(“movl $0x1A2, %%ecx\n\trdmsr\n\t”)

3 PECI接口

BMC获取CPU核心温度有两种途径:(1)通过PECI总线直接从CPU上获取温度数据,(2)通过IPMI协议从南桥上的ME上获取CPU核心温度。在途径(2)的情况下,ME需要通过PECI接口从CPU上获取温度。由于PECI的一线总线是intel的私有总线协议,很多BMC厂商并没有办法集成支持PECI接口协议的硬件,因而途径(2)是获取CPU核心温度的主流途径。

3.1 PECI规范

PECI是一个私有的协议,不得到Intel授权无从得知协议的细节。PECI规范到现在有三个主要版本:1.1、2.0和3.0。PECI 1.1支持最简单的温度监示,PECI2.0则支持更多的如读取MSR等特性,PECI 3.0进一步支持PCIe总线配置空间的读取。

表格 3 PECI 1.1和2.0比较

版本

1.1

2.0

特性

温度监示

Ping()

GetTemp()

GetDib()

温度监示

Ping()

GetTemp()

GetDib()

 

访问CPU内存

BIST

Memory throttling相关

下图是PECI 3.0支持的命令列表:

表格 4 PECI 3.0支持的命令列表


现代服务器系统中,BMC通常不直接使用PECI接口,而是通过南桥上的ManagementEngine来间接使用PECI接口。Management Engine是南桥上的一个嵌入式微控制器,它可以通过南桥上的PECI主控器访问CPU上的PECI从设备。同时,ME还实现了一些IPMI命令,可以让BMC通过SMLink间接使用这个PECI主控制器。这样的系统架构如下图所

示:

图表 5 南桥做PECI Proxy

 

所有的IPMI命令可以参考《IntelIntelligent Power Node Manager 2.0 External Interface Specification》的2.9节: IPMI OEMPECI Proxy Commands。



转载:dean_go博客 ,

BMC开发实战:PECI与APML在服务器CPU监控中的架构设计与性能对比 本文深入探讨了BMC在服务器CPU监控中的关键作用,重点分析了Intel PECI与AMD APML两种接口的架构设计与性能对比。通过实际案例和技术细节,展示了如何在不同CPU平台上实现高效稳定的监控方案,包括PECI的重试机制设计和APML的高性能实现,为服务器可靠性提供了技术保障。 阅读详情

相关推荐

PCIE接口详解及应用模式

PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。 一、PCI-E x1/x4/x8/x16插槽模式 PCI-E有 x1/x4/x8/x16等多种插槽模式,那么这些有什么区别呢? 1、PCI-E x16插槽全长89mm,有164根针脚,靠主板外侧端有一卡口,将16x分为前后两组,较短的插槽有22根针脚,主要用

想你所想,做你所做 9万+

PCIe扫盲,pcie扫盲系列博文

PCIe总线基础知识扫盲,包括物理层结构,中断机制等知识

Platform Environment Control Interface(一):认识PECI

网上关于此协议的内容很少,自己又正好在学习,为了更深入地理解和掌握知识,发现之前忽略的细节或误解,进一步完善自己的技能,所以开始尝试将自己所学撰写为文章PECI总线上的设备分为host和client。host一般为管理控制器,client一般为英特尔CPU。client的地址范围0x30~0x37,host的地址为0x01。PECI通信,一般由host发出请求,client回复请求,client不会主动发送消息。PECI总线一般情况只有一个host,而client则为一个或者多个。

weixin_55284001的博客 4497

深度解析PECI:平台环境控制接口硬件架构

深度解析PECI:平台环境控制接口硬件架构

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 2445

linux下peci转usb驱动,底软之PECI总线协议

大家好,我是一个BMC工程师、BIOS工程师和Linux驱动工程师,我的文章主中除了聊聊BMC、BIOS和操作系统相关的东西之外,也会涉及一些跟DOS玩耍的有趣经历,请大家多多支持。简介One-wire bus interface, self-clocked, Host-client architecture, negotiable data rate ranging from 2kbps to ...

weixin_39622905的博客 1430

BMC开发中的接口抽象艺术:如何用统一API驾驭PECI与APML的异构性

本文探讨了BMC开发中如何通过统一API抽象层处理Intel PECI与AMD APML的异构接口问题。从协议特性分析到工程实现,提供了跨平台接口设计的核心方法论,包括接口契约定义、平台适配实现和运行时动态加载等关键技术,为复杂硬件环境下的统一监控提供可落地的解决方案。

egg99的博客 746

《UEFI内核导读》Platform Environment Control Interface(PECI)简介

固件C字营·版权所有 敬请关注微信公众号:“固件C字营” PECI是Intel提出,主要用于intel处理器温度监控,功耗控制及状态监测,采用主/从架构的1-wire bus双向总线。 系统架构如下图,其中Host一般是EC或BMC或其他的系统控制器,Client一般是intel CPU。在现在的多核及多处理器架构的...

业余电子爱好者的日常 7905

从硬件到协议栈:深度拆解BMC与CPU温度监控的底层通信机制

本文深入解析BMC与CPU温度监控的底层通信机制,涵盖Intel PECI和AMD APML两大技术路线的硬件接口、协议架构及内核驱动实现。通过详细的技术对比和实战案例,揭示温度监控系统的设计哲学与工程实践,帮助开发者优化服务器硬件可靠性。

vodka的博客 763

【免费下载】 深入解析PECI协议:Intel芯片通信与控制的必备指南

深入解析PECI协议:Intel芯片通信与控制的必备指南 【下载地址】PECI协议文档下载分享 PECI协议文档下载本仓库提供了一个名为 `PECI_313355.pdf` 的资源文件下载 项目地址: https://gitcod...

gitblog_06671的博客 961

Intel平台openUBMC移植:RAS Offload与PECI/eSPI/SMBus适配实践

服务器带外管理是保障数据中心可靠性的关键环节,传统RAS(可靠性、可用性、可服务性)依赖主机BIOS/OS,一旦宕机则诊断链路中断。BMC作为带外控制器,通过PECI、eSPI、SMBus等接口可直接访问CPU内部寄存器,实现RAS Offload——将故障采集、解析、上报从主机侧卸载至BMC。基于openUBMC在Intel至强平台上的移植实践,解析PECI读取内存错误计数、eSPI通道配置、SMBus访问DIMM SPD等关键技术路径,帮助运维在OS不可用时仍能定位内存CE/UE、PCIe链路故障。本文

weixin_29175469的博客 144

OpenBMC全栈开发实战:从硬件接口到系统管理

服务器远程管理依赖BMC这一独立于CPU的管理大脑,即使主机宕机也能完成开机、监控与维护。传统商用固件黑盒化严重,定制成本高。OpenBMC基于Linux和Yocto构建,将D-Bus服务、RESTful接口等现代基础设施引入固件层,实现全栈透明可编程。它通过IPMI兼容和原生Redfish接口,让云平台与运维工具能标准化对接。在硬件层面,OpenBMC通过I2C、GPIO、PECI等总线感知主板状态;在系统层面,电源状态机、传感器阈值、日志与固件升级均有对应服务支撑。本文从搭建构建环境开始,深入硬件接口打

cqwmy840702的博客 307

服务器BMC开发视角:解析CPU管理的两大核心接口PECI与APML

服务器BMC开发视角:解析CPU管理的两大核心接口PECI与APML

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 1367

OpenBMC ACD移植到AMI BIOS的核心挑战与实战路径

ACD(高级控制驱动)是服务器固件中实现CPU温度、功耗等关键参数采集的核心模块,其本质是硬件感知能力在不同执行环境下的抽象封装。在Linux用户态(如OpenBMC),ACD依托内核PECI驱动与DBus通信协议构建服务化模型;而在UEFI固件层(如AMI BIOS),它必须运行于无OS、无调度、无标准库的裸金属环境,依赖PECI寄存器直控与SMM/PEI/DXE阶段协议协同。这一迁移不是代码搬运,而是跨执行上下文的系统重构:涉及PECI物理层初始化差异、DBus到HII/IPMI的接口范式转换、UEFI

weixin_29189003的博客 351

BMC通过PECI接口获取CPU温度实现方法

本文转载于网络,侵权删。 PECI是用于监测CPU及芯片组温度的一线总线(one-wirebus),全称是Platform Environment Control Interface。它最主要的应用是监测CPU温度,最新版本的PECI接口还包括一些其他的功能。 1 Intel Processor的温控机制 在CPU中,通常每个CPU核心都有一个数字温度传感器。在PC平台下,处理器可以通过MS...

masterbee的博客 1万+

【bmc14】crashdump

如下mceer波形:低触发后16个bclk(150ns)后会拉高,bmc只监控绿线gpio低电平触发中断:0-1。如下ierr波形:低触发后一直是低(中间有一次拉低,所以打印出mceer和ierr),低电平触发:0-1-0。如下是在host-error-monitor代码里申请了这些gpio才看到占用,不写在dts里。如下注错ierr:用的peci-util,参考【bmc7】。

持续更新ing... 783

《UEFI内核导读》 Platform Environment Control Interface(PECI)简介.pdf

Platform Environment Control Interface简介 PECI是Intel提出,主要用于intel处理器温度监控,功耗控制及状态监测,采用主/从架构的1-wire BUS双向总线。 系统架构如下图,其中Host一般是EC或BMC或其他的系统控制器,Client一般是intel CPU。在现在的多核及多处理器架构的系统当中,每一个CPU核心或SOC内部的IP核(如DRAM)或多处理器中的每一个处理器都可能是一个Client。PECI支持一主多从架构,也就是说一个PECI控制器可以通过不同的Client地址采用分时共享总线的形式来同时控制多个Client,intel普通消费级处理器默认地址一般是30H~33H

记录一些总线pin脚

就是serial GPIO, 用于硬盘点灯。普通的GPIO叫 parallel GPIO。KCS是ipmi spec定义的LPC总线协议。其他命令,请参考PECI spec规范。PECI只有2根pin脚。

shaohui973的专栏 46

PECI 主机控制器 数据手册.pdf

特性 • PECI 3.0 主机控制器 • 执行 PECI 规范的物理层和数据链路层功能 • 支持从 500 kbps 到 2 Mbps(最大)的 PECI 比特率 • 监视读写长度并在正确时间返回 FCS • 监控总线状态 • 序列化 8 位输出数据 • 将输入数据反序列化为 8 位数据包 • 可编程比特率选择,最大比特率取决于具体实现 • 支持所有 PECI 3.0 命令

上一篇: 机械键盘HID report script
下一篇: Keil MDK 设置生成 bin文件
obins_Iee
博客等级 码龄15年 217粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值