2. Marvell数据中心网络硬件架构解析

要理解Marvell在数据中心网络中的性能优化空间,必须先看清它的芯片家族分工。Marvell的数据中心网络硬件并非单一芯片,而是由三条产品线构成:面向交换机ASIC的Teralynx、面向数据处理单元的OCTEON DPU,以及历史悠久的Prestera交换芯片系列。三者的定位不同,决定了它们在转发流水线、缓存队列和可编程性上的差异。

Teralynx:面向高密度交换的转发核心

Teralynx是Marvell面向数据中心ToR与Spine层的高性能交换芯片系列,典型代表如Teralynx 7、Teralynx 8、Teralynx 10。其核心设计目标是高radix、低时延、可编程的转发流水线。Teralynx采用多级流水线结构,报文进入后依次经过解析(Parser)、查找(Lookup)、决策(Decision)、编辑(Edit)和调度(Scheduler)几个阶段。解析阶段提取以太网、IP、TCP/UDP乃至VXLAN、GENEVE等隧道头;查找阶段并行访问L2/L3转发表、ACL表和ECMP组;决策阶段完成路由选择、ACL匹配和流量镜像判断;编辑阶段重写MAC、TTL、DSCP或封装隧道头;最后进入队列调度。

Teralynx的可编程性体现在其P4可编程流水线上,允许用户自定义匹配字段和动作,而不必更换芯片。这对数据中心中不断演进的VXLAN、SRv6、RoCEv2等协议非常关键。在容量设计上,Teralynx 7可提供12.8Tbps交换容量,Teralynx 8达到25.6Tbps,Teralynx 10则面向51.2Tbps。这些数字直接决定了单台交换机能承载的100G/400G端口数量,是容量规划的第一约束。

OCTEON DPU:网络、存储与安全的卸载引擎

OCTEON DPU(Data Processing Unit)与交换芯片不同,它是一颗带多核ARM处理器的SoC,典型如OCTEON TX2、OCTEON 10。其架构由通用ARM核、专用硬件加速器(如正则表达式引擎、压缩/解压引擎、加密引擎、包处理引擎)和高速网络接口组成。在数据中心中,OCTEON DPU通常插在服务器侧或作为SmartNIC,承担OVS卸载、IPsec/TLS加解密、存储前端、防火墙和遥测采集等任务。

对性能优化而言,OCTEON的关键在于“卸载什么”和“卸载后CPU省下多少”。例如,将VXLAN封装/解封装卸载到DPU后,宿主CPU不再需要为每个报文做隧道处理,可显著降低时延抖动。OCTEON 10还引入了对P4和DOCA类编程模型的支持,使数据面可编程性向交换芯片靠拢。容量设计时需关注DPU的PCIe带宽、网络端口速率与加速器吞吐是否匹配,避免出现“网络口100G、加速器只能跑40G”的瓶颈。

Prestera系列:成熟的可编程交换平台

Prestera是Marvell较早的交换芯片家族,覆盖从1G到400G的多种型号,如Prestera CX、DX、EX系列。它同样采用可编程流水线,但在数据中心场景中更多用于企业园区、边缘和特定行业交换。Prestera的缓存结构通常采用共享缓存加多级队列,支持WRED、ECN和PFC等拥塞管理机制。理解Prestera有助于对比Teralynx的演进:Teralynx在radix、SerDes速率和可编程深度上更强,而Prestera在成熟生态和成本上仍有位置。

芯片级转发流水线与缓存队列结构

无论哪条产品线,芯片级转发流水线都遵循“解析—查找—决策—编辑—排队—调度”的基本链路。真正影响性能的是缓存与队列结构。交换芯片通常采用共享缓存池(Shared Buffer),所有端口共享同一块SRAM,按需分配。队列则分为单播队列、组播队列和拥塞管理队列。当某个出端口拥塞时,报文进入该端口的队列,若队列超过阈值则触发WRED丢弃或ECN标记。PFC则用于RoCE等无损场景,通过优先级流控暂停上游发送。

容量设计时,缓存大小和队列深度直接决定突发吸收能力。例如,一个400G端口在100微秒内可积累约5MB数据,若共享缓存不足,就会丢包。因此,规划时需根据端口速率、RTT和流量突发特征估算所需缓存。下图展示了Teralynx类交换芯片从入端口到出端口的转发与缓存队列关系。

Teralynx交换芯片转发流水线与缓存队列 入端口 100G 入端口 400G 入端口 100G 解析 Parser 查找 Lookup 决策 Decision 编辑 Edit 共享缓存池 Shared Buffer SRAM 总容量 按需动态分配 WRED / ECN 阈值 PFC 优先级流控 出端口队列 单播队列 Q0 单播队列 Q1 组播队列 拥塞管理队列 调度 Scheduler 出端口 关键参数与容量关系 端口速率 × 突发时间 = 所需缓存量(例:400G × 100μs ≈ 5MB) 共享缓存不足 → 丢包;队列过深 → 时延增加 WRED 阈值决定何时丢弃;ECN 标记用于拥塞通知 PFC 用于 RoCE 无损网络,按优先级暂停上游发送

从图中可以看出,报文从入端口进入后,先经过解析、查找、决策、编辑四级流水线,再进入共享缓存池。缓存池不是按端口固定划分,而是全局共享,这样能更高效地吸收突发流量。但共享也意味着一个端口的拥塞可能影响其他端口,因此需要WRED和PFC等机制来隔离。出端口队列则负责最终调度,决定哪个队列的报文先发出。

三条产品线的协同与选型

在实际数据中心设计中,Teralynx负责骨干交换,OCTEON DPU负责服务器侧卸载,Prestera则用于特定接入场景。三者通过标准以太网和PCIe互联。容量设计时,需要分别计算交换层的端口密度、DPU的卸载吞吐和Prestera的接入能力,确保端到端无瓶颈。例如,一个机架内若使用Teralynx 8作为ToR,下行可接32个400G端口,上行可接16个400G端口,总容量25.6Tbps;若服务器侧使用OCTEON 10 DPU,则需确保DPU的PCIe Gen5 x16带宽足以支撑100G网络流量,避免主机侧成为瓶颈。

理解芯片级转发流水线和缓存队列结构,是后续进行拥塞控制、QoS调优和容量规划的基础。建议在规划时先明确端口速率、RTT和突发特征,再反推所需缓存和队列深度,而不是直接套用默认配置。