01计算机组成原理与体系结构
11-校验码
2021-07-22 591 7
简介 图解奇偶校验、CRC、海明校验的原理
1. 校验码的分类
2. 奇偶校验
奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。
奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
奇偶校验,可检查1位的错误,不可纠错。
如果有偶校验,当CPU读取存储的数据时,它会再次把前信息位中存储的数据相加,然后根据校验位的1或者0,判断整个信息是否已被修改。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,奇偶校验却无法检测出双位错误。
3. CRC循环冗余校验
CRC校验,可检错,不可纠错。
循环冗余校验(CRC, yclic Redundancy Check)
CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。
循环冗余校验码编码规律如下:
①把待编码的N位有效信息表示为多项式M(X)
②把M(X) 左移K位,得到M(X)* X ^K,这样空出了K位,以便拼装K位余数(即校验位);
③选取一个K+1位的产生多项式G(X),对 做模2除;
⑨把左移K位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时的CRC码共有N+K位。
把接收到的CRC码用约定的生成多项式G(X)去除,如果正确,则余数为0,如果某一位出错,则余数不为0.不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系