什么是奇偶校验位?

2025年5月26日 | 阅读10分钟

奇偶校验位是一种基本而有效的机制,用于确定数字电路数据传输过程中或计算机文件系统中数据存储和检索过程中是否发生错误。它是一个附加到二进制字符串上的额外位,使得 1 位的总数要么是偶数(偶校验),要么是奇数(奇校验)。

这种方法有助于发现数据传输或存储过程中可能发生的错误,这是计算机科学和电信工程中的一个重要概念。奇偶校验位通常在数据需要严格保护的情况下很有用,例如存储在内存中以及通过网络传输时。

奇偶校验位是一种基本机制,其主要任务是提供最低级别的错误检测。在这种情况下,发送方通常根据数据中 1 的数量来计算奇偶校验位。接收方随后验证接收到的数据及其奇偶校验位,并进行比较以诊断是否存在错误。

计算出的奇偶校验值与接收到的奇偶校验值不相等,这意味着传输过程中可能发生了错误。这是一种验证数据正确性的基本方法,只需几秒钟,但对于单比特错误非常有效。

它不允许编辑数据或检测多比特错误,但由于其实现相对简单和开销低,仍然很受欢迎。它被用作更复杂的错误检测和纠正技术的基础。

奇偶校验位的类型

奇偶校验位有两种,如下所示

What is a Parity Bit

1) 偶校验

  • 定义:在偶校验方案中,添加奇偶校验位是为了使数据和奇偶校验位中 1 位的总数计算为偶数。
  • 计算:要计算奇偶校验位的值,如果数据中 1 位的数量为偶数,则奇偶校验位设置为 0。如果它包含奇数个 1 位,则执行模二运算,奇偶校验位设置为 1。
  • 示例:对于二进制数据 1011001,有四个 1 位(偶数),因此奇偶校验位为 0,得到 10110010。同样,如果五位数字是 1011011,例如,由于有五个 1 位,这是奇数,奇偶校验位是 1,使其成为 10110111。
  • 错误检测:接收方比较 1 位的总数。然而,像任何其他计算机一样,它们也有可能出错;当计数是奇数时就会发生这种情况。

2) 奇校验

  • 定义:根据奇校验方案,附加奇偶校验位以表示 1 的总数是奇数。
  • 计算:如果在表示一个或奇数个 1 位的数据位置中存在 0,则奇偶校验位取值为 0。如果八个二进制数字包含偶数个 1 位,则奇偶校验位的值设置为“1”。
  • 示例:对于二进制数据 1101001,尽管 1 位的数量是四个(偶数),但奇偶校验位是 1,这使得二进制数是 11010011。在 110101 的情况下,有四个 1,这是“偶数”操作;因此,净奇偶校验位是“0”,使总字符串为 1101010。
  • 当获得 1 位的总数时,接收方进行错误检测。即使在某些数字计数器中,计数值达到偶数,也假定发生了错误。

奇偶校验位如何工作?

奇偶校验位计算

使用奇偶校验位的过程从发送方计算奇偶校验位开始,借助要传输的比特中的数值数据。发送方应用一个计数数据中存在比特数量的过程。之后,根据使用哪种奇偶校验(偶数或奇数),发送方必须设置所选的奇偶校验位,以使比特字符串中 1 位的总数(包括奇偶校验数)具有所需的奇偶校验。如果数据是 1101001,并且应用偶校验,则发送方计算前面有四个 1,并在数据后面放置一个奇偶校验位 0,使其成为 11010010。在使用奇校验的情况下,奇偶校验位将是 1,然后二进制数是 11010011。

数据传输

当奇偶校验位添加到数据中时,包含数据和奇偶校验位的整个二进制消息将通过信道传输。这可能是有线、无线或光纤网络连接类型,可以实现数据和语音从一个地方到另一个地方的传输。

添加奇偶校验位最重要的特性是接收站能够对数据传输过程进行初步错误检查。这种方法的特点是简单,使其适用于需要实时处理的应用程序。

接收方的错误检测

接收方然后检查给定数据以进行奇偶校验。它用于计算接收到的数据中“1”的数量,包括奇偶校验位。如果接收到的数据中 1 位的数量等于数据量或其奇数值,则没有错误,并且数据是无错误的。

但是,如果获得的计数不等于预期的奇偶校验,则可以得出结论,传输时存在错误。如果接收到的字符串是“11010010”并且预期是偶校验,则接收方计算出四个 1,因此得出结论接收到的数据是正确的。如果它收到二进制字符串,程序会因为奇数计数而识别出错误。

奇偶校验位的局限性

然而,当大多数数据损坏时,这些奇偶校验位就不那么有用了,它们的主要缺点如下。它们无法纠正错误或多位错误,也无法在传输数据时执行奇偶校验。例如,如果在传输过程中翻转了两位,奇偶校验可能仍然正常,因此不会检测到错误。由于这些限制,系统将奇偶校验位与其他更高级别的过程(如校验和或汉明码)结合使用。

奇偶校验位的应用

奇偶校验位有各种应用,如下所述

1) 计算机内存系统

奇偶校验位也已应用于计算机内存系统,特别是RAM(随机存取存储器)。在奇偶校验内存中,每个字节将包含一个额外的单个位,称为奇偶校验位,以帮助检测存储或检索数据时可能发生的错误。

这在通常与严格监控电流和其他特性(如数据中心和服务器)相关的领域中尤其重要。如果任何内存模块发生奇偶校验错误,它可以通过纠错码内存的规定生成警报信号或纠正和更换信号,纠错码内存实际上可以纠正单个错误甚至检测双重错误。

