
校验位
校验位又称奇偶校验位(英语:parity bit)是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。
基本介绍
- 中文名:校验位
- 外文名:check bit
- 含义:给定位数的二进制数中1的个数
- 主要学者:蔡跃明,徐友云,李明,李天铎
- 又名:奇偶校验位
- 套用学科:计算机学
定义
奇偶校验位有两种类型:偶校验位与奇校验位。
如果一组给定数据位中1的个数是奇数,那幺偶校验位就置为1,从而使得1的个数是偶数。如果给定一组数据位中1的个数是偶数,那幺奇校验位就置为1,使得总的1的个数是奇数。
偶校验实际上是循环冗余校验的一个特例,通过多项式x+ 1 得到1位CRC。
错误检测
如果传输过程中包括校验位在内的奇数个数据位发生改变,那幺奇偶校验位将出错表示传输过程有错误发生。因此,奇偶校验位是一种错误检测码,但是由于没有办法确定哪一位出错,所以它不能进行错误校正。发生错误时必须扔掉全部的数据,然后从头开始传输数据。在噪声很多的媒介上成功传输数据可能要花费很长的时间,甚至根本无法实现。但是奇偶校验位也有它的优点,它是使用一位数据能够达到的最好的校验码,并且它仅仅需要一些异或门就能够生成。参见汉明码中关于其它错误校正码的描述。
使用
由于它很简单,所以奇偶校验位用于许多计算机硬体中,遇到麻烦时能够重新操作或者通过简单的错误检测就能起到很大作用的场合。例如SCSI汇流排使用奇偶校验位检测传输错误,许多微处理器的指令高速快取中也包括奇偶校验位保护。因为指令快取数据是主记忆体数据的副本,所以在发现错误的时候能够抛弃错误数据并且重新取回数据。
在串列通信中,常用的格式是7个数据位、1个校验位、1到2个停止位。这种格式用方便的8位位元组巧妙地适应了所有的7位ASCII字元。也可以用其它的格式表示,8位数据加上1个校验位可以传输任意的8位位元组数据。
在串列通信中,奇偶校验位通常是由UART这样的接口硬体生成、校验的,在接收方,通过接口硬体中的暂存器的状态位传给CPU以及作业系统。错误数据的恢复通常是通过重新传送数据,这个过程通常由如作业系统输入输出程式这样的软体处理的。
奇偶校验块
一些冗余磁碟阵列(RAID)使用奇偶校验块实现冗余。如果阵列中的一块磁碟出现故障,工作磁碟中的数据块与奇偶校验块一起来重建丢失的数据。
下面的图表每列表示一个磁碟,假设A1 = 00000111、A2 = 00000101以及A3 = 00000000。A1、A2、A3异或得到的Ap等于00000010。如果第二个磁碟出现故障,A2将不能被访问,但是可以通过A1、A3与Ap的异或进行重建:
A1 XOR A3 XOR Ap = 00000101
冗余磁碟阵列
A1 A2 A3
Ap B1 B2
Bp C1 C2
C3 C4 Cp
注意:数据块是格式A#,奇偶校验块是Ap。