ECC --- Error Correcting Code,错误检查和纠正

news/2025/1/12 8:40:27/

ECC是“Error Correcting Code”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。ECC也可以解释为“error correction or correcting code" or "error checking and correcting")”还可以解释为 Error correction circuit


ECC内存技术


带有奇偶校验的内存的主要功能
  要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会尝试纠正这些错误。但Parity的不足是:当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。
ECC应运而生
  通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应运而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有比Parity更先进的自动识别、更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。


http://www.ppmy.cn/news/628659.html

相关文章

correction

int main() {int a=1,b=2,m=0,n=0,k;k=(n=b<a)

Chapter12 TCP:The Transmission Protocol(Preliminaries)

文章目录 12 TCP: The Transmission Protocol(Preliminaries)12.1 Introduction12.1.1 ARQ and Retransmission12.1.2 Windows of Packets and Sliding Windows12.1.3 Variable Windows: Flow Control and Congestion Control12.1.4 Setting the Retransmission Timeout 12.2 I…

ROS+Gazebo中红绿黄交通灯如何实现?

红灯&#xff1a; 绿灯&#xff1a; 黄灯&#xff1a; 交通灯车道识别&#xff0c;是最简单的自动驾驶仿真。 参考代码如下&#xff1a; #include "GazeboTrafficLight.hpp"namespace gazebo {GazeboTrafficLight::GazeboTrafficLight() {sequence_timestamp_ 0.0;…

idea 用maven打包报错:After correcting the problems, you can resume the build with the command

问题大概&#xff1a; IDEA After correcting the problems, you can resume the build with the command解决方案“ 之前使用的是USE JAVA_HOME,修改成项目的就可以成功build project了。

error: expected declaration specifiers or ‘...’ before numeric constant

今天遇到了这个错误&#xff0c;很奇怪&#xff0c;最终解决了。 可以产生这个错误的示例代码如下&#xff1a; #include <stdio.h>#define VALUE 1int func(int a) {printf("%d\n",a);return 0; }int main() {int func(VALUE);return 0; }编译&#xff1a; …

consider的用法

consider的用法 consider大致有两种含义。含义不同&#xff0c;用法有别。现归纳如下。 一&#xff0e;consider作“考虑”解&#xff0c;常用于以下句型&#xff1a;1&#xff0e; Consider名词/代词/动名词。 You’d better consider my suggestion. 你最好考虑我的建议。I…

【CVPR2020】Semi-Supervised Semantic Image Segmentation with Self-correcting Networks

Abstract 摘要Introduction 介绍Method 方法Ancillary Segmentation Model 辅助分割模型Self-correction module自校正模块No self-correction module 无自校正模块Linear self-correction module 线性自校正模块Convolutional self-correction module 卷积自校正模块 Experien…

Sklearn中的二分类模型可以进行多分类的原理

Sklearn中的二分类模型可以进行多分类的原理 二分类扩展到多分类的方法 从sklearn的源码中可以找到sklearn将二分类模型推广到多分类模型的具体做法&#xff1a; 即比较常用的&#xff1a; one-vs-rest&#xff08;一对多&#xff09;one-vs-one&#xff08;一对一&#xff…