본문 바로가기
까망 동네/IT 용어

패리티 코드와 해밍코드

by 까망 하르방 2024. 11. 22.
반응형

패리티 코드 (Parity Code)

오류 감지하는 간단한 방법 중 하나로

데이터 비트에 하나의 추가 비트를 붙여 전체 비트의 홀수성 또는 짝수성을 유지하는 방식

 

짝수 패리티 (Even Parity): 전체 데이터 비트의 1의 개수를 짝수로 만든다.

홀수 패리티 (Odd Parity): 전체 데이터 비트의 1의 개수를 홀수로 만든다.

* 짝수/홀수 패리티 중 어떤 패리티를 사용하지 미리 동기화 필요

 

ex) 데이터 '1010'

짝수 패리티 비트: 추가 비트 '0' 10100

홀수 패리티 비트: 추가 비트 '1' → 10101

 

구현이 간단하며, 1 비트 오류를 효과적으로 감지하지만

오류를 수정하지 못하며 2비트 이상의 오류는 감지할 수 없다.


해밍 코드 (Hamming Code)

오류 검출뿐만 아니라 오류 수정도 가능한 방식으로,

특정 위치에서 발생한 오류를 찾아내고 수정할 수 있다.

일반적으로 1비트 오류를 정정하고, 2비트 오류를 검출할 수 있습니다.

SEC DED (Single Error Correction | Double Error Detect)

 

 

해밍 코드는 데이터 비트에 추가적인 패리티 비트를 삽입하여 데이터 비트 보호

패리티 비트는 각각 데이터의 특정 위치를 관찰하며 오류 감지

 

 

ex) 데이터 '1011'

데이터 비트 배치: P1, P2, D1, P3, D2, D3, D4

 • P1 | D1, D2, D4의 XOR = (1 ^ 0 ^ 1) = 0 

 • P2 | D1, D3, D4의 XOR = (1 ^ 1 ^ 1) = 1

 • P3 | D2, D3, D4의 XOR = (0 ^ 1 ^ 1) = 0

 → 최종 코드: 데이터와 XOR 계산된 패리티 비트 조합 = 0110011

 

 

해밍 코드는 패리티 코드보다 복잡하지만

수정을 못하는 패리티 코드보다

단일 비트 오류를 수정할 수 있고, 이중 비트 오류를 검출할 수 있기에

데이터 신뢰성 높일 수 있다.

반응형

댓글