周末在家,继续学习。这次看的是BMC网口。
作为服务器接口之一,网络接口是必不可少的,也是服务器远程管理唯一的对外接口。所以BMC芯片上肯定要有网口。
随着计算机技术的发展,网络传输速率也从过去的10M,发展到100M,1G甚至百G更高。为了适应传输速率的发展,网络接口形式也进行了迭代更新。这里说的接口形式是指MAC(媒体访问控制层,通常在芯片内部)与PHY(物理层,负责信号传输)之间的一种标准通信接口及协议。而大家常见到的所谓网口,是PHY对外的接口,一般都是RJ45形式(水晶头)。

1. MII,即Media Independent Interface
MII是早期最标准的以太网接口,采用16根信号线的并行传输方式,支持十兆10Mbps和百兆100Mbps速率。其结构清晰,但引脚过多导致PCB布线复杂,已逐渐被更精简的接口取代。

2. RMII,即 Reduced MII
作为MII的简化版,RMII将数据线从4位减至2位,并通过统一的50MHz 参考时钟CLK_REF,连线数量由MII的16根减少为8根,将引脚数减少约50%。这使得它在成本敏感、引脚资源紧张的嵌入式场景中备受青睐。

3. GMII,即Gigabit MII
为支持千兆速率(1000Mbps)而生,GMII将数据位宽扩展至8位,时钟频率提升至125MHz。它奠定了千兆以太网的基础,但24+的引脚数有点多。

4. RGMII,即 Reduced GMII
RGMII采用了双沿采样技术:在125MHz时钟下,数据在上升沿和下降沿各传输4位,从而用4位总线实现了8位/周期的数据吞吐量,引脚数降至12个左右。它完美平衡了性能与成本,成为当前千兆设备(如路由器、车载网络)中最主流的接口。

5. SGMII, 即 Serial GMII,串行GMII
SGMII迈向了串行差分传输,仅需一对差分发送线和一对差分接收线(共4个引脚)。它通过8B/10B编码将时钟信息嵌入数据流,抗干扰能力强,支持速率自协商(1G/2.5G/5G)。其引脚需求极低且适合长距离板内传输。

当然,除了以上几个接口,还有一些更高速的接口。但当前BMC主要是管理功能,不是主要的数据传输功能,所以更高速的网络接口好像还没有涉及,咱们就不提了。
而对于BMC芯片来说,有专用网口和共享网口:
-
专用网口:BMC所独立拥有的物理网口。优点是提供了绝对可靠的独立管理路径,安全性高,不受主机网络状态影响。缺点是增加了硬件成本和空间占用。因为是独享的一个网口,所以可以速率高,一般是千兆网口,也就是RGMII接口。为了实现在PCB板上较长的走线而不衰减,又加了一个SGMII接口。
-
共享网口 :BMC与主机操作系统共享同一个物理网口(主板上的网口),通常通过NC-SI(网络控制器边带接口)协议实现。优点是可节省一个网口,降低成本。缺点是一旦共享网口的驱动或主机网络配置出错,可能影响BMC的可达性。这个NC-SI协议可以粗略理解为就是RMII/MII接口,所以BMC一直保留着那个百兆接口RMII/MII。不过这对主板上的那个网络控制器芯片就有了较高要求,必须支持NC-SI,例如我见过I350/I210。
看中国台湾那家的BMC芯片之前就是一个RMII,后来加了一个专用网口RGMII。再后来可能是考虑到服务器前后面板的区分,有了两个RMII和两个RGMII。估计四个网口用得不多,在其最新的BMC芯片上把RMII和RGMII减回各一个后,加了一个SGMII接口。
个人认为BMC网口的发展方向就是提高性能。虽然前面说不以数据传输为主要功能,但在KVM和远程镜像加载装机的时候,性能的提升确实会给客户带来直接的感受。但这不仅仅是需要芯片硬件本身的提升。曾经研究过某国外品牌的服务器,虽然也是千兆网口,但其在软硬件方面的综合优化使得网络速度有了很大的提升。
个人学习总结,请各位专家指正

过往部分文章汇总:
BMC芯片的安全------开源Caliptra和Opentitan
