Parity bit는 데이터 끝에 1비트를 추가로 실어 전송 중 발생한 비트 오류를 검출하는 방식이다. 데이터 하나(문자·워드)마다 독립적으로 적용된다는 뜻에서 VRC(Vertical Redundancy Check)라고도 부른다. 짝수 패리티(even parity)는 패리티 비트를 포함한 1의 개수가 짝수가 되도록, 홀수 패리티(odd parity)는 홀수가 되도록 패리티 비트 값을 정한다[1].
| 방식 | 패리티 비트를 포함한 1의 개수 |
|---|---|
| 짝수 패리티 | 짝수 |
| 홀수 패리티 | 홀수 |
Example
데이터 1011010(1의 개수 4개)에 짝수 패리티를 적용하면 패리티 비트는 0이 되어 10110100이 전송된다. 같은 데이터에 홀수 패리티를 적용하면 패리티 비트는 1이 되어 10110101이 전송된다.
수신 측은 받은 비트열에서 1의 개수를 세어 합의된 방식(짝수·홀수)과 어긋나면 parity error로 판정한다[1]. 이 검사는 비트 하나가 뒤집히면 반드시 걸러내지만, 두 비트가 동시에 뒤집히면 1의 개수의 짝/홀 성질이 원래대로 돌아와 있어 검출하지 못한다 — 즉 홀수 개의 비트 오류만 검출할 수 있고, 오류가 있다는 사실만 알 뿐 어느 비트가 틀렸는지는 알 수 없어 정정은 하지 못한다.
UART 같은 비동기 직렬 통신은 이런 성격의 패리티 비트를 프레임마다 옵션으로 붙일 수 있게 지원한다[1].
참고문헌
[1]
Microchip Technology, “DS60001107H — PIC32 Family Reference Manual, Section 21: UART”, 2017.