ECC(指令纠错) 内存

  • 2019 年 12 月 16 日
  • 筆記

什么是ECC内存

对于大多数企业来说,消除数据损坏是一项关键任务——这正是 ECC(纠错码)内存的目的。 ECC 是一种指令纠错技术,能够检测并纠正常见的各种内存数据损坏情况,即Error Checking and Correcting

是什么导致错误?

内存错误是电脑内部的电磁干扰造成的。 这种干扰会导致 DRAM(动态随机存取内存)的单位自发地变成相反的状态。 电磁干扰以背景辐射的形式存在,海拔越高,干扰越大。宇宙飞船尤其容易有很高的错误率。

单位错误可能是隐性的,也就是说,它们不会对数据造成严重影响; 但是,内存单元是相互关联的,因此单位变化可能会影响整个系统,从而导致系统出错,尤其是在需要严密运行的系统中。

ECC 内存的工作原理

ECC 内存包含附加内存位和内存控制器,这些控制器用于控制模块上附加芯片中的附加位。 在将数据写入到内存时,ECC 内存使用附加位来存储加密代码,同时存储纠错码Error Correcting Code)。 读取数据时,会将存储的纠错码与读取数据时生成的纠错码进行比较。 如果读取的代码与存储的代码不匹配,会用奇偶校验位对前者进行解密,以确定哪个位出错,然后立即纠正该位。 症状表是一种可以识别并纠正位错误的数学方法。

在数据处理过程中,ECC 内存会使用特殊算法,比如海明码(Hamming Code)算法,不断扫描代码,以检测并纠正单位内存错误。

优势和劣势

在金融等行业以及科学界,ECC 内存对于维持数据完整性至关重要。 大多数服务器内存也是 ECC 内存。 ECC 内存进一步减少了数据崩溃情况,这对于多用户服务器应用程序非常重要。

与非 ECC 内存相比,ECC 内存通常更昂贵,速度可能稍慢。 其他系统组件(例如,CPU 和主板)也必须支持 ECC 内存。

如何看内存是否启用ECC

使用AIDA64Everest软件在内存,找到错误纠正,可以看到 ECC 是否启用或禁用。

by 斯武丶风晴 https://my.oschina.net/langxSpirit