查看原文
其他

技嘉DDR5主板「烧」内存 SPD 信息的事件是怎么回事?

wolf uefiblog UEFI社区 2023-12-29
点击上方“公众号” 可以订阅哦!

这一阵技嘉DDR5主板损坏内存条的事情闹得沸沸扬扬。对此技嘉官方进行了回复:

首先声明,我并没有技嘉主板。这里仅仅就从技术角度分析一下事件的起因,和到底出了问题,谁的责任更大一些。仅代表个人推测。

从各种报道和技嘉群里面的信息来分析,情况很清楚:技嘉主板BIOS和GCC(GIGABYTE Control Center,技嘉控制中心)将部分DDR5内存条的SPD信息破坏掉了,导致在技嘉主板上这些内存条识别不出或者识别错误,之后这些SPD损坏的内存条拿到别家的主板上也有很大一部分出现同样状况。这其中责任技嘉我觉得占有八成,而内存条厂家则需要承担两成。为什么这么说呢?为什么出问题都发生在DDR5上(12代或者13代主板,或者AMD主板)?为什么出现问题绝大多数在中国大陆呢?我们一一道来。

DDR5与XMP 3.0

内存条的厂家、容量等基本内容和稳定运行所需要的时序信息,都存储在内存条的SPD上,它一般通过I2C来读取(DDR5后是I3C)。XMP这种“官方超频”信息也存在SPD中,在DDR4的时代还是XMP 2.0,关于SPD和XMP 2.0的更多内容可以参考我的这篇文章,这里不再展开:如何用好你的高端内存条?什么是XMP?

DDR5带来了XMP 3.0,相较之前2.0,在内存SPD数据里面扩展三组内存参数:

来源:JEDEC

其中1组是和原来XMP的静态扩展一样的静态信息,由内存厂家提供。而另外两组则是可以用户在主板BIOS的帮助下,调整到某个理想和稳定超频的状态,存下来,下次可以用的。这就让内存超频变得十分简便,而且增加了很多可玩性。即从原来2组Profile,增加了1+2=3个新的Profile,其中3组是只读Read-Only的,2组是Rewriteable的。

请注意这里的关键词“Rewriteable”,它的出现,除了增加可玩性和扩展性之外,但也增加了风险。它在DDR5的第一次出现,也从某种层面上,触发了今天的故事,也许在某个平行宇宙中,技嘉的声明也会控诉Intel不该搞这么“危险”的功能,导致他被诱惑犯下错误。那么问题来了,XMP 3.0这么危险,为啥别家不出问题?为啥大部爆发在中国大陆呢?

技嘉的矛与盾

问题的大规模爆发首先是大陆贴吧和技嘉主板论坛中,后被外网发现并被报道:

https://tieba.baidu.com/p/8566260317

https://www.tomshardware.com/news/gigabyte-motherboard-firmware-update-saving-your-ddr5-ram-from-corruptionwww.tomshardware.com/news/gigabyte-motherboard-firmware-update-saving-your-ddr5-ram-from-corruption

用户发现买来内存条,用着用着,就会发现识别不出或者识别错误。识别错误可能是基本信息错误如容量错误(如出现300GB以上大容量)等,也可能是JEDEC规定的基础时序信息错误(如0时延);识别不出的时候,拿到别的主板上也大概率同样识别不了。具体多久会发生错误,每个人的时间不确定,有的几天、几周、几个月都有。有的是突然开机发现少内存了,有的是玩游戏时候,产生UCE错误,蓝屏宕机后开机发现内存少了等等。

动手能力强的网友分析发现是SPD信息错误,而不是内存芯片本身被损坏。随后技嘉官方也登出声明,部分证实了这种猜测,并把问题指向“坏”内存条:


最近我们关注到网络上有部分用户对在使用技嘉 D5 主板时会出现内存 SPD 信息错误的问题进行了反馈。

我们非常重视该反馈,并与相关用户进行联系且深入沟通。在经过技嘉工程师不断地测试且逐一排查问题后,我们发现:

1、市面上不同品牌 D5 内存产品,在是否提供“SPD 写入保护”的设置上并未统一。部分内存产品未设置“SPD 写入保护”。

2、未设置“SPD 写入保护”的 D5 内存在与技嘉 GIGABYTE Control Center(下简称 GCC)软件一起使用过程中,有极小的概率会发生 SPD 信息出现错误的情况。经过故障复现,我们已验证该情况仅会影响内存 SPD 固件代码,并不会影响内存硬件本身。只需要重新刷新 SPD 固件即可让内存恢复正常。

解决方案

目前技嘉已针对 D5 主板提供了新版本的 GCC 软件和 BIOS,使用官网最新版本的 GCC 软件和 BIOS 即可规避该问题。我们建议所有技嘉 D5 主板用户更新。

总之就是不是国军不行,而是共军太狡猾,坏内存条害了我和大家啊!是真的吗?

技嘉随后更新了BIOS和GCC,BIOS更新的chang log里面有一条透露了原因:

Enable SPD write protect, help fixing DDR5 compatibility issue due to some module did not introduce JEDEC SPD write protection properly.

注意这里的module(其实应该是复数modules)应该是内存模组的意思,不是有些同学说的BIOS模块。看起来似乎应证了技嘉的官方说法。

的确,根据规范,内存条的I3C Agent普通情况下,在响应写命令的时候,应该只对XMP 3.0两个Rewriteable的Profile区间执行操作,对于其他区域(绝大部分)都应该是拒绝访问的。看起来似乎某些内存条并没有遵循这条规范。

但是,BIOS和GCC也应该只向这两个Rewriteable的区间写入内容,来定制化超频信息或者适应主板特质,而不应该染指其他区间。理论上,写其他部分也是没用的。看起来,技嘉BIOS或者GCC在实现其“黑科技”的时候,有某种Bug,将写的区间越界到了正常Read-only区间,没成想没被拦住,踩到了不应该修改的内容,造成各种问题。而且因为是SPD是非易失的存储,这个破坏被永久保留下来了了。新的BIOS修正,似乎是加了一个WA,在写的时候进行了边界检查,防止写越界。当然这仅仅是猜测。

结论

在一个理想的世界,没有小偷,家家也房门紧闭,双重保证,从而也没有盗窃案发生。但有一天,有人忘关了门,小偷进去闯空门了。如果小偷辩称“谁让他不关门?”,你觉得警察会让他走吗?

技嘉的“只需要重新刷新 SPD 固件即可让内存恢复正常”这对于绝大多数电脑用户都是不现实的,BIOS都不会刷,还会刷SPD?幸亏内存条厂家在不明所以的情况下,大部分还是进行了退换货处理,避免了普通用户的损失。但又能持续多久呢?

技嘉升级BIOS和GCC的解决方案是有效的,建议技嘉用户尽快升级避免损失。最后给大家一个思考,为什么出问题的大都是在中国大陆,而不是在国外?

参考资料



继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存