数据速率与吞吐量:RGMII 1000Mbps vs RMII 100Mbps
做接口选型,第一个跳出来的问题就是:你到底需要跑多快?
RGMII 标称 1000Mbps,RMII 标称 100Mbps,差了一个数量级。
但「标称」和「实际能跑多少」是两码事。我见过不少项目,选型时只看理论峰值,结果实测吞吐量直接砍半……今天咱们就把这笔账算清楚。
理论速率到底怎么算出来的?
先把数学公式摆出来,其实不复杂:
- RGMII:时钟 125 MHz,DDR 双沿采样,数据线 4 bit。
速率 = 125 MHz × 2 (双沿) × 4 bit = 1000 Mbps。 - RMII:时钟 50 MHz,SDR 单沿采样,数据线 2 bit。
速率 = 50 MHz × 1 (单沿) × 2 bit = 100 Mbps。
你看,RGMII 靠「抬高时钟 + 双沿 + 宽位宽」三管齐下,把速率推上去了。
但 RMII 的 50 MHz 时钟也是折衷——它故意砍了时钟频率,好让 PCB 走线更容易。说白了,这是用性能换设计余量。
我习惯在项目初期就把这个公式写在笔记本首页。为什么?
有一次客户拿着 RMII 的 FPGA 方案说想跑千兆,我当场给他算了这笔账——时钟频率翻倍根本不可能,最后老老实实换了 RGMII。
时钟频率与数据位宽的实际影响
很多人只盯着 Mbps 数字,忽略了物理层实现代价。这里我做了个对比表,一看就明白:
| 参数 | RGMII | RMII |
|---|---|---|
| 时钟频率 | 125 MHz | 50 MHz |
| 采样方式 | DDR (双沿) | SDR (单沿) |
| 数据线宽度 | 4 bit | 2 bit |
| 理论线速率 | 1000 Mbps | 100 Mbps |
| 参考时钟抖动要求 | < ±50 ps | < ±150 ps |
| PCB 走线约束 | 严苛 (等长 ±50 mil) | 宽松 |
看到时钟抖动那行没?RGMII 对时钟质量敏感得多。
我在一个 8 层板项目里吃过亏:晶振的 RMS 抖动 60 ps,RMII 跑得稳稳的,一换 RGMII 就丢包。后来换成专用振荡器才解决。这就是 125 MHz DDR 的脾气。
有效吞吐量:理论 vs 现实
别以为 1000 Mbps 就能传 1000 Mbps 的数据。MAC 层有帧间隙、前导码、CRC,这些都要算进去。
以标准以太网帧 1518 字节为例:
- 有效载荷 1500 字节
- 帧间隙 12 字节 + 前导码 8 字节 + 帧头 14 字节 + CRC 4 字节 = 总开销 38 字节
- 线速效率 = 1500 / (1518 + 12 + 8) ≈ 97.5%
所以:
- RGMII 实际吞吐量 ≈ 1000 Mbps × 97.5% ≈ 975 Mbps
- RMII 实际吞吐量 ≈ 100 Mbps × 97.5% ≈ 97.5 Mbps
嗯,这里要注意:上面算的是连续大包场景。如果全是 64 字节小包,效率会掉到 66% 左右。RGMII 掉到 660 Mbps,RMII 掉到 66 Mbps。所以做交换机、路由器的时候,一定要用小包做压力测试。
为什么 RGMII 能跑千兆而 RMII 不行?
从时序角度再深挖一层。RMII 的 50 MHz 单沿 2 bit,确实可以用更低速的 FPGA I/O 和更宽松的 PCB。
但想把它推到千兆?除非把时钟提到 500 MHz 或者把数据线扩到 20 bit……这种方案在工业界基本不存在。
RGMII 聪明在哪?它用了 DDR 技术,在 125 MHz 时钟下同时采上升沿和下降沿,等效频率 250 MHz。再加上 4 bit 位宽,刚好凑出 1000 Mbps。
我2015年做过一个项目,为了省成本,想用 RMII + 4 bit 数据线(自己魔改)跑千兆。结果 PHY 芯片不支持,MAC 层时序对不上,折腾两周放弃了。所以——
下面这张图把两个接口的时钟、位宽、采样方式与速率的关系串起来了:
选型时看速率,更得看背后的系统代价
这么多参数下来,结论其实很清晰:
- 如果你的产品只跑百兆(比如智能家居网关、工业传感器集线器),RMII 是省心之选。时钟要求低,PCB 容易画,IO 需求量少。
- 如果你需要千兆上行(比如路由器 WAN 口、NAS、视频监控 NVR),RGMII 是唯一选择,但要做好信号完整性功课。
我自己的经验法则是:
- 100 Mbps 场景 → RMII(省钱、省引脚、省开发时间)
- 1000 Mbps 场景 → RGMII(别犹豫,老老实实做阻抗控制)
- 不确定场景 → 选支持双模的 PHY + 可切换 MAC,硬件预留两组接口,软件根据实际需求切换
最后提醒一句:别被「理论峰值」忽悠。我在实验室测过很多次,RGMII 跑满 1000 Mbps 需要 MAC、PHY、DMA 三方配合,任何一方有瓶颈,实际吞吐量就掉到 800 Mbps 甚至更低。RMII 同样,100 Mbps 的 PHY 配上垃圾主控,跑 60 Mbps 也常见。所以——