728x90

💡 패리티비트 & 해밍코드 💡

데이터 오류 검출 방식

🔍 패리티비트 (Parity Bit)?

시리얼 통신에서 데이터의 오류를 검출하기 위한 일종의 장치 중 하나  
정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트로   
전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다.

짝수 패리티
데이터의 모든 1의 개수를 짝수로 맞춰야 한다.
예를 들어, 1100100 의 1의 개수는 3개(홀수) 이므로, 자동적으로 패리티 비트는 1이 되어(11100100) 총 1의 개수는 4개(짝수) 가 된다.

홀수 패리티
데이터의 모든 1의 개수를 홀수로 맞춰야 한다.
예를 들어, 1100100 의 1의 개수는 3개(홀수) 이므로, 패리티 비트는 0이 된다.

짝수 패리티일 때,
데이터가 중간에 손실되서 11100100 이 아닌 11000100 이 가게 된다면 데이터가 손실 되었다는 것을 알 수 있다.

🔍 패리티비트 특징

  • 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이다.

728x90

'Computer Science > Computer Architecture' 카테고리의 다른 글

6. 파이프라이닝  (0) 2023.06.27
4. 고정소수점 & 부동소수점  (0) 2021.08.02
3. Cache Memory  (0) 2021.07.20
2. CPU  (0) 2021.07.18
1. Structure  (0) 2021.07.14

+ Recent posts