当前位置:首页 > 内存 > 正文

什么是内存的奇偶校验

  • 内存
  • 2024-08-09 11:03:15
  • 8322

一、ECC校验的什么是ECC校验

内存是一种电子设备,在运行过程中难免会出现错误。对于稳定性要求较高的用户来说,内存错误可能会导致致命的问题。内存错误根据其产生原因还可以分为硬错误和软件错误。硬件错误是由于硬件损坏或缺陷导致数据始终不正确且无法纠正;软件错误是随机发生的,例如内存附近突然发生电子干扰等因素都会导致软件错误。发生。
为了检测并纠正内存软错误,在ECC技术出现之前,首先出现的就是内存“奇偶校验”。内存中的最小单位是位,也称为“比特”。位只有两种状态,标记为1和0。每8个连续位称为一个字节。没有奇偶校验的内存的每个字节只有8位长。如果它的任何位存储了错误的值,则存储在其中的相应数据将被修改,从而导致应用程序错误。奇偶校验在每个字节(8位)中添加一位作为错误检测位。当某个字节存储了数据后,其8位存储的数据是固定的,因为这些位只能有1或0两种状态。假设存储的数据用1、1、1、0、0这样的位来标记,1,0,1,然后将每一位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,奇偶校验位设置为1,否则对于奇校验,校验位设置为0,反之亦然。当理器读取存储的数据时,再次将存储的数据的前8位相加,并计算结果是否与校验位一致。所以可以在一定程度上检测出内存错误。奇偶校验只能检测错误,不能纠正错误。同时,虽然同时出现两位错误的概率相当低,但奇偶校验无法检测双精度。位错误。
从上面的分析我们知道Parity内存是通过在原来的数据位上加一位数据位来验证当前8位数据的正确性的。然而,随着数据位的增加,奇偶校验所使用的数据位也随之增加。检查也发生变化。加倍是指当数据位为16位时,应增加2位进行验证,当数据位为32位时,应增加4位,以此类推。尤其是当数据量非常大时,数据出错的概率更大,只能纠正简单错误的奇偶校验方法就显得不够了。正是在此基础上,出现了一种新的存储技术。这就是ECC(ErrorCheckingandCorrection),这项技术也是通过在原始数据位上添加校验位来实现的。区别在于两者的添加方式不同,这也导致两者的主要功能不同。与奇偶校验的区别在于,如果数据位是8位,则必须添加5位用于ECC错误检查和纠正。每次数据位加倍时,ECC仅添加一个校验位,即当数据位增加时。为16位时,当数据位为64位时,ECC位为6位,当数据位为64位时,ECC位为7位,依此类推。每次数据位加倍时,ECC位只会增加。一个。简而言之,ECC可以容忍内存中的错误并纠正它们,使系统能够继续正常运行,而不会被错误中断。ECC具有自动纠正的能力,可以检测并纠正奇偶校验校正器无法检测到的错误位。错误。1.带ECC验证的内存必须是主板支持的,并在BIOS中设置相应的参数。它适用于大多数服务器主板。2、现在厂家推出的低端、入门级十防风服务器所使用的内存也具有ECC功能。
3.使用ECC验证的内存会稍微降低系统性能,但这种纠错对于服务器等应用程序非常重要。带ECC验证的内存比普通内存贵得多。


二、什么是ECC内存?ECC是“ErrorCheckingandCorrecting”的缩写,中文名称是“错误检查与纠正”。ECC是一种能够实现“错误控制和纠正”的技术,就是采用该技术的内存。
要了解ECC技术就必须提到Parity(奇偶校验)。在ECC技术出现之前,内存中最常用的另一种技术是Parity(奇偶校验)。我们知道,在数字电路中,数据的最小单位称为“位”,也称为数据“位”,也是存储器的最小单位,用“1”和“0”表示数据的高低电平信号。在数字电路中,8个连续位就是一个字节,在内存中没有“奇偶校验”就只有8位。错误。具有“奇偶校验”功能的内存会向每个字节(8位)添加一个额外的位以进行错误检测。例如,某个值(1,0,1,0,1,0,1,1)存储在一个字节中,这些位的每一位相加在一起(1+0+1+0+1+0+1+1=5)。如果结果为奇数,则奇偶校验位定义为1(偶校验),否则为0(奇数),反之亦然。当CPU返回读取存储的数据时,将前8位存储的数据加回并计算结果是否与校验位匹配。当处理器发现两者不同时,它会创建一个显示来纠正这些错误。不过奇偶校验是有错误的,而且不一定能够纠正错误,所以带有奇偶校验的内存的主要作用只是“发现错误”,可以纠正一些简单的错误。
通过上面的分析,我们知道奇偶校验存储器通过在原来的数据位上加一位数据位来检查当前8位数据的正确性,但是随着数据位的增加,奇偶校验被用来检查当前8位数据的正确性。check数据位也呈指数增长,也就是说当数据位为16位时,必须添加2位用于控制,当数据位为32位时,必须添加4位,以此类推。尤其是当数据量非常大时,数据出错的概率更大,只能纠正简单错误的奇偶校验方法就显得不够了。正是在这样的背景下,一种新的存储技术应运而生。这就是ECC(ErrorCheckingandCorrection),这项技术也是通过在原始数据位上添加校验位来实现的。区别在于两者的添加方式不同,这也导致两者的主要功能不同。与奇偶校验不同的是,如果数据位是8位,则必须添加5位用于ECC错误检查和纠正。每次数据位加倍时,ECC只增加一个校验位,即当数据位为16位时,当数据位为64位时,ECC位为6位,当数据位为64位时,ECC位为6位。ECC位为7位,依此类推每次数据位加倍时,仅ECC位增加1。简而言之,ECC可以容忍内存中的错误并对其进行纠正,从而使系统能够继续正常运行而不会被错误所中断。ECC具有自动纠正的能力,并且可以检测并纠正奇偶校验错误无法检测到的错误位。