패리티 비트
패리티 비트(parity bit)는 데이터의 전송이나 저장 과정에서 오류가 발생했는지 확인하기 위해 추가되는 비트이다. 데이터 비트열에 1의 개수를 짝수 또는 홀수로 맞추도록 설정되며, 가장 단순한 형태의 오류 검출 코드 중 하나이다.
작동 방식
패리티 비트의 작동 방식은 다음과 같다.- 규칙 설정: 데이터를 보내는 측과 받는 측은 미리 짝수 패리티 또는 홀수 패리티 중 하나를 사용하기로 약속한다.
- 패리티 비트 계산 및 추가 (송신 측): 데이터를 보내는 측은 전송할 데이터 비트열에 포함된 1의 개수를 센다. 설정된 규칙에 따라 전체 비트(데이터 비트 + 패리티 비트)에서 1의 개수가 약속된 짝수 또는 홀수가 되도록 패리티 비트 값을 결정(0 또는 1)하여 데이터의 끝에 추가한다.
- 예시 (데이터: 10110):
- 짝수 패리티 사용 시: 데이터 비트열의 1은 3개(홀수)이므로, 패리티 비트를 1로 설정하여 전체 1의 개수가 4개(짝수)가 되도록 한다. 전송 데이터는 '101101'이 된다.
- 홀수 패리티 사용 시: 데이터 비트열의 1은 3개(홀수)이므로, 패리티 비트를 0으로 설정하여 전체 1의 개수가 3개(홀수)가 되도록 한다. 전송 데이터는 '101100'이 된다.
- 예시 (데이터: 10110):
- 오류 검출 (수신 측): 데이터를 받는 측은 수신된 전체 비트열(데이터 비트 + 패리티 비트)에 포함된 1의 개수를 센다. 이 개수가 약속된 규칙(짝수 또는 홀수)과 일치하는지 확인한다.
- 규칙과 일치하면 오류가 없다고 판단한다.
- 규칙과 일치하지 않으면 오류가 발생했다고 판단한다.
종류
패리티 비트는 설정 규칙에 따라 두 가지 종류로 나뉜다.- 짝수 패리티(Even Parity): 데이터 비트와 패리티 비트를 포함한 전체 비트열에서 1의 개수가 항상 짝수가 되도록 패리티 비트를 설정하는 방식.
- 홀수 패리티(Odd Parity): 데이터 비트와 패리티 비트를 포함한 전체 비트열에서 1의 개수가 항상 홀수가 되도록 패리티 비트를 설정하는 방식.
장점 및 한계
패리티 비트 방식은 구현이 매우 단순하고 데이터 오버헤드(추가되는 비트 수)가 적다는 장점이 있다. 그러나 다음과 같은 중요한 한계를 가진다.- 단일 비트 오류만 검출 가능: 데이터 전송 중 단 하나의 비트만 변경(0->1 또는 1->0)된 경우에만 오류를 정확히 검출할 수 있다.
- 짝수 개의 비트 오류는 검출 불가능: 만약 데이터 전송 중 2개, 4개 등 짝수 개의 비트에서 오류가 발생하여 동시에 값이 변경된다면, 전체 1의 개수는 여전히 약속된 규칙(짝수 또는 홀수)을 만족하게 되어 오류가 발생했음을 감지할 수 없다.
- 오류 정정 불가능: 패리티 비트는 오류가 '발생했다'는 사실만 알려줄 뿐, 어떤 비트에서 오류가 발생했는지 또는 올바른 값이 무엇인지는 알 수 없다. 따라서 오류를 스스로 정정하는 기능은 없다.