116.2 200 Gigabit 和 400 Gigabit 以太网子层总结
- 116.2.1 协调子层(RS)和媒体无关接口(GMII)
- (1) RS(Reconciliation Sublayer,协调子层)
- (2) GMII(Gigabit Media Independent Interface,千兆媒体无关接口)
- 116.2.2 200GMII and 400GMII 扩展子层 (200GXS and 400GXS)
- 116.2.3 物理编码子层 (PCS)
- (1)PCS 做什么?
- (2)PCS 和光模块的关系
- 116.2.4 PMA(物理介质连接子层)—— 数据的“搬运工”
- (1)PMA 做什么?
- (2)PMA 和光模块的关系
- 116.2.5 PMD(物理介质相关子层)—— 真正“碰介质”的层
- (1)PMD 做什么?
- (2)PMD 和光模块的关系
- (3)MDI 是什么?
- 116.2.6 MDIO/MDC 管理接口 —— 模块的“监控通道”
- (1)MDIO/MDC 做什么?
- (2)MDIO/MDC 和光模块的关系
- (3)MDD(MDIO Manageable Device)
- 116.2.7 管理(Clause 30)—— 系统级的“管理对象”
- (1)Clause 30 做什么?
- (2)和光模块的关系:
- 总结
摘要:此专栏主要解读 IEEE 802.3 中与光模块有关的章节。本文主要关注协议文档的 116 章关于 200 Gb/s 和 400 Gb/s 的介绍。不仅是对文档的简单翻译,还会剖析协议规定背后的深层含义。为了方便与协议文档内容对应,本文的章节编号与协议文档保持一致。
这一章节详细介绍 OSI 协议七层模型。在学习时,我们需要建立全局观:数据从上层传到光纤的路径为:
为了方便理解,这里把第一节中的框图粘贴在下面。
116.2.1 协调子层(RS)和媒体无关接口(GMII)
(1) RS(Reconciliation Sublayer,协调子层)
- 为什么需要 RS 层——因为 MAC 层和 MII 接口“说两种不同的语言”:
- MAC 层:以服务原语的方式工作。比如,MAC 想发送一个帧,它会发出 MA_DATA.request(发送请求);当接收到信息时,得到的是 MA_DATA.indication(接收指示)。这些原语是抽象的,不涉及具体的信号时序。MAC里数据以串行方式传输。
- GMII 接口:以信号和时序的方式工作。例如 200GMII 有 64 位宽的并行数据线 TXD[63:0]、TXC[7:0]、接收数据 RXD[63:0]、RX[7:0] 等,它们有严格的时钟沿要求和时序关系。
RS 层就是负责把 MAC 的“我要发数据”这种抽象请求,转换成 GMII 上实际的 64 位并行数据和控制信号;接收时再把 GMII 上的并行数据和有效指示转换成 MAC 能理解的接收指示原语。这部分内容会在后面章节中详解,下图仅展示简要示意框图便于理解。
打个比方:
- MAC 就像一位生产主管,生产出了一批货(IP包),对发货员(RS)说:“请把这批货发出去。”
- RS 就要把这批货(IP包)装车。有些车厢是4个格子(数据位宽为4位),有些是8个、64个格子。RS就需要按照GMII接口的标准,将货(IP包)装车。
- 车队就按规定的发车频率(GMII时钟频率)出发。如果发送的IP包有问题,无法正常发送,那么,RS就会向MAC层反馈(置位TX_ER)。
- 反过来,RS收货时,将车队送来的零散数据,组装成IP包,告诉MAC:“有您的包裹,已经放到桌上了。”如果接收错误,则RS会丢弃该IP包。
- RS 通常集成在 MAC 芯片内部:在交换机芯片、网卡芯片或 FPGA IP 核中,RS 作为 MAC 和 GMII 之间的一小段逻辑存在。在光模块中没有 RS 层,因为光模块不包含 MAC。
(2) GMII(Gigabit Media Independent Interface,千兆媒体无关接口)
- 为什么需要 GMII——让 MAC 和 PHY 解耦
“媒体无关”意味着不管下面是光纤、铜缆还是背板,MAC 侧看到的接口都一样,换 PHY 不需要改 MAC。 - GMII 的“物理形态”问题
协议规定 200GMII 和 400GMII 都采用 64 位宽的并行数据通路,时钟速率极快:- 200GMII 时钟:200 Gb/s ÷ 64 bit = 3.125 GHz
- 400GMII 时钟:400 Gb/s ÷ 64 bit = 6.25 GHz
正因为时钟速率极快,因此,几乎不采用“物理接口”,也就是说,200GMII 和 400GMII 通常都集成在 ASIC 芯片或 FPGA IP 核内,只是以“逻辑互联”的概念存在,而非电路上的可见接口。尽管如此,我们可以借助速率较低的 GMII 接口(例如 GMII、RGMII、SGMII)来理解。
所以,我们可以将 200GMII 接口理解为数据位宽为 64 位(TX[63:0]、RX[63:0]),时钟速率为 3.125GHz 的接口。同理,400GMII 可理解为数据位宽为 64 位,时钟速率为 6.25GHz 的接口。这两种接口不以物理形式存在,而是以“逻辑互联”的概念集成在 ASIC 芯片或 FPGA IP 核内。
116.2.2 200GMII and 400GMII 扩展子层 (200GXS and 400GXS)
- 问题:GMII 设计时假设 MAC 和 PHY 在很近的地方(比如同一芯片内)。但有时候需要把 MAC 和 PHY 分开得比较远,比如 MAC 在PCB板中央,PHY 芯片在靠近光模块的位置,中间隔着几英寸的 PCB 走线甚至背板。GMII 的并行信号直接拉远会面临时序、偏移、信号完整性等问题。
- 解决方案:插入一个 GMII Extender。它的作用就像给 GMII 信号加一个“串行化 + 编码”的包装,让信号可以经过较长距离传输而不错乱,然后在另一端再还原成 GMII 信号。
- GXS 是什么:GMII Extender 内部的核心子层叫 GXS(GMII Extender Sublayer)。它的功能和 PCS(物理编码子层)几乎一样,做编码(64B/66B)、加扰、通道对齐等。Extender 借用同样的技术来延长 GMII 的传输距离,是可选的、非必需的。
116.2.3 物理编码子层 (PCS)
(1)PCS 做什么?
PCS 是信号从逻辑走向物理的第一站。它从 GMII 接收 64 位宽的并行数据,做以下几件事:
- 64B/66B 编码:在数据流中嵌入同步信息(对齐标记)和控制信息,把每 64 比特数据编码成 66 比特的块。66 位中的额外 2 位是同步头,帮助接收端找到块的边界。
- 转码成 256B/257B:256B/257B 是在 64B/66B 基础上做的进一步转码,用来添加 FEC(前向纠错)。因为FEC 需要以更大的块为单位来组织数据。
- FEC 编码:加入冗余校验比特,使接收端能纠正传输中的误码。200G/400G 常用的 FEC 是 RS-FEC(Reed-Solomon 前向纠错),具体参数见 Clause 119 和 Clause 91。
- 分发到多个 PCS lane:把编码后的数据流切分到多个逻辑通道上并行处理。比如 400G 的 PCS 可能用 16 个 PCS lane(每 lane 约 25G)或 8 个 PCS lane(每 lane 约 50G),然后映射到物理 lane。
(2)PCS 和光模块的关系
- PCS 通常在主机芯片(交换机 ASIC、网卡芯片、FPGA)中实现,不在光模块里。
- 但光模块里的 DSP 芯片也做了类似 PCS 的事情,尤其是 FEC 和 lane 映射。DSP 接收主机传来的电信号(已经过了 PCS+FEC),但 DSP 需要重新做 FEC 解码/编码、重定时、均衡,因此 DSP 内部有类似 PCS 的功能块。
116.2.4 PMA(物理介质连接子层)—— 数据的“搬运工”
(1)PMA 做什么?
PMA 是 PCS 和 PMD 之间的桥梁,主要功能:
- lane 映射和复用:把 PCS 下来的多个逻辑 lane 映射到 PMD 需要的物理 lane。比如 PCS 有 16 个 lane,但 PMD 只需要 8 个 lane,PMA 就做合并;或者反过来拆分。
- 重定时(Retiming):对接收信号进行时钟恢复和重定时,消除抖动。
- 环回(Loopback):提供测试用的数据环回功能,方便调试。
- 测试码型生成和检查:生成 PRBS 等测试码型用于链路验证。
(2)PMA 和光模块的关系
PMA 功能分散在主机芯片的 SerDes 和光模块内部的 CDR/DSP 中。光模块电口(如 400GAUI-8)的本质就是 PMA 服务接口的物理实现。模块内的 DSP 或 CDR 芯片负责时钟恢复、重定时、均衡,这就是 PMA 功能。
116.2.5 PMD(物理介质相关子层)—— 真正“碰介质”的层
(1)PMD 做什么?
PMD 是物理层的最底层,直接面对传输介质。它负责:
- 电光转换:把电信号变成光信号(发射端激光器驱动)。
- 光电转换:把光信号变成电信号(接收端 PD + TIA)。
- 定义光信号的特性:波长、功率、消光比、接收灵敏度等。
(2)PMD 和光模块的关系
- 光模块的 TOSA(发射光学组件)和 ROSA(接收光学组件)就是 PMD 的具体实现。
- PMD 规格定义了你设计光模块时最关键的光学参数:发射光功率范围、接收灵敏度、波长容差、眼图模板等。
- 不同类型光模块(SR4、FR4、LR4、DR4 等)的核心区别就在 PMD:通道数、波长、介质、距离。
(3)MDI 是什么?
MDI 是 PMD 和介质之间的“物理连接点”。对光模块来说:
- 光 MDI = 光口,就是光纤连接器(LC、MPO)的端面。
- 电 MDI = 对于铜缆/背板来说就是 RJ45、SFP 插座等。
MDI 定义了你用什么连接器、光纤端面标准(PC/UPC/APC)、插入损耗要求等。你设计光模块时,MDI 决定你选什么连接器类型、光口结构设计。
116.2.6 MDIO/MDC 管理接口 —— 模块的“监控通道”
(1)MDIO/MDC 做什么?
这是主机(STA,站管理实体)用来管理 PHY / 光模块的接口。通过 MDIO,主机可以读写设备内部的 MMD(MDIO Manageable Device)寄存器。
- MDIO(Management Data Input/Output):串行数据线。
- MDC(Management Data Clock):管理时钟线。
Clause 45 定义了 MDIO 的帧格式和寄存器寻址方式。与老的 Clause 22(用于 1G / 10G PHY)不同,Clause 45 支持更多寄存器和设备地址空间,适合 200G / 400G 的复杂管理需求。
(2)MDIO/MDC 和光模块的关系
这是工程师每天都要打交道的接口。
- 光模块内部的 MCU(微控制器)或 DSP 通过 MDIO 接口暴露寄存器,主机可以读取模块状态(温度、电压、偏置电流、光功率、告警等)和写入配置。
- 光模块的固件(firmware)大量依赖于 MDIO 通信:上电时初始化、读取温度告警阈值、配置 FEC 模式、调整激光器偏置等。
(3)MDD(MDIO Manageable Device)
指通过 MDIO 可管理的设备,比如 DSP、CDR、TIA 驱动芯片、激光器驱动芯片等。一个光模块内部可能有多个 MMD,各自有独立的寄存器地址空间。
116.2.7 管理(Clause 30)—— 系统级的“管理对象”
(1)Clause 30 做什么?
Clause 30 定义了以太网各层的管理对象、属性和动作。这些是抽象的 MIB(管理信息库)对象,供 SNMP 等上层网管协议使用。比如“激光器温度”“接收光功率”“FEC 错误计数”等,在 Clause 30 中都有对应的标准管理对象定义。
(2)和光模块的关系:
光模块的 DDM(数字诊断监控)功能就是 Clause 30 管理思想的具体落地。模块内部 MCU 采集温度、电压、光功率等,通过 MDIO 暴露给主机,主机再映射到上层网管。
注意区分:Clause 30 是逻辑管理模型,MDIO 是物理管理接口,两者是不同层次的东西。
总结
本文围绕 IEEE 802.3 第 116 章,梳理了 200G/400G 以太网从 MAC 到光纤的完整子层链路:RS 负责协议与信号间的翻译,GMII 提供媒体无关接口,PCS 完成编码与 FEC,PMA 负责 lane 映射与重定时,PMD 直接驱动光模块完成电光转换,MDIO 与 Clause 30 则分别从物理接口和逻辑模型两个层面实现模块的监控管理。可总结成下表:
理解各子层的分工与边界,是设计高速光模块和排查链路问题的关键。欢迎有疑问的小伙伴在评论区留言讨论。