패리티 비트(Parity Bit)
- 데이터 전송 중 발생할 수 있는 오류를 검출하기 위해 사용되는 비트
- 데이터의 무결성을 확인
- 짝수 패리티(Even Parity)
- 데이터 비트에서 1의 개수를 짝수로 만드는 방식
- '1011001'에서 1이 네 번 등장하므로 패리티 비트로 0이 추가되어 '10110010'이 됨
- 홀수 패리티(Odd Parity)
- 데이터 비트에서 1의 개수를 홀수로 만드는 방식
- '1011001'에서 1이 네 번 등장하므로 패리티 비트로 1이 추가되어 '10110011'이 됨
- 오류 검출은 가능하지만 오류가 발생한 비트 수정은 불가능
- 여러 비트에 오류 발생시 검출이 어려움
해밍 코드(Hamming Code)
- 여러 개의 패리티 비트를 사용하여 데이터의 무결성 확인
- 단일 비트 오류 수정 및 다중 비트 오류 검출 및 수정에 사용
- 해밍 코드의 구성
- 데이터 비트와 패리티 비트로 구성
- 패리티 비트는 원래 데이터 비트의 특정 위치를 참조하여 계산
- 각 패리티 비트는 특정 위치의 비트 값들을 XOR 연산을 통해 계산
- 해밍 거리(Hamming Distance)
- 두 개의 이진 문자열 간의 차이
- 이 거리가 3 이상이면 단일 비트 오류 수정 가능
- ex) 4비트 데이터가 '1011'일 때
- 해밍 코드 추가시, 데이터 비트에 3개의 패리티 비트가 추가되어 전체 데이터는 7비트가 됨
- 'P1, P2, 1, P3, 0, 1, 1'
- 해밍 코드의 구성
- P1은 1, 3, 5, 7번째 비트를 참조
- 1 XOR 0 XOR 1 = 0
- P2는 2, 3, 6, 7번째 비트를 참조
- 1 XOR 1 XOR 1 = 1
- P3은 4, 5, 6, 7번째 비트를 참조
- 0 XOR 1 XOR 1 = 0
- 해밍 코드는 '0110011'가 된다.