对于企业和数据中心的服务器而言,将数据中的错误降至最低是关键任务,这就是 ECC(纠错码)内存的目的。

ECC 是一种检测并纠正单位内存错误的方法。单位内存错误是服务器输出或生产中的数据错误,错误的存在会对服务器性能产生很大影响。

有两种类型的单位内存错误:硬错误和软错误。

硬错误

硬错误是由物理因素引起的,例如温度变化过大、电压应力或对内存位带来的物理应力。

软错误

当数据写入或读取与最初预期不同时,就会发生软错误,例如主板上的电压变化、宇宙射线或放射性衰变会导致内存中的位翻转。由于位以电荷的形式保留其编程值,因此这种类型的干扰会改变存储位的电荷,从而导致错误。在服务器中,有多个地方可能会发生错误:存储驱动器中、CPU 内核中、通过网络连接以及各种类型的内存中。

对于必须不惜一切代价避免错误、数据损坏和/或系统故障的工作站和服务器,例如在金融领域,ECC 内存通常是首选内存。

以下是 ECC 内存的工作原理。在计算中,数据通过比特(计算机中的最小数据单位)接收和传输,比特以二进制代码表示,使用 1 或 0。

当位组合在一起时,它们会创建二进制代码或“字”,它们是在内存和 CPU 之间寻址和移动的数据单元。例如,一个 8 位的二进制代码是 10110001。

对于 ECC 内存,有一个额外的 ECC 位,称为奇偶校验位。这个额外的奇偶校验位使二进制代码读取 10110001 0,其中最后一个零是奇偶校验位,用于识别内存错误。如果一行代码中所有 1 的和为偶数(不包括奇偶校验位),则该行代码称为偶校验。无错误代码总是具有偶校验。但是,奇偶校验有两个限制:它只能检测奇数个错误(1、3、5 等)并允许偶数个错误通过(2、4、6 等)。Parity 也无法纠正错误——它只能检测到错误。这就是 ECC 内存发挥作用的地方。

ECC 内存在向内存写入数据时使用奇偶校验位存储加密的代码,同时存储 ECC 代码。读取数据时,将存储的 ECC 代码与读取数据时生成的 ECC 代码进行比较。如果读取的代码与存储的代码不匹配,则通过奇偶校验位对其进行解密以确定哪个位出错,然后立即纠正该位。综合症表是一种识别这些位错误然后纠正它们的数学方法。

随着数据的处理,ECC 内存不断使用特殊算法扫描代码,以检测和纠正单位内存错误。

在金融行业等关键任务行业中,ECC 内存可以发挥巨大作用。想象一下,您正在编辑客户的机密账户信息,然后与其他金融机构交换这些数据。当您发送数据时,假设二进制数字被某种类型的电子干扰翻转。

其他金融机构将收到的二进制代码可能是 100100011,它传达的信息与您最初的预期不同——这是一个错误。由于电子干扰,第三位数字已从 1 翻转为 0。因此,前 8 位的总和现在总计为 3——这甚至不是奇偶校验,这意味着您发送的机密数据有被损坏的风险(或者您的系统有系统崩溃的风险)。但是,如果安装了 ECC 内存,它将能够检测错误并通过将第三个二进制数字改回 1(原始代码)来纠正错误。

通过检测和纠正单位错误,ECC 服务器内存有助于保持数据的完整性,防止数据损坏,并防止系统崩溃和故障。

在关键任务服务器和工作站中使用 Crucial ECC 内存。