MDIO(Management Data Input/Output)
3 秒看懂
MDIO 是以太网中 MAC/交换芯片用来”体检和指挥”物理层芯片(PHY)的管理总线——两根线(MDC 时钟 + MDIO 数据),低速但无处不在,是网络硬件的”幕后神经系统”。
类比:I²C 之于 SoC 内部传感器管理,MDIO 之于以太网 PHY 管理。速率不高,但不接上它,交换芯片连链路能不能通都不知道。
3 分钟产业解释
为什么存在
以太网物理层(PHY)芯片需要被上层(MAC/SoC/交换芯片)做以下管控:
- 链路状态查询:链路是否 Up?速率协商到 1G/10G/25G/100G?
- 配置下发:使能/禁用端口、配置自协商参数、设置 loopback 测试模式。
- 诊断读取:误码率(BER)、信号质量(SQI)、温度告警等。
- 固件加载与高级特性管理:在现代 PHY 中,MDIO 通道也承载 firmware download 和 Clause 45 扩展寄存器访问。
没有 MDIO,MAC 芯片就是”盲人开飞机”——根本不知道对端是否在线、速率是否匹配。
在 AI 数据中心中的位置
┌──────────────────────────────────────────────────────┐
│ AI 服务器节点 │
│ ┌─────────┐ PCIe ┌──────────┐ │
│ │ GPU │◄──────────►│ NIC │ │
│ │ 集群 │ │ (如 CX7) │ │
│ └─────────┘ └────┬─────┘ │
│ │ SerDes (25G/50G/100G) │
│ ┌────▼─────┐ │
│ │ PHY │ │
│ │ (如88X7120)│ │
│ └────▲─────┘ │
│ │ │
│ MDC + MDIO (管理总线) │
│ │ │
│ NIC 内部 MAC 管理逻辑 │
└──────────────────────────────────────────────────────┘
- 前端网络(Front-end):AI 训练集群连接存储、管理网,普遍使用 25GbE/100GbE,需要 PHY 管理。
- 后端网络(Back-end):虽然 NVLink/InfiniBand 有各自的链路管理机制,但以太网 RoCE 路线(如 Broadcom Memory Backbone、Arista 7800 系列交换机)同样依赖 MDIO 管理 PHY 层。
- 光模块管理:在光模块(QSFP/QSFP-DD)中,MDIO 有时与 I²C 协同工作——I²C 管理模块侧(CMIS/CMIS),MDIO 管理 host 侧 PHY。
产业链角色
| 角色 | 代表公司 | 与 MDIO 的关系 |
|---|---|---|
| PHY 芯片厂商 | Marvell(88X 系列)、Broadcom(BCM8xxx)、Microchip(LAN88xx)、TI(DP83xxx) | 实现 MDIO slave,提供寄存器 map |
| MAC/交换芯片厂商 | Broadcom(Tomahawk、Trident、Jericho 等)、Marvell(Teralynx)、NVIDIA(ConnectX/BlueField) | 实现 MDIO master,驱动管理 |
| FPGA/SoC 平台 | Xilinx(GEM 模块内嵌 MDIO controller)、Intel(以太网 IP) | 硬件 IP 实现 MDIO master |
| 标准组织 | IEEE 802.3 | 定义 Clause 22 / Clause 45 规范 |
15 分钟专家深入
一、协议架构总览
MDIO 由 IEEE 802.3 标准定义,经历两个关键版本:
| 特性 | Clause 22(经典 MDIO) | Clause 45(扩展 MDIO / MMD) |
|---|---|---|
| 定义时间 | ~1995(Fast Ethernet 时期) | ~2002(千兆/万兆以太网需求) |
| PHY 地址宽度 | 5 bit(0–31,最多 32 设备) | 5 bit port address + 5 bit dev address(MMD) |
| 寄存器地址宽度 | 5 bit(0–31,每设备 32 寄存器) | 16 bit(每 MMD 65536 寄存器) |
| 数据宽度 | 16 bit | 16 bit |
| 操作码(opcode) | 读(10)、写(01) | 读(11)、写(01)、地址递增读(10)、地址(00) |
| 地址/数据分帧 | 单帧内含地址和数据 | 先发地址帧(写地址寄存器),再发数据帧 |
| MDC 频率上限 | IEEE 规定最高 2.5 MHz [IEEE 802.3] | 同样通常 ≤2.5 MHz,部分厂商支持更高(>10 MHz,非标) |
| 典型应用场景 | 10/100M PHY 管理 | 10G/25G/100G+ PHY 管理、光模块、高级诊断 |
[注] 2.5 MHz 是 IEEE 802.3 的明确规范上限。部分厂商(如 Marvell 88X3340 等)在其数据手册中声明支持”suppressed preamble”或更高 MDC 频率,但需确认从设备兼容性。具体支持频率以 PHY 数据手册为准。
二、物理层与电气特性
Master (MAC/SoC) Slave (PHY) × 最多32
┌──────┐ ┌──────┐
│ │──── MDC (时钟) ────────►│ │
│ │ │ │
│ │◄────── MDIO (数据) ────►│ │
│ │ (三态, 上拉电阻) │ │
└──────┘ └──────┘
- MDC:单向,Master → Slave,时钟信号。
- MDIO:双向(三态),需外接 1.5kΩ–10kΩ 上拉电阻(具体值取决于 PHY/总线负载,查阅应用笔记)。
- 电平:通常 1.8V / 2.5V / 3.3V CMOS,与 PHY I/O 电压匹配。
- 拓扑:多点总线(multi-drop bus),所有 slave 共享同一 MDC/MDIO 线。
- 速率:典型实际使用在 1–2.5 MHz,管理流量极低(每帧 ~64 个 MDC 周期)。
三、Clause 22 帧格式详解
Clause 22 管理帧(单次操作 ≈ 64 MDC 周期):
MDC: ──┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌──
└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘└┘
MDIO: ────────
Preamble: 32 个连续 '1'(唤醒所有 slave)
ST: Start of Frame = 01
OP: 操作码
01 = 写
10 = 读
PHY Addr: 5-bit PHY 地址(0–31)
REG Addr: 5-bit 寄存器地址(0–31)
TA: Turn-Around
读操作: Master 释放 (Z) → PHY 驱动 0 → PHY 驱动数据
写操作: Master 驱动 10 → Master 驱动数据
DATA: 16-bit 数据
关键寄存器(Clause 22 Register Map):
| 寄存器地址 | 名称 | 功能 |
|---|---|---|
| 0x00 | BMCR | 基本模式控制(速率、自协商使能、Reset) |
| 0x01 | BMSR | 基本模式状态(Link Up、自协商能力) |
| 0x02 | PHYIDR1 | PHY 标识符 1(OUI 高位) |
| 0x03 | PHYIDR2 | PHY 标识符 2(OUI 低位 + 型号 + 版本) |
| 0x04 | ANAR | 自协商通告 |
| 0x05 | ANLPAR | 自协商 Link Partner 能力 |
| 0x06–0x1F | 扩展 | 厂商自定义(1000BASE-T 控制、状态、诊断等) |
[注] 以上寄存器地址/名称来自 IEEE 802.3 Clause 22 Table 22-8 的标准定义。具体厂商(如 Marvell、Broadcom)在 0x10–0x1F 区间定义扩展寄存器,需查阅具体 PHY datasheet。
四、Clause 45 帧格式详解
Clause 45 引入 MMD(MDIO Manageable Device) 概念,将寻址空间从 32 寄存器扩展到海量:
Clause 45 写操作(两帧完成):
帧1:
帧2:
Clause 45 读操作(两帧完成):
帧1:
帧2:
ST: 00 (Clause 45 标识,区分 Clause 22 的 01)
DEV (Device Address): 5-bit,选择 PHY 内部的 MMD 模块
常用 MMD 设备地址 [IEEE 802.3 Clause 45 Table 45-1]:
| Device Address | MMD 类型 | 典型功能 |
|---|---|---|
| 1 | PMA/PMD | 物理媒介相关寄存器 |
| 3 | PCS | 物理编码子层寄存器 |
| 4 | PHY XS | 扩展子层(用于多速率 PHY 的线路侧) |
| 7 | AN | 自协商(Clause 73 AN 用于 10G+) |
| 30 | Vendor-Specific 1 | 厂商自定义寄存器空间 |
| 31 | Vendor-Specific 2 | 厂商自定义寄存器空间 |
五、总线仲裁与多设备管理
- 无仲裁机制:MDIO 是纯 Master-Slave 架构,由 Master 独占总线,不存在冲突。
- 32 设备限制(Clause 22):在大型交换机中可能需要多个 MDIO bus 或使用 MDIO 多路复用器 (mux) 扩展设备数。
- PHY 地址配置:通常通过硬件引脚(strap pins)在上电时锁定 PHY 地址,或通过 OTP/寄存器配置。
- 多级 MDIO 转接:某些设计使用 MDIO mux(如 Microchip/Microsemi 的 MDIO 桥接器)扩展可管理设备数量。
技术原理(最深)
时序细节与状态机
Clause 22 读操作时序(Master 视角):
┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
MDC: ───┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─
|←── Preamble (32×'1') ──→|ST|OP|Phy|Reg|TA |←── Data (16b) ──→|
MDIO: ── 11111111111111111111111111111111 10 10 PPPPP RRRRR ZZ 10 DDDDDDDDDDDDDDDD
(Master 驱动) (Master) (Master) (turn)(PHY驱动)
时序要求:
- MDIO 在 MDC 上升沿被采样(对 slave 而言)
- MDIO 在 MDC 下降沿切换数据(对 master 而言)
- Master 应在 MDC 下降沿前 setup time 切换数据
- Slave 应在 MDC 上升沿采样数据
- 具体 setup/hold 时间取决于器件,通常为几十纳秒级
Clause 45 地址递增读(Increment Read)
对于需要批量读取连续寄存器的场景(如读取 PCS 错误计数器全部统计),Clause 45 定义了 Address Increment 模式:
帧1: ← 设置起始地址
帧2: ← 读出,地址自动+1
帧3: ← 继续读下一个
...(连续发 OP=10 帧,地址自动递增)
与 MDIO 相关的系统级设计考量
| 考量 | 说明 |
|---|---|
| 上拉电阻选择 | 需平衡功耗与信号完整性。总线长度较长(>10cm)时,容性负载增大,可能需降低上拉电阻值(如 2.2kΩ)。 |
| 总线频率 vs. 寄存器访问延迟 | 单次 MDIO 读操作 ≈ 64 个 MDC 周期。在 2.5 MHz 下,一次读约 25.6 μs。批量配置大量寄存器时,总耗时可观。 |
| 带内管理 vs. 带外管理 | 部分交换机 SoC 使用带内管理(通过数据路径中的管理帧),但 MDIO 仍是初始化和故障诊断的”最后手段”通道。 |
| 中断机制 | 一些 PHY 支持 MDIO Interrupt(专用中断引脚或通过 MDIO 带内中断 bit),避免轮询开销。 |
| SPI 作为替代 | 部分现代 PHY 也提供 SPI 接口(如 Marvell 88X7120 的 SPI 管理通道),速率更高,但 MDIO 因兼容性仍为主流。 |
技术演进史
1995 ── IEEE 802.3 引入 Clause 22 MDIO
支持 10BASE-T / 100BASE-TX PHY 管理
32 设备 × 32 寄存器,足够当时需求
2000 ── 千兆以太网(1000BASE-T)普及
Clause 22 地址空间开始捉襟见肘
厂商通过 0x10–0x1F 扩展寄存器缓解
2002 ── IEEE 802.3ae (10GbE) 引入 Clause 45
MMD 模型 + 16-bit 寄存器地址 + 地址递增
适配 PCS/PMA/PMD/AN 等复杂子层管理
2010 ── 40GbE / 100GbE IEEE 802.3ba
Clause 45 成为高速 PHY 管理标配
多 lane、多模块管理需求推动 MMD 细分
2017 ── 200GbE / 400GbE IEEE 802.3bs
Clause 45 持续服务,但 I²C/SPI/CMIS
在光模块管理侧分担更多工作
2020+ ── 800GbE / 1.6TbE 探索
管理总线面临更高复杂度
部分厂商探索 MDIO over I3C 等新方案
[具体进展需追踪各 PHY vendor roadmap]
技术路线对比
| 维度 | MDIO (Clause 22) | MDIO (Clause 45) | I²C (SMBus) | SPI | JTAG (1149.x) |
|---|---|---|---|---|---|
| 线数 | 2(MDC+MDIO) | 2(MDC+MDIO) | 2(SCL+SDA) | 4(CS+CLK+MOSI+MISO) | 4+(TCK+TMS+TDI+TDO) |
| 典型速率 | ≤2.5 MHz | ≤2.5 MHz | 100k–400k Hz(标称) | 10–50 MHz | 10–100 MHz |
| 寻址能力 | 32 设备 × 32 寄存器 | 32 设备 × 32 MMD × 64K 寄存器 | 127 设备 × 厂商定义 | 取决于 CS 线数和地址空间 | 链式 TAP,无地址概念 |
| 协议复杂度 | 低(固定帧格式) | 中(两帧操作) | 中(协议栈较复杂) | 低(全双工 shift) | 中高 |
| 主要用途 | 以太网 PHY 管理 | 高速以太网 PHY 管理 | 光模块(CMIS)、传感器 | PHY 管理(部分)、Flash | 芯片调试/边界扫描 |
| 是否标准对口 | IEEE 802.3 专属 | IEEE 802.3 专属 | 通用 | 通用 | 通用/IEEE 1149 |
| 在 AI 网络设备中的地位 | 基础必备 | 高速 PHY 必备 | 光模块管理主力 | 部分 PHY 备选 | 板级调试 |
上下游
上游(供给端)
| 层级 | 内容 | 代表 |
|---|---|---|
| 标准 | IEEE 802.3 Clause 22/45 | IEEE |
| PHY 硅片 | 集成 MDIO slave 接口的 PHY IC | Marvell 88X3340/88X7120、Broadcom BCM8488x、Microchip LAN8840/LAN8814、TI DP83867/DP83869 |
| MAC/SoC 硅片 | 集成 MDIO master controller | Broadcom Memory SoC、Marvell Teralynx、NVIDIA BlueField/ConnectX、AMD/Pensando |
| FPGA IP | MDIO master/slave 硬核或软核 | AMD/Xilinx GEM、Intel 以太网 IP、Lattice |
| 被动器件 | 上拉电阻、ESD 保护 | 各通用被动器件厂商 |
下游(应用端)
| 应用场景 | 说明 |
|---|---|
| 数据中心交换机 | 25G/100G/400G 交换机板卡上的每个端口 PHY 都需 MDIO 管理 |
| AI 服务器 NIC | ConnectX-7 等 NIC 内部 MAC 对 PHY 的管理 |
| 企业网/园区网 | 企业级 PoE 交换机,需 MDIO 管理 PoE PHY |
| 工业以太网 | TSN(时间敏感网络)PHY 的管理配置 |
| 汽车以太网 | 100BASE-T1/1000BASE-T1 车载 PHY 的管理 |
关键指标
| 指标 | 典型值/范围 | 说明 |
|---|---|---|
| MDC 频率 | 最高 2.5 MHz [IEEE 802.3 规范] | 实际常运行在 1–2.5 MHz |
| 单次读延迟 | ~25.6 μs @ 2.5 MHz | 64 MDC 周期/帧 |
| 单次写延迟 | ~25.6 μs @ 2.5 MHz | 同上 |
| 最大挂载设备 | 32(5-bit 地址) | 可通过 MDIO mux 扩展 |
| Clause 22 寄存器空间 | 32 寄存器/设备 | 0x00–0x1F |
| Clause 45 寄存器空间 | 65536 寄存器/MMD | 16-bit 地址 |
| Clause 45 MMD 数量 | 最多 32 | 5-bit device address |
| 数据总线宽度 | 16 bit | 所有版本 |
| 帧前导码 | 32 bit(连续 ‘1’) | 可部分省略(suppressed preamble,非标) |
| 信号电平 | 1.8V / 2.5V / 3.3V | 取决于 PHY I/O bank 配置 |
供需与市场数据
与 MDIO 的关联市场规模推算
MDIO 本身是开放标准协议,不单独形成商业产品市场。但其”载体”——以太网 PHY 芯片——有清晰的市场:
| 指标 | 数据 | 来源/口径 |
|---|---|---|
| 全球以太网 PHY 芯片市场(2023) | ~$2.5B–$3.5B | [行业估算,含 1G/2.5G/10G/25G/100G PHY] |
| 其中 Marvell 市场份额 | ~40–50% | [行业估算,含 Marvell 88E/88X 全系列] |
| AI 数据中心网络设备市场(2024) | >$15B | [Dell’Oro Group 行业报告估算] |
| 单台 400G 交换机 PHY 数量 | 32–128 个端口 × 1 PHY/port | 取决于交换机类型(fixed vs. modular) |
| 每个 PHY 需要的 MDIO 通道 | 1 对(MDC+MDIO) | 标准实现 |
关键趋势:随着 AI 集群规模扩大(数万至数十万 GPU),以太网后端网络的端口数量呈指数增长,每个端口的 PHY 管理均需 MDIO,推动了对高性能 PHY 和高效 MDIO 管理方案的需求。
代表公司与资本映射
| 公司 | 角色 | 关键产品线 | 资本代码 | 备注 |
|---|---|---|---|---|
| Marvell Technology | PHY + MAC 全栈 | 88X7120(100G PHY)、88X3340(NBASE-T)、Teralynx 交换芯片 | MRVL (NASDAQ) | 以太网 PHY 市场份额领先者之一 |
| Broadcom | PHY + 交换全栈 | BCM8488x(100G PHY)、Memory 系列交换芯片 | AVGO (NASDAQ) | 交换芯片龙头,PHY 自用为主 |
| Microchip Technology | PHY 产品线 | LAN8840/LAN8814(多端口 GbE PHY)、VSC 系列交换芯片 | MCHP (NASDAQ) | 收购 Microsemi 后在以太网 PHY 实力增强 |
| Texas Instruments (TI) | PHY + 工业以太网 | DP83867/DP83869 系列 | TXN (NASDAQ) | 工业/汽车以太网 PHY 强势 |
| NVIDIA | NIC/SmartNIC/DPU | ConnectX-7、BlueField-3(内部 MAC 管理 PHY) | NVDA (NASDAQ) | AI 网络基础设施核心供应商 |
| AMD (Xilinx) | FPGA + 网络 IP | GEM 模块(内嵌 MDIO controller)、Alveo 网卡 | AMD (NASDAQ) | FPGA 平台对 MDIO 硬核支持 |
| Intel | NIC + FPGA | 以太网控制器(E810 系列,内嵌 MDIO)、Intel FPGA 以太网 IP | INTC (NASDAQ) | 数据中心网卡主力 |
投资逻辑
核心逻辑
-
AI 集群扩张 → 以太网端口爆炸 → PHY 需求上升 → MDIO 管理生态价值放大
- 每个 AI GPU 节点通常配备 1–8 个高速网口,每个网口至少 1 个 PHY(在外部 PHY 方案中)。一个 10 万 GPU 集群的前端+后端网络可能涉及数十万个以太网端口。
- 即使部分方案采用 MAC-to-MAC(无外部 PHY),在 400G/800G 时代,电光转换(E-O)通常需要外部 PHY/DSP 芯片来驱动光模块。
-
高速化趋势利好 Clause 45 生态
- 从 1G→25G→100G→400G→800G,PHY 复杂度指数上升,管理寄存器空间从 32 寄存器→海量,MDIO Clause 45 成为刚需。
- 利好具备完整 Clause 45 PHY 产品线的 Marvell、Broadcom、Microchip。
-
MDIO 作为”基础设施”的不可替代性
- 尽管 MDIO 是低速管理总线,但它是以太网 PHY 初始化和故障恢复的”最后通道”。即使带内管理(如网络侧 SNR 监控)更高效,硬件初始化和断链恢复仍必须依赖 MDIO。
- 这意味着 MDIO 的地位长期稳固,不会被轻易替代。
风险
- PHY 集成化:MAC/SoC 内部集成 PHY(如部分 2.5G/5G 方案),外部 MDIO 总线使用减少。
- 非以太网路线的替代:在 AI 后端网络,InfiniBand(NVIDIA 主推)有自己的链路管理机制,不依赖 MDIO。若 InfiniBand 持续主导后端,MDIO 的增长逻辑主要依赖前端网络。
- 新协议竞争:I3C 等新一代管理总线在更低功耗、更高速率上对 MDIO 形成潜在威胁,但目前在以太网 PHY 领域尚无实质替代。
常见误读纠偏
误读 1:「MDIO 只是低速总线,已经过时了」
纠偏:MDIO 速率确实不高(≤2.5 MHz),但它是 IEEE 802.3 标准规定的 PHY 管理接口,每一颗符合标准的以太网 PHY 都实现 MDIO slave。在 AI 数据中心的数百个交换机、数千个 NIC 中,MDIO 在设备初始化、链路故障诊断、固件加载等场景中是不可替代的”基础通道”。它不是”过时”,而是”基础到不需要讨论”——类似 UART 之于调试。
误读 2:「MDIO 就是 I²C,都是两线管理总线」
纠偏:
- 物理层:I²C 使用开漏 + 上拉(双向),MDIO 的 MDC 是推挽输出(单向 Master→Slave),MDIO 是三态双向。
- 协议层:I²C 有 START/STOP/ACK 机制、7/10-bit 地址、时钟拉伸等特性;MDIO 是固定帧格式,无 ACK 机制(靠 Turn-Around bit 和数据读回确认)。
- 应用层:I²C 通用(传感器、EEPRTC、PMIC 等),MDIO 专用于 IEEE 802.3 以太网 PHY 管理。
- 混淆来源:光模块管理确实用 I²C(SFF-8472 / CMIS),但这与 MDIO 管理 host 侧 PHY 是两回事。
误读 3:「Clause 45 向下兼容 Clause 22,可以混用」
纠偏:严格来说,Clause 45 使用 ST=00 区分于 Clause 22 的 ST=01,理论上可以共存于同一物理总线上。但 是否支持混合模式取决于具体 PHY 实现——并非所有 Clause 45 PHY 都能同时响应 Clause 22 帧格式。实际部署中,通常在一个 MDIO bus 上统一切换为 Clause 45 管理。混合使用需查阅具体 PHY datasheet 中关于 MDIO 兼容模式的说明。
误读 4:「32 设备地址限制意味着一个 MDIO bus 最多管 32 个端口」
纠偏:32 设备是 5-bit 地址的理论限制。实际部署中,可通过 MDIO multiplexer(如 NXP PCA9545A + 适配逻辑) 将多条 MDIO bus 扇出,管理上百个 PHY。一些高端交换机设计中,MAC 芯片内部集成了多个独立的 MDIO controller,每个 controller 管理一组 PHY。
学习路径
入门(1–2 小时)
- IEEE 802.3 Clause 22:直接阅读标准原文中 §22.2(Frame structure)和 §22.2.4(Management frame structure)。标准文档对帧格式的描述非常清晰。
- 动手实验:如果你有 FPGA 开发板(如 Xilinx/AMD Zynq),其 GEM 模块内嵌 MDIO controller。连接一颗以太网 PHY(如 Realtek RTL8211),用软件读取 PHYIDR1/PHYIDR2(0x02/0x03),验证 OUI 和型号。
- Marvell PHY Datasheet:阅读 Marvell 88E1510 或 88X3340 的寄存器 map,理解 Clause 22/45 的实际寄存器布局。
进阶(1 天)
- IEEE 802.3 Clause 45:重点理解 MMD 模型、地址帧与数据帧的分离、地址递增读。
- 抓包分析:使用逻辑分析仪(如 Saleae Logic)抓取实际 MDIO 总线波形,逐 bit 解