패리티 비트(Parity Bit)란?

데이터 비트열에 덧붙여 1의 개수의 홀짝을 맞추는 1비트. 1의 개수를 짝수로 하는 것이 짝수 패리티, 홀수로 하는 것이 홀수 패리티이며, 값은 데이터 전체 비트의 배타적 논리합으로 구할 수 있다. 수신 측에서 홀짝을 조사하면 홀수 개의 비트 오류는 검출할 수 있지만 짝수 개의 오류는 검출할 수 없으며, 어느 비트가 잘못되었는지도 알 수 없다. UART 통신이나 메모리, 레지스터의 보호 등에 쓰이며, 검사 범위가 서로 겹치는 여러 패리티를 조합하면 해밍 부호와 같은 오류 정정 부호가 된다.

일본어 명칭: パリティビット

패리티 비트(Parity Bit)은(는) 시스템 구성과 신뢰성 설계, 정보 이론과 부호의 기초, 논리 회로 등 8개 분야의 연습 문제 14개에 나와요.

분야: 정보 이론과 부호의 기초

계산 방법

짝수 패리티에서는 데이터의 1의 개수가 홀수이면 패리티 비트를 1, 짝수이면 0으로 합니다. 예를 들어 7비트 데이터 1011001은 1이 4개이므로 짝수 패리티 비트는 0입니다. 회로에서는 모든 비트를 배타적 논리합 게이트의 트리에 통과시키기만 하면 구할 수 있습니다.

수직 수평 패리티

데이터를 표처럼 늘어놓고 각 행과 각 열에 패리티를 붙이면, 1비트 오류라면 홀짝이 맞지 않는 행과 열의 교점으로 위치를 알 수 있어 정정할 수 있습니다. 이처럼 검사 범위가 서로 겹치는 여러 패리티를 조합하는 것이 해밍 부호 등 오류 정정 부호의 기본 개념입니다.

RAID의 패리티

RAID 5는 여러 디스크의 같은 위치에 있는 데이터의 배타적 논리합을 패리티로 기록합니다. 어느 한 대가 고장 나도 나머지 데이터와 패리티의 배타적 논리합으로부터 잃어버린 데이터를 다시 계산할 수 있습니다. 어디가 없어졌는지 알고 있는 경우(소실)에는 패리티 하나로 복원까지 할 수 있음을 보여 주는 예입니다.

도전해 보기: 패리티 비트(Parity Bit) 관련 문제

7비트 데이터 1011001에 짝수 패리티 비트를 붙일 때 패리티 비트의 값은?

  1. A1
  2. B0
  3. C데이터와 관계없이 항상 1
정답과 해설 보기

정답: B. 0

짝수 패리티에서는 패리티 비트를 포함한 1의 개수가 짝수가 되도록 합니다. 1011001에는 1이 4개 있어 이미 짝수이므로 패리티 비트는 0입니다. 수신 측에서 1의 개수가 홀수이면 1비트 오류를 검출할 수 있지만, 2비트 동시 오류는 검출할 수 없고 어느 비트가 틀렸는지도 알 수 없습니다. 정정까지 필요한 메모리에서는 여러 패리티를 조합한 ECC(해밍 부호 등)가 사용됩니다.

8비트 데이터에 짝수 패리티 비트를 1개 붙인, 합해서 9비트를 보낸다. 각 비트가 서로 독립적으로 1%의 확률로 잘못될 때, 패리티 검사로 검출할 수 없는 오류가 일어날 확률에 가장 가까운 것은?

  1. A약 0.01%
  2. B약 0.34%
  3. C약 8.6%
정답과 해설 보기

정답: B. 약 0.34%

패리티 검사에서는 홀수 개의 비트가 잘못되면 검출할 수 있지만, 짝수 개의 비트가 잘못되면 1의 개수의 홀짝이 변하지 않으므로 검출할 수 없습니다. 검출할 수 없는 오류의 대부분은 2비트 오류이며, 그 확률은 9C2 × 0.01² × 0.99⁷ = 36 × 0.0001 × 0.932 ≈ 0.0034입니다. 4비트 이상의 오류 확률은 이보다 훨씬 작으므로, 합해도 약 0.34%입니다.

자주 묻는 질문

패리티로 놓치는 오류는 얼마나 일어나나요?

각 비트가 독립적으로 잘못된다면, 놓치는 것은 주로 2비트 오류입니다. 비트 오류율이 작으면 2비트가 동시에 잘못될 확률은 더욱 작으므로, 패리티로도 많은 경우에 도움이 됩니다. 다만 잡음이 연속으로 들어오는 버스트 오류에서는 짝수 개의 오류가 일어나기 쉬우므로 CRC가 더 적합합니다.

