패리티 비트 & 해밍 코드
패리티 비트 (Parity Bit)
•
패리티 비트는 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트이다.
•
문자열 내 1비트의 모든 숫자가 짝수 또는 홀수 인지를 보증하기 위해 전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송하는 방법으로 2가지 종류의 패리티 비트(홀수, 짝수)가 있다.
•
패리티 비트는 오류 검출 부호에서 가장 간단한 형태로 쓰인다.
짝수 패리티
•
데이터의 모든 1의 개수를 짝수로 맞춰야 한다.
•
예를 들어, 1100100의 1의 개수는 3개(홀)이므로, 자동적으로 패리티 비트는 1이 되어 (11100100) 총 1의 개수는 4개(짝)이 된다.
•
만약, 데이터가 중간에 손실되서 11100100이 아닌 11000100이 가게 된다면 데이터가 손실 되었다는 것을 알 수 있다.
홀수 패리티
•
데이터의 모든 1의 개수를 홀수로 맞춰야 한다.
•
예를 들어, 1100100의 1의 개수는 3개(홀) 이므로, 패리티 비트는 0이 된다.
특징
•
2bit의 데이터가 손실되면 알아차릴 수 있다.
•
오류 검출만 할 뿐 수정하지는 않는다.
해밍 코드 (Hamming Code)
•
데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 말한다.
•
패리티 비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다.
•
패리티 비트는 오류를 검출하기만 할 뿐, 수정하지는 않기 때문에 해밍 코드를 활용
생성 규칙
•
2의 n승 번째 자리인 1, 2, 4번째 자릿수가 패리티 비트
•
이 숫자로부터 시작하는 세 개의 패리티 비트가 짝수인지, 홀수인지 기준으로 판별한다.
짝수 패리티의 해밍 코드가 0011011일 때, 오류 수정
1, 3, 5, 7 번째 비트 확인 : 0101로 짝수이므로 ‘0’
2, 3, 6, 7 번째 비트 확인 : 0111로 홀수이므로 ‘1’
4, 5, 6, 7 번째 비트 확인 : 1011로 홀수이므로 ‘1’
역순으로 패리티비트 ‘110’을 10진법으로 바꾸면 ‘6’ 이므로 6번째 비트를 수정하면 된다.
따라서 수정한 데이터는 0011001이다.