포스트

[Computer Architecture] Parity Bit & Hamming Code

패리티 비트 & 해밍 코드


패리티 비트

  • 패리티 비트는 정보 전달 과정에서 오류가 발생했는지 검사하기 위해 추가하는 비트이다.
  • 전송하려는 데이터의 각 문자에 1비트를 더하여 전송한다.
  • 종류: 짝수 패리티, 홀수 패리티
    • 짝수 패리티: 데이터의 모든 1의 개수가 짝수가 되도록 패리티 비트를 설정한다.
    • 홀수 패리티: 데이터의 모든 1의 개수가 홀수가 되도록 패리티 비트를 설정한다.
  • 예를 들어, 짝수 패리티에서 7비트 데이터가 1010001이라면, 1의 개수는 총 3개이므로 짝수로 맞추기 위해 1을 더해야 한다. 따라서, 데이터는 11010001이 됩니다 (맨 앞의 1이 패리티 비트이다).

해밍 코드

  • 해밍 코드는 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 의미한다.
  • 패리티 비트는 오류를 검출할 수 있지만 수정할 수 없기 때문에, 패리티 비트를 보고, 해밍 코드를 사용하여 1비트 오류를 정정한다.
  • 해밍 코드는 2의 n승 번째 자리인 1, 2, 4 번째 자릿수가 패리티 비트라는 것에서 시작한다. 이 숫자로부터 시작하는 세 개의 패리티 비트가 짝수인지, 홀수인지를 검사하는 기준이 된다.
  • 예를 들어, 짝수 패리티의 해밍 코드가 0011011일 때, 오류가 수정된 코드를 찾는 방법은 다음과 같다:
    1. 1, 3, 5, 7 번째 비트 확인: 0101 → 짝수이므로 ‘0’
    2. 2, 3, 6, 7 번째 비트 확인: 0111 → 홀수이므로 ‘1’
    3. 4, 5, 6, 7 번째 비트 확인: 1011 → 홀수이므로 ‘1’
  • 위의 결과에서 패리티 비트 ‘110’을 도출할 수 있다. 이를 10진법으로 변환하면 ‘6’이 되므로, 6번째 비트를 수정해야 한다. 따라서, 정답은 0011001이 된다.
  • 이러한 방식으로 해밍 코드를 사용하면 데이터 전송 중 발생한 단일 비트 오류를 감지하고 수정할 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.