Platform Environment Control Interface(一):认识PECI

前言

网上关于此协议的内容很少,自己又正好在学习,为了更深入地理解和掌握知识,发现之前忽略的细节或误解,进一步完善自己的技能,所以开始尝试将自己所学撰写为文章


一、PECI基本概念

PECI (Platform Environment Control Interface):平台环境控制接口,是Intel处理器与管理控制器(例如,基板管理控制器,BMC)之间的通信接口。PECI提供了服务,允许管理控制器通过访问各种寄存器来配置、监控和调试平台。它定义了一个专用的命令协议,其中管理控制器作为PECI的发起者(originator),而处理器作为PECI的响应者(responder)。
简而言之,PECI是一种通信机制,使得管理控制器能够与Intel处理器进行交互,以配置、监控和调试系统的硬件环境。

二、PECI总线介绍

在这里插入图片描述
PECI总线上的设备分为host和client。host一般为管理控制器,client一般为英特尔CPU。client的地址范围0x30~0x37,host的地址为0x01。
PECI通信,一般由host发出请求,client回复请求,client不会主动发送消息。PECI总线一般情况只有一个host,而client则为一个或者多个。PECI总线为一条单总线,所以PECI消息为一发一收,只有当host发送请求且得到回复后,才能发送下一个peci请求。

三、PECI协议

peci command

在这里插入图片描述
PECI有诸多功能:读取温度、功率、寄存器信息以及设置cpu功率等,每种功能都有对应的peci command实现。

Ping()

它用于枚举设备(即,检查系统中有哪些PECI设备)或者确定一个设备是否已被移除、关闭电源等。当向一个设备地址发送Ping()消息时,如果目标地址的设备能够响应,它将返回一个非零的“Write FCS”(Frame Check Sequence,帧校验序列)。

在这里插入图片描述

GetDIB()

GetDIB()用于返回reversion number和所支持的domains。reversion number指peci协议版本,版本越高支持的peci command越多,domains指SOC domains(在SOC设计中,Domain的概念经常用于描述不同的功能区域或模块,这些区域或模块在逻辑上或物理上被划分出来,以实现特定的功能或性能目标)
在这里插入图片描述
第一行为getdib请求帧,二、三行为gitdeb回复帧

GetTemp()

GetTemp()用于获取“die”的温度(die这里指处理器内部硅片),管理系统可以根据获取到的"die"温度来调节处理器的温度,比如通过风扇的转速。
在这里插入图片描述

RdPkgConfig()

RdPkgConfig()命令提供了对处理器内部的封装配置空间(Package Configuration Space, PCS)的读取访问权限。这个空间包含了各种与电源和热管理相关的功能设置和数据。
处理器通常支持的典型PCS读取服务可能包括访问温度数据(如前面提到的“die”温度)、能量状态、运行时间信息、DIMM(Dual Inline Memory Modules,双列直插式内存模块)的温度等。这些信息对于外部的热管理系统和电源管理系统来说是非常重要的,因为它们需要这些数据来做出适当的决策,如调整风扇速度、控制处理器的功耗等。
在这里插入图片描述

WrPkgConfig()

WrPkgConfig()命令提供了对处理器内部封装配置空间(Package Configuration Space, PCS)的写入访问权限。这个空间包含了各种与电源和热管理相关的功能和设置。
处理器通常支持的典型PCS写入服务可能包括电源限制(power limiting)、热平均常数编程(thermal averaging constant programming)等。电源限制允许管理员或系统根据需要对处理器的功耗进行限制,以防止过热或满足特定的能效要求。热平均常数编程则与处理器内部热传感器的工作方式有关,可以用于调整处理器如何对温度变化做出反应。
在这里插入图片描述

RdIAMSR()

RdIAMSR() PECI命令提供了对处理器中定义的特定于模型的寄存器(Model Specific Registers, MSRs)的读取访问权限。
在这里插入图片描述

RdPCIConfig()

RdPCIConfig()能够让用户读取处理器外部的PCI配置空间的信息。
在这里插入图片描述

RdPCIConfigLocal()

RdPCIConfigLocal()允许用户读取位于处理器内部的PCI配置空间。
一般内存信息会用RdPCIConfigLocal获取,因为内存并不是通过pcie bridge,而是通过Root Complex连接到CPU,最近几代CPU基本都将北桥集成到处理器内部,所以内存就相当于处理器内部PCI设备*(对于获取内存信息为何使用RdPCIConfigLocal(),我是这样理解的,如果不对还望指正)*。
在这里插入图片描述

WrPCIConfigLocal()

WrPCIConfigLocal()命令提供了对位于处理器内部的PCI配置空间的带外写访问
在这里插入图片描述

不同处理器支持的PECI command数量不一样,这里并未把peci command完全列出

  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值