【已评审】新增资源协作接口与属性或Path用于Redfish显示DPU卡处理器FPGA固件版本号

背景

新适配DPU卡,需要新增资源协作接口与属性以支持Redfish接口显示DPU卡版本号,包含BMC/Bios/Soc CPLD/FPGA CPLD/FPGA共5个版本号信息;

关联ISSUE

整体方案

  1. BMC通过Smbus从DPU卡读取版本号信息并解析;
  2. 将读取的版本号信息赋值到资源协作接口属性;
  3. 通过Redfish按照客户诉求对外呈现版本号;

已有可继承属性分析:

DPU卡版本号类型 Interface Property Type
BMCVersion bmc.kepler.Systems.DPUCard.Manager FirmwareVersion String
BiosVersion bmc.kepler.Systems.DPUCard.System BIOSVersion String
SocCPLDVersion/FPGACPLDVersion bmc.kepler.Systems.DPUCard MultiLogicVersion Dictionary

历史评审记录:【已评审】新增资源协作接口,拓展DPU带外管理能力

需要新增定制DPUCard Path以及FPGAVersion固件版本号类型属性承载;

  • DPU资料参考
    DPU通用架构可分为以下几种:
  1. ASIC-Based DPU(专用集成电路路线): 使用针对网络、存储、安全功能定制化设计的专用芯片 ,这些功能以固定硬件逻辑的形式固化在硅片上;
  2. FPGA-Based DPU(现场可编程门阵列路线): 以大规模FPGA 作为数据处理的核心引擎,通常搭配一个轻量级的SOC或嵌入式CPU核用于控制管理;
  3. SOC-Based DPU(多核通用处理器路线): 依赖于高性能、多核的通用处理器 (通常是Arm架构)来通过软件实现所有加速功能,其核心思想是“通过强大的通用算力进行软件定义硬件加速 ”;
    当前适配DPU基于Intel Agilex FPGA架构, FPGA为一个功能强大、高度可定制、以数据流驱动、并行处理的专用硬件加速引擎,它与DPU内的SOC(处理器)协同工作,共同构成了一个异构计算单元。

评审点

新增资源协作接口属性用于承载DPU卡FPGAVersion固件版本号;

详细描述

新增资源协作接口属性用于承载DPU卡FPGAVersion固件版本号

  • 方案1
    Path:/bmc/{Custom}/Systems/${SystemId}/PCIeDevices/PCIeCards/DPUCards/${Id}
    Interfacebmc.kepler.Systems.DPUCard.Processor新增属性FPGAVersion
属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
FPGAVersion s true false DPU卡FPGA固件版本号 Read: ReadOnly false false

当前DPU卡Processor相关属性均在该接口下,有以下属性:

属性名称 属性描述
Architecture DPU的CPU架构
TotalCores DPU的CPU核数
IMUVersion IMU固件版本号
  • 方案2:新增资源协作Path用于承载DPU卡Processor信息,复用bmc.kepler.Systems.Processor接口固件版本属性
    Path:/bmc/{Custom}/Systems/${SystemId}/PCIeDevices/PCIeCards/DPUCards/${Id}/Processors/${ProcessorId}
    Interface: bmc.kepler.Systems.Processor
属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
FirmwareVersion(已有) s true false 固件版本 Read: ReadOnly false false
ProcessorType(已有) s true false 处理器类型 Read: ReadOnly CSR false false

方案优缺点对比:

方案1 方案2
优点:实现简单,仅新增一个属性实现
缺点:多FPGA时需要新增新的属性,当前有0个和1个FPGA的情况,暂无多个的情况
优点:方便后续扩展多个处理器的情况,且更符合DPU架构趋势
缺点:实现比新增属性复杂

评审结论

  1. 考虑DPU卡扩展情况,使用方案2实现:
    新增DPU卡子Path:/bmc/{Custom}/Systems/${SystemId}/PCIeDevices/PCIeCards/DPUCards/${Id}/Processors/${ProcessorId},复用Interface:bmc.kepler.Systems.Processor属性

遗留问题

在DMTF发布的Redfish SmartNIC白皮书中,关于Processor资源有如下描述:
1、对于FPGA-based SmartNIC,需要在NetworkAdapter资源增加Processors资源表示FPGA算力,并通过OffloadProcessors链接将网络功能(NetworkDeviceFunction)与具体 FPGA 算力绑定。重点体现 “哪部分算力用于哪个卸载功能” 的特性
2、对于SoC-based SmartNIC,具有CPU、内存、存储等完整部件和独立的OS,必须引入ComputerSystem资源,ComputerSystem资源本身包含Processors资源,通过ComputerSystem资源的定义来实现Processors资源即可。重点体现 “网络流量由独立系统处理” 的特性

对于本次评审的DPU卡来说,兼具FPGA-based和SoC-based两种模型的特性,有独立的处理单元CPU和OS,也具有FPGA。从未来演进角度考虑,建议将DPU的处理器资源设计为单独的Processor路径,跟随DPUCard路径体现上下级关系