Parity (Parity Bit, VRC) — 데이터 끝에 1비트를 추가하여 1의 개수를 짝수 또는 홀수로 맞추는 가장 단순한 에러 검출 기법. VRC(Vertical Redundancy Check)라고도 불리며, UART의 기본 에러 검출 수단으로 사용된다.
원리
송신: 데이터의 1 개수를 센 뒤, 짝수 패리티 또는 홀수 패리티 규칙에 맞도록 패리티 비트 1개를 추가해 전송.
수신: 수신된 비트열 전체의 1 개수를 세어 규칙 위반 여부로 오류 판정.
| 방식 | 규칙 |
|---|---|
| 짝수 (Even) | 패리티 포함 1의 개수가 짝수가 되도록 패리티 결정 |
| 홀수 (Odd) | 패리티 포함 1의 개수가 홀수가 되도록 패리티 결정 |
예시 (짝수 패리티)
- 데이터
1111001(1이 5개, 홀수) → 패리티 1 추가 → 전송11110011(1이 6개, 짝수). - 데이터
1110001(1이 4개, 짝수) → 패리티 0 추가 → 전송11100010(1이 4개, 짝수).
수신측 검출 예
짝수 패리티 설정 후 11110010 수신:
- 1의 개수 = 5개, 홀수 → 규칙 위반.
- 데이터 전송 과정에서 1비트 오류 발생을 확인.
활용 분야
- UART(Universal Asynchronous Receiver/Transmitter) — 프레임당 패리티 비트 옵션.
- ASCII 코드 — 7비트 문자 + 패리티 1비트 = 8비트 전송에 적합.
- 저속·저비용 통신 또는 Checksum·CRC와 결합된 다층 보호의 일부.
한계
Parity는 가장 저렴한 에러 검출 수단이지만 두 가지 근본 한계가 있다:
- 짝수 개의 비트 오류는 검출 불가 — 오류 2개가 상쇄되어 1의 개수 parity가 보존됨.
- 오류 위치·수정 불가 — 오류 발생 여부만 알 뿐, 어느 비트인지 또는 몇 비트인지 알 수 없음.
이 한계 때문에 자동차 버스에서는 Parity 단독 사용보다는 Checksum(LIN), CRC(CAN, CAN FD, 차량 Ethernet, FlexRay) 같은 더 강력한 검출 수단을 사용한다. 또한 오류 정정이 필요한 경우 Hamming Code 등 ECC를 사용한다.