智算底软视角下的 PCIe(1):PCIe 基础知识

   最近杂事有点多,抱歉公众号没有更新。不过这段时间也看到了新BMC芯片出来,一年前提到的“L公司”、“S公司”都发布了自己的芯片,最近上海好像还有个F公司也开始推出RV做BMC,有了解的可以私信讨论,谢谢!欢迎更多的大佬加入BMC行业。

   个人还是专注技术方面,最近学习了PCIe接口。记录下自学的内容,请各位专家指正:

   PCIe(Peripheral Component Interconnect Express)是一种计算机总线标准,用于连接计算机内部的各种硬件设备,如图形卡、扩展卡、存储设备等等。它是1992年Intel发布的PCI总线的一种进化形式,现在基本是服务器里使用最广泛的总线协议之一了。

  1. 早期奠基(2001 - 2003 年)

        2001 年 PCI协会PCI-SIG 召集英特尔、AMD 等厂商筹备 PCIe 标准,以解决 PCI 总线的带宽瓶颈问题。2003 年 PCIe 1.0 发布,采用串行点对点架构,摒弃传统共享总线模式,每通道速率达 2.5GT/s,搭配 8b/10b 编码,同时支持热插拔与灵活通道配置,开启了总线传输的新架构。

  2. 稳步迭代(2006 - 2014 年)

        2006 年 PCIe 2.0 推出,将速率提升至 5GT/s,带宽翻倍且保持向后兼容,优化了电源管理。2010 年 PCIe 3.0 实现关键突破,速率达 8GT/s,改用 128b/130b 编码,把带宽开销从 20% 降至 1.5%;2014 年的 3.1 版本进一步优化电源管理和性能,未改变核心传输能力。

  3. 高速普及(2017 - 2019 年)

        2017 年 PCIe 4.0 发布,速率翻倍至 16GT/s,适配高速 SSD 和显卡。因英特尔平台支持滞后,其直至 2021 年才进入主流应用。2019 年 PCIe 5.0 推出,速率达 32GT/s,新增均衡旁路模式,可满足数据中心 400G 以太网和 AI 计算的带宽需求。

  4. 技术跃迁(2022 - 2025 年)

       2022 年 PCIe 6.0 采用 PAM4 信号和 FLIT 编码,速率达 64GT/s,还加入前向纠错技术保障传输稳定。2025 年 6 月 PCIe 7.0 规范正式官宣,速率飙升至 128GT/s,满配 x16 链路双向总带宽接近 484GB/s,通过优化符号速率等,适配 AI、自动驾驶等极致带宽场景。

图片

   一个PCIe Fabric由点对点的Link组成,用于连接一组组件。下图展示了一个例子PCIe Fabric的拓扑结构。这个图展示了一个单一的PCIe Fabric实例,也称为层次结构,由一个根复杂器(Root Complex)、多个端点(I/O设备)、一个交换机和一个PCIe到PCI/PCI-X桥接器组成,它们通过PCIe Link相互连接。

图片

  • RC(Root Complex ,根复合体):系统的核心和管理器;PCIe 架构的核心枢纽,连接 CPU、内存与 PCIe 链路;负责将 CPU 的请求转换为 PCIe 事务,管理所有 PCIe 设备的配置空间,是 CPU 与外设通信的桥梁。

  • Switch (交换器):扩展连接的核心组件;扩展 PCIe 链路端口的设备,拥有上游端口(连接根联合体 / 上级设备)和多个下游端口(连接外设 / 下级设备),实现多设备的并行互联与数据包路由。

  • EP(Endpoint,端点设备):功能的最终实现者;如各类 PCIe 外设(如显卡、SSD、网卡等),是 PCIe 总线的数据收发终端,可发起 / 响应数据请求,完成特定功能(如数据存储、网络通信)。

  • Bridge (桥接器):与其它总线协议的转换器;实现 PCIe 总线与传统 PCI/PCI-X 总线的协议转换,让老旧的 PCI/PCI-X 设备能接入 PCIe 系统,保障兼容性。

    

      作为服务器中的关键芯片之一——BMC,肯定要包含PCIe接口。当前用途最多的是PCIe EP接口,主要是用于图形显示,这里可以简单把BMC当作一个小显卡理解,方便服务器不用再单独配置显卡芯片。主机端CPU通过PCIe接口提供OS的图形显示数据(所以这里需要OS驱动,否则无法实现高分辨率图形显示)。在BMC芯片内部,PCIe EP接口后面是Graphic模块,用于处理PCIe过来的视频数据。如果芯片内部进一步处理,就是KVM功能了,实现远程可视化运维。不过也不是所有的场景都需要图形显示,例如交换机、边缘服务器等,PCIe接口就省略了,就是中国台湾公司AST2x20之类的。

    除了显示功能,此BMC的PCIe EP还有其他功能(Function)——高速数据传输,如MCTP over PCIe等。简单说就是借助 PCIe 总线VDM(Vendor Defined Messages)传输 MCTP数据。因其速度远高于MCTP over I2C等,所以更多系统使用此功能。这样BMC能在带外独立访问各 PCIe 设备,收集故障信息、排查问题、升级固件等,不依赖主机的正常运行,提升服务器运维的稳定性和效率。

    还有个功能这里也提一下,就是H2B(Host-to-BMC)。H2B 是 BMC芯片内部的一个硬件事务处理引擎。这个功能非物理引脚,而是通过芯片内部的互连,让主机端可以通过 PCIe 空间访问BMC的内部寄存器或内存区域,将主机端与 BMC 的数据交换能力提升了一个数量级。之前因为安全起见,由BMC控制主机,而H2B实现了主机访问BMC。所以可与 MMBI等协议配合,通过定义状态标志位、互斥锁保护等机制,确保主机与 BMC交互时的有序性。并可在主机加载OS系统前锁定 H2B 的共享内存,仅在接收到主机交互请求时才开启内存访问,交互完成后重新锁定,避免共享内存中的数据被误操作或篡改,提升数据交互的安全性。

   前面都是说PCIe EP接口,在最近的BMC芯片上也逐渐加入了PCIe RC接口。不过我看到PCIe RC用到的场景还不多。能想到的这RC是与主机 CPU 无直接关联的带外管理接口,可构建独立于主机系统的 PCIe 管理拓扑。即便服务器主机系统故障或未启动,BMC 也能通过该 RC 接口对接各类 PCIe 板卡设备,如GPU等,不用借助主机 CPU 中转,实现对硬件的全天候独立管控,提升效率。所以BMC的PCIe RC接口将越来越广泛应用。

   个人观点,欢迎指正,谢谢!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