짝수 패리티와 홀수 패리티는 어떻게 구분해서 사용하나요?

검출 능력은 같습니다. 홀수 패리티에서는 데이터가 모두 0일 때도 패리티 비트가 1이 되므로, 선이 끊어져 모든 비트가 0에 고착된 것과 같은 고장도 오류로 검출할 수 있습니다. 어느 쪽을 사용할지는 통신의 양쪽에서 미리 정해 둡니다.

해설 속 패리티 비트(Parity Bit)

패리티 비트(Parity Bit)이(가) 나오는 문제 (14)

  1. 7비트 데이터 1011001에 짝수 패리티 비트를 붙일 때 패리티 비트의 값은?
  2. 8비트 데이터에 짝수 패리티 비트를 1개 붙인, 합해서 9비트를 보낸다. 각 비트가 서로 독립적으로 1%의 확률로 잘못될 때, 패리티 검사로 검출할 수 없는 오류가 일어날 확률에 가장 가까운 것은?
  3. 데이터 비트열에 1의 개수가 짝수가 되도록 짝수 패리티 비트를 하나 붙여 보낸다. 수신 측에서 1의 개수를 조사하는 검사의 성질로 올바른 것은?
  4. 4비트 데이터 4행에 대해, 각 행의 오른쪽 끝에 그 행의 짝수 패리티 비트를, 마지막에 각 열의 짝수 패리티를 늘어놓은 행을 붙여 보냈다(수직 수평 패리티). 수신한 비트는 1행 1011 1, 2행 0100 0, 3행 1100 0, 4행 0101 0, 패리티 행 0100이었다(각 행의 오른쪽 끝 1비트가 행의 패리티). 1비트만 잘못되었을 때, 잘못된 비트의 위치는?
  5. 32비트 데이터에, 1비트 오류를 정정하고 2비트 오류를 검출할 수 있는 SECDED 부호를 붙인다. 해밍 부호의 검사 비트 수 r은 2^r ≥ 데이터 비트 수 + r + 1을 만족하는 최솟값이며, SECDED에서는 여기에 전체 패리티를 1비트 더한다. 필요한 검사 비트 수는?
  6. 115200 bps UART에서 데이터 8비트, 패리티 없음, 스톱 비트 1(8N1) 형식으로 보낼 때, 1초 동안 보낼 수 있는 바이트 수에 가장 가까운 것은 무엇입니까?
  7. 1대당 초당 200회의 랜덤 입출력(IOPS)이 가능한 디스크 4대로 RAID5를 구성했다. 작은 데이터의 랜덤 쓰기를 1회 수행할 때마다 이전 데이터와 이전 패리티의 읽기, 새 데이터와 새 패리티의 쓰기를 합쳐 4회의 입출력이 필요하다고 하고, 캐시의 효과는 고려하지 않는다. 쓰기만 수행할 때 RAID5 전체에서 처리할 수 있는 쓰기 횟수로 올바른 것은?
  8. 2입력 XOR(배타적 논리합) 게이트의 출력이 1이 되는 것은 언제입니까?
  9. 양자 오류 정정에서 고전적인 오류 정정처럼 '같은 데이터를 3개 복사하여 다수결을 취하는' 방법을 그대로 쓸 수 없는 이유로 올바른 것은?
  10. 깊이 16워드인 비동기 FIFO에서 쓰기 포인터와 읽기 포인터를 주소보다 1비트 많은 5비트로 하는 이유로 올바른 것은?
  11. IEEE 754 부동소수점수를 구성하는 3가지 부분의 조합으로 올바른 것은 무엇입니까?
  12. RAID1에 대한 설명으로 적절한 것은?
  13. 용량 4 TB의 디스크 4대로 RAID5를 구성했다. 데이터를 기록할 수 있는 용량으로 올바른 것은?
  14. 용량 8 TB의 디스크 6대로 RAID6을 구성했다. 데이터를 기록할 수 있는 용량과, 데이터를 잃지 않고 견딜 수 있는 동시 고장 디스크 대수의 조합으로 올바른 것은?

관련 용어

RAID ECC(오류 정정 부호) 해밍 부호(Hamming Code) UART 양자 오류 정정(Quantum Error Correction) 큐비트(Qubit) 비동기 FIFO 그레이 코드(Gray Code) IEEE 754 가수(Mantissa)

용어집으로 돌아가기