运行频率是由谁决定的?
金买来的DDR4 4700内存为什么只能运行在2400Mhz?为什么CPU标称***支持2400,却有很多主板号称支持高达3300的内存,难道内存控制器不是在CPU里面吗?如果CPU***支持2400, 主板号称支持3300,我买的内存条号称支持4700,最终内存工作频率是多少呢? 这么多令人困扰但又十分有趣的问题!我相信大多数电脑玩家,包括很多老鸟都不能很笃定的回答这些个层层深入的问题。在假装镇定的胡乱回答后如果被追问为什么,好像只有尿遁一条路了。 作为最合适回答这个问题的BIOS/UEFI从业者,我们需要带领大家了解Intel/AMD和硬件提供商(包括主板和内存厂商)在产业链中扮演的角色。知道了这些,自然围绕内存的小伙伴们谁主导谁的问题就会水落石出了。 我的内存谁做主? 众所周知,现在内存控制器都被整合在CPU这个支持4000的内存,插在支持3200的主板上,配上仅仅***2400的i7 CPU,***到底内存工作在哪个频率呢?要回答这个看似矛盾的问题,我们的要从围绕内存的硬件厂商合作关系说起。 业态 一款CPU标称支持的内存频率是由硬件和软件两方面所决定的。硬件的限制自不待言,软件在这里却扮演更重要的角色。这里的软件就是指BIOS里面的内存初始化参考代码(MRC,Memory Reference Code)。它一般由CPU厂商(Intel/AMD)开发,并经过大量测试。MRC在运行的时候会读取内存条上SPD(serial presence detect)的信取方式是通过SMBus,一种I2C总线的扩展。SMbus的地址在很多Intel的平台上是A0、A2、A4和A6(四根DIMM的情况)。详细SMBus的内容我们今后再单独介绍,本文就不再赘述了。 SPD里面记录了DIMM的厂商的ID,型号等等信息,这就是为什么MRC会知道内存是哪家厂商生产的。MRC后来会通过BIOS的其他部分将该信息通过SMBIOS表信息告诉操作系统,这样大家才能在系统信息里面看到内存型号。不法经销商有时会通过刷新SPD内容欺骗MRC,进而欺骗消费者。
SPD里面还记录了内存重要的时序信息。关于时序等信息,请参考我的知乎文章和参考资料1(注意1中缺乏DDR4的内容)。我们也可以用Rw-everything软件来查看SPD的内容。下面就是我的台式机DIMM0 (A0)的SPD信息: (编辑:黄山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |