ecc内存和普通内存区别(ECC和普通内存有什么不同)

在内存的使用过程中,可能因受到硬错误或软错误的影响而导致数据出错,对于普通消费者来说这可能问题不大,但对于企业和数据中心的服务器来说,数据出错将对服务器性能产生很大影响。而为了防止这种错误,一般服务器

在内存的使用过程中,可能因受到硬错误或软错误的影响而导致数据出错,对于普通消费者来说这可能问题不大,但对于企业和数据中心的服务器来说,数据出错将对服务器性能产生很大影响。而为了防止这种错误,一般服务器用的都是 ECC 内存。那么,问题来了,什么是 ECC 内存,它和普通内存又有什么不同呢?

ecc内存和普通内存区别(ECC和普通内存有什么不同)

内存错误

ECC 内存,即 Error-Correcting Code Memory,其中 ECC 是一种检测并纠正单位内存错误的方法。这里,我们又注意到一个问题,内存怎么会犯错呢?

内存错误是存储在内存中的值发生更改的问题。我们知道,内存中的数据以二进制形式存储,值为 1 或 0。如果 1 的值切换成 0,或 0 切换成 1,我们就说内存发生了「位翻转」,而存储在内存中的数据将会发生变化。

举个简单的例子,数字 135 表示为二进制字符串 010000111,如果其中一个值发生翻转,则会呈现以下情况:

010000111=135

110000111=391

011000111=199

010100111=167

000000111=7

根据计算机对这些数据的处理方式,内存的位翻转可能与性能上的小问题一样无害。但另一方面,它们可能是灾难性的,甚至导致整个计算机系统崩溃或执行错误操作。一根 8GB 内存条平均每小时使用会出现 5 个此类错误,对于普通计算机用户来说,影响是难以察觉的,但对于任务密集型服务器来说,这些错误的出现将导致严重后果。

位翻转有许多潜在的原因,最常见的是背景辐射,主要是由宇宙射线产生的中子引起的。宇宙射线是一种高能粒子,通常是质子,以接近光速传播。当宇宙射线撞击原子时,会产生大量中子和其他亚原子粒子,然后这些中子会继续发生二次相互作用,而这些次级中子相互作用被认为是内存位翻转错误的主要原因。

纠错原理

那么,ECC 内存是如何防止这样的错误呢?ECC 内存检测错误的方法是奇偶校验,主要是通过在字节末尾加 0 或 1 来检测一个字节是偶数还是奇数。例如,如果奇偶校验将字节添加到奇数位 7,则奇偶校验为 1,偶数将为 8。如果奇偶校验字节为 0,结果为奇数,则该字节处于损坏状态。

ecc内存和普通内存区别(ECC和普通内存有什么不同)

当然,ECC 存储器的奇偶校验位并不总是 8 位字节,也可以通过二进制循环纠错码生成 7 位代码/64 位字节。这里的意思是,系统每次读取 64 位数据时,都会生成一个 7 位代码。检测的目的是判断代码是否匹配。如果不匹配意味着它有错误,ECC 内存将立即纠正错误。

ECC 内存与普通内存的区别

ECC 内存在外观上与普通内存最大的区别是会在 PCB 板上额外再添加一个芯片来专门负责检查错误并纠正错误。

ecc内存和普通内存区别(ECC和普通内存有什么不同)

不过,ECC 内存带来的不仅是优点,也有一些缺点。与普通内存相比,ECC 内存由于额外的内存芯片及其复杂性而更昂贵。更重要的是,在读取速度方面,ECC 内存比普通内存要慢 2%左右,因为检查内存数据错误需要额外的时间。

当将 ECC 内存应用到服务器时,它会监控内存数据并及时纠正错误。首先,这在一定程度上减少了崩溃的次数,尤其是在无法承受内存数据损坏的设备中,例如科学和金融行业的计算应用程序或服务器。其次,它的数据纠错可以保持数据的完整性,增强系统的稳定性。在数据中心,ECC 内存比普通内存更可靠。

另外,需要知道的是,大多数消费级 PC 硬件并不支持 ECC 内存,比如英特尔和 AMD 的消费级和发烧级 CPU 均不支持 ECC,只有服务器 CPU 支持。

ECC 内存和非 ECC 内存之间没有绝对的判断标准来说哪个更好,需要具体到使用场景中。如果是金融或医疗行业或其他关键数据相关行业,则必须考虑在数据中心服务器中配置 ECC 内存。而如果只是普通的 PC 用户,或者不打算将设备用于重大项目,则可以选择普通内存。


本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
科技百科

骁龙750g是什么档次(一款基于8NM工艺制程打造的芯片)

2023-7-29 0:47:10

科技百科

ddr4和ddr3的区别(电脑内存条选购知识)

2023-7-29 0:47:46

搜索