2. 数据中心交换芯片架构基础

Broadcom 数据中心交换芯片(如 Trident、Tomahawk、Jericho 系列)之所以能支撑 25G/100G/400G 乃至 800G 的高密度端口,核心在于其内部高度并行的流水线架构。理解这套架构,是后续做平台选型、缓存调优、可编程卸载和性能评估的基础。本节从流水线、转发模型、缓存机制、可编程性(OF-DPA 与 P4)以及关键性能指标五个维度展开。

一、流水线架构:从入端口到出端口的固定级数处理

Broadcom 芯片的转发路径是一条多级流水线(Pipeline)。以典型的 Trident 系列为例,报文从入端口进入后,依次经过解析器(Parser)、入站处理(Ingress Pipeline)、流量管理器(Traffic Manager, TM)、出站处理(Egress Pipeline)和修改器(Editor),最后从出端口发出。每一级流水线由若干“Stage”组成,每个 Stage 内部包含多个并行的匹配-动作单元(Match-Action Unit)。

解析器负责把报文的头部字段(以太网、VLAN、IPv4/IPv6、TCP/UDP、MPLS、VXLAN 等)提取成内部统一的键值(Key)。入站流水线根据这些 Key 做查表、ACL、路由、隧道解封装等决策,并生成一个内部转发描述符(Forwarding Descriptor)。流量管理器负责队列调度、缓存分配、拥塞管理(如 WRED、PFC)。出站流水线再做一次策略检查与封装,最后由 Editor 修改报文头部并发出。

关键点在于:流水线的级数是固定的,但每一级可执行的动作由表项和可编程逻辑决定。这意味着芯片的转发行为不是“软件逐包处理”,而是“硬件按级并行匹配”,因此能做到线速转发。

Broadcom 交换芯片流水线架构(示意) 入端口 25G/100G Parser 解析头部 生成 Key Ingress Pipeline Stage 1..N L2/L3 查表 ACL / 隧道解封装 生成转发描述符 Traffic Manager 队列调度 缓存分配 WRED / PFC Egress Pipeline 出站策略 封装 / 重写 Editor 修改头部 出端口 25G/100G 固定级数流水线 + 每级并行 Match-Action:线速转发的基础 可编程性体现在表项与动作逻辑,而非逐包软件处理

二、转发模型:Match-Action 与表驱动

Broadcom 芯片的转发模型本质上是“表驱动 + 匹配-动作”。每个流水线 Stage 包含若干张表(Table),每张表有匹配字段(Key)和对应的动作(Action)。报文进入 Stage 后,硬件并行查找所有表,命中后执行动作,可能修改报文、更新计数器、设置下一跳或跳转到其他表。

这种模型与 OpenFlow 的流表非常相似。实际上,OF-DPA(OpenFlow Data Plane Abstraction)就是 Broadcom 为 OpenFlow 提供的硬件抽象层,它把芯片内部的表资源映射成 OpenFlow 的流表、组表和 Meter 表。OF-DPA 定义了多个流水线阶段(Ingress Port、VLAN、Termination MAC、Unicast Routing、Multicast Routing、ACL、Egress 等),每个阶段有固定的表 ID 和匹配字段。控制器通过 OpenFlow 协议下发流表,OF-DPA 负责翻译成芯片表项。

对于更灵活的场景,Broadcom 支持 P4 可编程流水线(如 Trident 4、Tomahawk 4 之后的版本)。P4 允许用户自定义解析器、匹配字段和动作,编译后生成芯片配置。相比 OF-DPA 的固定表结构,P4 提供了更大的灵活性,但也会消耗更多的表资源(TCAM/SRAM)。

三、缓存机制:共享缓存与动态阈值

数据中心交换芯片普遍采用共享缓存(Shared Buffer)架构。所有端口共享一块片上 SRAM,通常为几十 MB 到上百 MB。缓存被划分为多个 Cell(如 256 字节或 512 字节),按队列进行管理。每个队列有一个动态阈值(Dynamic Threshold),根据当前空闲缓存和端口速率动态调整。当队列长度超过阈值时,触发 WRED 或 PFC。

以典型配置为例:假设芯片总缓存为 32 MB,端口为 100G,RTT 为 10 微秒。为了吸收突发,通常需要配置足够的共享缓存。如果每个队列的静态阈值设得太低,会导致丢包;设得太高,则可能影响其他端口的公平性。实际调优时,需要结合流量模型(如 incast、burst)和 PFC 死锁风险来设定阈值。

提示:在 RoCEv2 场景中,PFC 的阈值设置尤为关键。建议先通过流量测试确定突发大小,再反推缓存阈值,而不是直接套用默认值。

四、可编程性:OF-DPA 与 P4 的取舍

OF-DPA 的优势是成熟、稳定,与 OpenFlow 控制器生态兼容好,适合需要快速部署 SDN 的场景。它的表结构固定,但覆盖了绝大多数数据中心转发需求(VLAN、L2/L3、ACL、组播、隧道)。缺点是灵活性有限,无法自定义新的协议头或匹配逻辑。

P4 的优势是灵活,可以定义新的协议、新的匹配字段和新的动作。例如,可以在 P4 中实现自定义的负载均衡算法、带内遥测(INT)或新的隧道封装。缺点是开发门槛高,需要 P4 编译器支持,且表资源消耗大,调试复杂。

实际选型时,如果只是做标准的 VXLAN 网关、ACL 或路由,OF-DPA 足够;如果需要做自定义遥测、新协议支持或特殊转发逻辑,则考虑 P4。

五、关键性能指标

评估交换芯片时,需要关注以下指标:

  • 交换容量:芯片总带宽,如 3.2 Tbps、6.4 Tbps、12.8 Tbps。
  • 包转发率:以 Mpps 为单位,通常与端口数量和最小包长有关。
  • 缓存大小:共享缓存总量,直接影响突发吸收能力。
  • 表项资源:TCAM 表项数、SRAM 表项数、ECMP 组数、ACL 规则数。
  • 时延:端口到端口的转发时延,通常在几百纳秒到几微秒。
  • 可编程性:是否支持 P4、OF-DPA 版本、可自定义的解析深度。

以 Trident 4 为例,其交换容量为 12.8 Tbps,支持 256 个 50G 端口或 128 个 100G 端口,共享缓存约 64 MB,支持 P4 可编程。这些参数在选型时需要与机箱、电源、散热和软件生态一起考虑。

教学示例:假设一个 100G 端口,平均包长 512 字节,线速下包转发率约为 100G / (512×8) ≈ 24.4 Mpps。若芯片总包转发率为 3.2 Tbps / (512×8) ≈ 781 Mpps,则理论上可支持约 32 个这样的端口同时线速转发。实际值需扣除开销和协议报文。