luoht 发表于 2016-3-28 23:29

针对 ECC 内存,开个科普贴吧

本帖最后由 luoht 于 2016-3-29 09:33 编辑

随着移动至强(Xeon)的出现,ECC纠错内存也成为了笔记本的选项。不同网友对此有不同的意见。有的觉得有用,有的觉得没用。正所谓“仁者见仁,智者见智”,正常不过。但为了保持论坛良好的气氛,最好不要用过激的词语,如装13啦,人傻钱多了,之类。

关于 ECC 内存纠错原理,网上的文章很多,可自行搜索。楼主觉得显浅易懂的是这一篇 https://www.pugetsystems.com/lab ... -of-ECC-Memory-520/。由于原文是英文,这里把摘要翻译一下,方便网友。

下图是 ECC 内存和非 ECC 内存的图片。可以看到 ECC 内存多了一个存贮模块,作校检用。


关于检错和纠错原理,需要计算机二进制和逻辑操作(异或)等知识,这里就不再累赘。为什么内存会出错呢?主要的原因是电磁辐射(EMI)。计算机中有许多电子部件,电流通过的时候,产生电磁波,对基于磁技术的产品(如硬盘、内存)会有一定影响。这种影响是暂时性的,并不会对产品造成永久损害。但会造成数据误差(譬如1变成0,或者0变成1)。

下图是 ECC 内存和非 ECC 内存的出错比率。随着生产技术的提高,出错比率逐年下降。但总的来说,ECC 的出错比率要低得多。


下面两张图则是 ECC 内存和非 ECC 内存错的原因。ECC 内存的出错原因主要集中在启动、自检阶段。非 ECC 内存出错原因则集中在“内存错误”(使用阶段)。


那么 ECC 内存有没有缺点呢?当然有。缺点一是比非 ECC 贵。缺点二是效能下降(普遍的说法是比非 ECC 下降1%-2%)。

回到原话题--在笔记本上用 ECC 内存有必要吗?这个其实不算什么话题。就好像版上有个很火帖子,问上 8GB 内存有没必要。对于楼主来说,8GB 根本干不了活。原来在 T530 上的 16GB 也捉襟见肘。因此这次换 P50,直接就上 64GB 了。有的人觉得是装13,我都懒得解释了。对于某些人来说,是装不装13的问题。对于楼主来说,是影响生计的问题。

ECC 的作用,对内存密集型的应用尤其重要。譬如3D、建模、化工、地质行业。不仅需要大内存,而且运算时间长(运算几个小时是常见的事)。如果内存出错,先不说会否造成灾难,光是浪费的几个小时就已经让人抓狂了。


zhangyongtao 发表于 2016-3-28 23:30

谢谢分享

媛媛本本 发表于 2016-3-28 23:37

基本同意,我感觉是8g内,ecc的作用不明显,上了16g,ecc就比较重要了,尤其是运算大户

HOPE 发表于 2016-3-28 23:43

各人的需求不同,也不必在意别人如何评说,但是涉及到人身攻击的言论,论坛规则是有约束的,希望大家相互尊重。

猫尾草 发表于 2016-3-28 23:45

感谢科普,ECC内存作用就是为那些高要求运算的用户准备的。(当然3D建模什么的不在乎时间的话ECC确实是最好的选择,毕竟最稳,往往这些大户也确实是需要服务器级别工作站用户【双路E5 ECC内存套组 128GB内存】)

ShareDuck 发表于 2016-3-28 23:47

感谢科普。
能否继续科普一下,为何一般用户在使用过程中没有发现内存出错了呢?系统有容错性??

luoht 发表于 2016-3-28 23:52

ShareDuck 发表于 2016-3-28 23:47
感谢科普。
能否继续科普一下,为何一般用户在使用过程中没有发现内存出错了呢?系统有容错性??

与应用程序有关。

譬如,有的应用程序不是内存密集型的,也许没有使用到发生错误的内存区域。有的应用程序自己有校检功能。

对于内存密集型的应用程序,一来是命中的机率很高。二来是,如果要应用层来做校检,效率要下降得更多。

luoxiong720928 发表于 2016-3-29 00:01

哪里有卖单条 16GB ECC DDR4 笔记本内存?

ivex 发表于 2016-3-29 00:07

3g内存+32位系统标准配置路过学习....

ShareDuck 发表于 2016-3-29 00:18

luoht 发表于 2016-3-28 23:52
与应用程序有关。

譬如,有的应用程序不是内存密集型的,也许没有使用到发生错误的内存区域。有的应用 ...

:)感谢你的回复,我是搞软件开发的,我平时倒也没注意过这个问题,代码也没进行过这方面的处理。那么看来应该是Windwos本身在底层处理了这些错误了。

endward 发表于 2016-3-29 01:15

感谢科普

gghgeva 发表于 2016-3-29 02:20

谢谢普及,以前对这两个概念很模糊,现在至少知道那些应用场合需要ECC内存了

xmchx239 发表于 2016-3-29 06:33

感謝朋友分享,是不是服務器要求高保真所以往往選用ECC內存啊?
說實話,我也是裝x上了16G,不過PS還是用得到

think坏了 发表于 2016-3-29 06:51

学习了 有道理

maj 发表于 2016-3-29 07:54

楼主此篇解释到位,终于清晰了。

fxp2000 发表于 2016-3-29 08:04

学习学习!希望以后的科普知识越来越多

wiseinfo 发表于 2018-1-1 19:27

正在了解ECC,
Z77+3770K+16 G跑了5年多了,SQLSERVER,上百个数据库,心里毛毛的,

riggzh 发表于 2018-1-1 20:04

wiseinfo 发表于 2018-1-1 19:27
正在了解ECC,
Z77+3770K+16 G跑了5年多了,SQLSERVER,上百个数据库,心里毛毛的,

开发用用倒是无所谓,一旦涉及到生产环境,虽然SQL Server对内存出错有一定的校验能力,但是最好还是ECC内存

chenwuhua 发表于 2019-1-15 13:37

学习一下。

zhangdelin68 发表于 2019-1-15 14:35

感谢科普!学习

我来学习学习 发表于 2019-5-2 15:18

ECC还是必要的

爱红星猫 发表于 2019-5-2 16:10

哪里可以买到EEC内存

爱红星猫 发表于 2019-5-2 16:46

爱红星猫 发表于 2019-5-2 16:10
哪里可以买到EEC内存

只找到了两三家,有推荐了的吗

aegean 发表于 2020-4-25 17:51

很好的科普帖子
页: [1]
查看完整版本: 针对 ECC 内存,开个科普贴吧