IT 프로그래밍/논리회로

[논리회로] 패리티 비트(Parity Bit)

기술1 2024. 4. 7. 16:07
반응형

패리티 비트란?

정보의 전달 과정에서 오류가 생겼을 때 검사하기 위해 추가한 비트라고 생각하시면 됩니다. 전송하고자 하는 비트의 끝에 1을 더하여 전송하는 방법으로 2가지의 패리티 비트가 존재합니다(홀수 짝수)


짝수 패리티(even parity) : 데이터에서 1의 개수를 짝수 개로 맞춤

홀수 패리티(odd parity): 데이터에서 1의 개수를 홀수 개로 맞춤


이렇게 하면 하나만 바꿔주면 홀수, 짝수 패리티를 맞출 수 있기 때문에 이런 패리티를 사용하는 것입니다. 패리티함수는 전송 과정에서 에러 검사를 위한 추가비트이며 단지 에러 검출만 할 뿐, 여러 비트에 에러가 발생한 경우에는 검출이 안될 수도 있습니다. 

 

데이터 짝수 패리티 홀수 패리티
A 0 1000001 1 1000001
B 0 1000010 1 1000010
C 1 1000011 0 1000011
D 0 1000100 1 1000100

보면 알 수 있듯이 만약 짝수 패리티의 경우 짝수 개를 맞춰주는 것이며 홀수 패리티의 경우 홀수를 맞춰주는 것을 볼 수 있습니다. 

 

병렬 패리티(parallel parity)

패리티의 블록 데이터에 적용해서 가로와 세로 데이터들에 대해서 패리티를 적용하면 에러를 검출하여 그 위치를 찾아 정정할 수 있습니다. 

이런식으로 병렬을 해서 데이터의 에러의 검출하는 것입니다.짝수 패리티라고  가정했을 때 원래 데이터 블록에서는 오류가 없는 것을 볼 수 있습니다. 하지만 에러가 발생한 블록 같은 경우는 짝수패리티여야 하는데 세로의 개수는 3개, 가로의 개수는 5개여서 에러가 난 곳을 파악할 수 있는 구조입니다. 

 

에러를 검출하기 위해서 송신측에 패리티 발생기를 구성하고 수신측에는 패리티 검출기를 구성하여 그 출력을 보고 에러 여부를 판단합니다. 


짝수 패리티는 Y = 0(에러없음) , Y = 1(에러발생)

홀수 패리티는 Y = 1(에러없음),  Y = 0(에러발생)


이런 식으로 해줄 수 있습니다. 

 

병렬 패리티 문자로 검사할 때 코드의 효율 파악법

 

에러 정정 코드 : 해밍 코드


-에러를 정정할 수 있는 코드

-추가적으로 많은 비트가 필요하므로 많은 양의 데이터 전달이 필요

-데이터 비트와 패리티 비트와의 관계 


2^p-1 - p + 1 <= d <= 2^p - p - 1

(d:,p:)

 

위 공식에 따라 패리티 비트별 사용한 데이터 비트 수의 예시는 다음과 같습니다.

p = 3 -> d = 2 ~ 4
p = 4 -> d = 5 ~ 11
p = 5 -> d = 12 ~ 26

 

예를들면 p = 4일 때, 5 <= d <= 11 이므로 데이터 비트수가 5개 이상 11개 이하이므로 패리티는 4개가 필요합니다. 패리티 비트의 위치는 앞에서부터 2^0, 2^1, 2^2, 2^3, 2^4 .... 번째, 즉 1, 2, 4, 8, 16. .. 번째입니다.

 

데이터 비트는 나머지 위치에 순서대로 들어갑니다.

 

패리티 비트의 위치

위 예시를 통해 해밍 코드를 만들기 위해서 추가되는 패리티 비트의 수는 

 

먼저 데이터 비트 수가 8인 경우 추가하는 데이터 비트의 수는 위 공식을 씁니다.

2^P >= 8 + P + 1

즉 위 식을 만족하는 P의 최솟값은 4이고, 패리티 해밍 코드는 전체 비트 수는 12입니다. 

패리티 비트 체크 범위 및 패리티 비트 값 결정

패리티 비트의 체크 범위는 다음과 같은 규칙으로 결정됩니다.

n번째 패리티 비트는 n 번째에서 시작하며, n비트만큼 포함하고 n비트씩 건너뛴 비트들을 대상으로 패리티 비트 범위 지정 및 각 패리티 비트를 결정한다. 
비트위치 1 2 3 4 5 6 7 8 9 10 11 12
기호 P1 P2 D3 P4 D5 D6 D7 P8 P9 P10 P11 P12
P1영역 *   *   *   *   *   *  
P2영역   * *     * *     * *  
P3영역       * * * *         *
P4영역               * * * * *

 

반응형