2) 网络协议

在网络领域,奇偶校验位用于不同的协议以检查数据段的状态。例如,在使用以太网帧时,可以将奇偶校验位用作帧校验序列 FCS 的一部分,以检查已传输帧的错误。

这种应用对于网络设置至关重要,因为需要丢弃或重复传输的数据包可以很容易地被发现。通过添加奇偶校验位,通过网络进行数据通信变得更加可靠,因为任何到达目的地的数据都是准确的。

3) 数据存储系统

奇偶校验位也用于数据存储系统,特别是在称为 RAID(独立磁盘冗余阵列)的条件下。在使用奇偶校验的 RAID 级别中,例如 RAID 5,奇偶校验块被计算并写入不同的磁盘。这使得系统能够在涉及的磁盘在此过程中发生故障时恢复数据。

此外,奇偶校验信息确实意味着通过使用其余数据和奇偶校验位来重建丢失数据的可能性。奇偶校验位的概念也证明了在提高数据可靠性方面的有用性,因此在存储系统中变得有用,从而成为当今存储策略中的标准。

高级技术

What is a Parity Bit
  • 校验和:校验和是一种常见的错误检测方案,当根据传输的数据计算单个值时发生。为了确保数据完整性,发送方然后获取数据段的二进制等效项,将它们求和并与数据一起发送。接收方也计算校验和并将其与收到的校验和进行比较。
    当传播的数据与原始数据相同时,则它是无错误数据。否则,就会发生错误。校验和是通用网络实用程序(例如TCP/IP)的组成部分,用于在信息传输过程中保持信息的数据完整性。然而,校验和不一定能识别所有错误,特别是当更多位发生变化导致完全不同的校验和时。
  • 循环冗余校验 (CRC):ODD 不如 CRC 有效,但其算法与 CRC 不同,CRC 提供多项式除法来检测原始数据中的变化。发送方在此过程中通过将数据视为多项式并将其除以另一个称为生成多项式的多项式来创建 CRC 值。
    此除法的其余部分是 CRC 值,在传输之前将其添加到数据中。以下过程也针对接收到的数据和接收到的 CRC 执行,其中接收方执行多项式除法以除以接收到的数据和 CRC。
  • Reed-Solomon 码:Reed-Solomon 码是一种用于数据块的特定代码,能够纠正多个错误。一些应用包括计算机磁盘、CD、DVD 和二维码。它涉及使用更大的符号块,其中插入了可变数据,以便可以检索丢失或侵入的符号。
    为了解决这种错误,Reed-Solomon 码证明是有用的,特别是当几个连续位受到影响时。由于可纠正错误的数量很高,这些代码可能用于卫星通信和通过其他不可靠信道进行数据传输。
  • 低密度奇偶校验 (LDPC) 码:LDPC 码是结合了简洁节点网络和图形模型来纠正错误并具有稀疏奇偶校验矩阵的代码。它们用于当今的通信模式,如无线网络和数字电视。
    LDPC 码非常有效,并在纠错能力方面提供接近最佳的性能,几乎达到香农极限。编码和解码都由一系列结构化算法组成,这些算法增加了成功解码原始数据的概率。LDPC 码对于快速传输数据和保持数据准确性极其有利。

结论

借助奇偶校验位,可以在各种数字通信和数据存储过程中提供有效的错误检测方法。这些改进确保了不同应用领域(例如网络和内存系统)的高精度,这得益于更好的错误检测和纠正方法。

常见问题解答 (FAQ)

1) 什么是奇偶校验位?

奇偶校验位是附加到二进制数据字符串的另一个位,用于在数据传输或存储时协助检测错误。它使得数字中 1 位的总数要么是偶数(偶校验),要么是奇数(奇校验)。由于每次接收数据时都会检查奇偶校验位,因此它被认为是最简单的错误控制方法之一。

2) 偶校验与奇校验有何不同?

奇校验意味着数据中 1 位总数加上奇偶校验是奇数,而偶校验则相反。例如,如果数字包含偶数个“1”,则偶校验为 0;如果包含奇数个“1”,则奇偶校验为 1。

另一方面,奇校验将位设置为获得奇数和作为加法的结果。由于两种方法都用于检测循环错误,但它们根据系统提供。

3) 奇偶校验位可以合并到哪里?

奇偶校验位被用于许多应用程序,包括计算机中的内存系统、UART 以及以太网等网络系统。它协助接收方进行一些检查并确认接收到的信息的真实性。此外,奇偶校验位还用于 RAID 系统进行数据存储,以便在磁盘故障时轻松纠正错误。

4) 奇偶校验位如何计算?

奇偶校验位是根据二进制数据信息中存在的 1 的计数来导出的。对于偶校验,如果 1 位的数量是偶数,则奇偶校验位设置为 0,而如果它是奇数,则奇偶校验位设置为 1。对于奇校验,设置与此相反;如果计数是偶数,则奇偶校验位设置为 1,如果奇数,则设置为 0。5)

5) 奇偶校验位可以纠正错误吗?

奇偶校验位不能纠正错误,它们的功能主要是作为错误检测机制。如果奇偶校验失败,系统将请求重复数据。它无法确定哪个位出错或纠正它。为了纠正错误,需要像汉明码或 Reed-Solomon 码这样的技术,因为它们可以检测和纠正数据中的某些类型的错误。