Parity(奇偶校验)
1、什么是parity?
奇偶校验是一种数据校验机制,用于判断数据在存储过程中是否发生了比特位错误。常用于存储结构中,如RAM。存储结构的最小单元为“字节”,即Byte。每个字节含有8比特,另外增加1比特作为校验位。如下图(1)所示,校验位为所以比特位异或产生,即当8比特有奇数个1时,校验位为1,当有偶数个1时校验位为0。
存储数据时,会对8比特数据进行异或运算得到校验位y0,并且随8比特数据一块存到RAM中。
当读取存储数据时,会对读出的8比特数据进行异或运算得到新的校验位y1,并与校验位y0进行对比,如果y1和y0不一致,则表示数据存取不一致,出现错误。
校验位: y=x0^x1^x2^x3^x4^x5^x6^x7
2、parity有什么特点:
优点:
结构简单,只需异或计算就可以实现,数据量小时(8比特)实现代价小。
缺点:
1、不能修正错误:只知道8比特中有部分比特发生错误,无法判断哪几个比特发送错误。
2、有偶数个比特位时,无法判断出错。如下图所示,x5和x2均发生变化时,校验位仍未1,无法检测出错误。
3、数据位宽较大时实现代价大:如1024比特数据,需要256bit的校验位。
X7
X6
X5
X4
X3
X2
X1
X0
y
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
ECC(错误检查和纠正)
1、什么是ECC
通过上面的分析我们知道Parity机制是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,随着数据位每增加8比特,检验位需要增加1比特。当数据量为256字节时,需要256个比特位,并且出错的数据无法恢复。由此,一种存储检错纠错机制出现了,这就是ECC。ECC同样通过增加校验位来进行错误判断,但是能够进行错误纠正。
2、ECC有什么特点:
优点:
1):大量数据位实现代价低:8比特数据需要5个校验位,256字节(256*8比特)的数据值需要5个列校验位和11行校验位
2)能够纠正错误:在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断
缺点:
1):只能修复1比特错误
当数据只有单比特错误时,ECC能够进行错误修复;超过2比特的数据错误,将无法修复,ECC只能输出多比特错误信号。
2):不保证能检测超过2比特的错误
超过2比特的错误不一定能检测出来
————————————————
版权声明:本文为CSDN博主「IC小鸽」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/icxiaoge/article/details/79996456