在普通用户看来,0603 BIOS是个不起眼的更新,但在行业人士看来,这个是重大的更新,提升了内存兼容性。实测解决了大部分DDR4 16G 3600、DDR4 16G 4000频率内存XMP兼容性问题,对PRIME Z690-P DDR5平台也有较大改善。
什么是MRC?
memory reference code(MRC)是内存初始化参考代码,它一般由CPU厂商(Intel/AMD)开发,并经过大量测试
MRC在运行的时候会读取内存条上SPD(serial presence detect)的信息
SPD的读取方式是通过SMBus,一种I2C总线的扩展。SMbus的地址在很多Intel的平台上是A0、A2、A4和A6(四根DIMM的情况)。
SPD里面记录了DIMM的厂商的ID,型号等等信息,这就是为什么MRC会知道内存是哪家厂商生产的。MRC后来会通过BIOS的其他部分将该信息通过SMBIOS表信息告诉操作系统,这样大家才能在系统信息里面看到内存型号。不法经销商有时会通过刷新SPD内容欺骗MRC,进而欺骗消费者。SPD里面还记录了内存重要的时序信息,关于时序等信息,参考
内存系列一:快速读懂内存条标签https://zhuanlan.zhihu.com/p/26255460
内存系列二:深入理解硬件原理https://zhuanlan.zhihu.com/p/26327347
MRC会根据该信息,结合CPU当时对各个频率的支持程度(会逐渐提高),进行内存的Training:
内存系列三:内存初始化浅析https://zhuanlan.zhihu.com/p/26387396
内存为什么要Training? 内存初始化代码为什么是BIOS中的另类?https://zhuanlan.zhihu.com/p/107898009
最后得到一个能保证稳定工作的最高频率。这就是最终内存工作频率。CPU厂商在发布MRC的时候,只会保证支持该CPU确定支持的标称最高频率
此外,MRC还对针对特定厂牌、特定内存颗粒做参数优化和修正,这是升级MRC提升内存兼容性原因之所在
微星早期的BIOS,B450\A520\B550\X570搭载RYZEN 5600G/5700G时,内存只能跑2666(XMP不生效),鲁大师侦测不到内存品牌,Thaiphoon Burner台风软件无法获取颗粒信息,BIOS缺陷引发SMBUS运作异常,MRC不能正常初始化,导致了一系列问题
|