패리티 비트 & 해밍 코드

김민성·2023년 3월 4일
0

Computer Architecture

목록 보기
5/6

패리티 비트

: 정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트

전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송

  • 종류 : 짝수, 홀수 : 전체 비트에서 (짝수, 홀수)에 맞도록 비트를 정하는 것
  • ex) 짝수 패리티일 때, 7비트 데이터가 1010001 → 1이 총 3개이므로 짝수로 맞춰주기 위해 1을 더해야 함 → 11010001 (맨 앞이 패리티 비트)

해밍 코드

: 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류 정정 코드

패리티 비트를 보고 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다

→ 패리티 비트는 오류를 검출만 하기 때문에 해밍 코드를 활용해 수정까지 가능

방법

  • ex) 짝수 패리티의 해밍 코드가 0011011일 때, 오류가 수정된 코드는?
  • 2^p - 1 ≥ m + p (m : 데이터 비트 개수, p는 수식을 만족하는 가장 작은 수)
  • 총 비트 수 = 7 → 2^n -1 ≥ 7 → 2^n ≥ 8 → n ≥ 3
  • 3을 선택 → 2^3 - 1 ≥ m +3 → m = 4
  • 실제 데이터 : m = 4비트, 패리티 비트 : 7-4 = 3비트
  • 패리티 비트는 앞에서부터 2^n으로 자리 차지
  • 패리티 비트 : 1, 2, 4 / 실제 데이터 : 3, 5, 6, 7 (1011) = 11
  • 3비트(패리티 비트)로 셀 수 있는 숫자는 7까지
    • P1(1번째) = 1인 경우 ⇒ 1010101
    • P2(2번째) = 1인 경우 ⇒ 0110011
    • p3(4번째) = 1인 경우 ⇒ 0001111
    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

0개의 댓글