bios的功能不仅仅是填许多填寄存器,也把内存训练的活干了。
那么,内存训练是什么?
内存,就是熟知的ddr3,ddr4等等。
内存训练定义比较深奥,简单来说,就是得到一组对齐、补偿和参考电压参数,来平衡和对冲线路的差异和信号的噪声。
至于内存为什么需要训练,可以看看这篇硬核文章
内存为什么要Training? 内存初始化代码为什么是BIOS中的另类? - 知乎 (zhihu.com)
内存初始化代码一般由芯片厂商提供,Intel管它叫MRC(memory reference code)。
内存训练只有在主板第一次运行bios程序的时候才会运行,训练完后的数据会存在bios里面,在coreboot中存于fmap里面。不动内存条就不用再次内存训练。
如果这个时候把内存条拔下来,会有gpio记录下来,下一次开机重新训练即可。