[알고리즘]

패리티 비트(parity bit)를 사용한 에러 검출방법

Neo Park 2012. 9. 5. 14:48

 

Truth table을 보시면 이해가 되실건데...

A,B 2개의 입력이 각가의 게이트에 들어간다면 


XOR는 다음과 같습니다. 

 A
 0
 0 1
 1 1
 1 0

 

쉽게 말해 1 이 홀수 개 일때는 1, 짝수개 일때는 0 입니다. 

어떤 2진수를 사용하던지 1의 갯수만 상관이 있으니까 비교를 기능을 사용할 수 있습니다. 

 


XNOR는 위의 반대이죠 

 A
 0 1
 0 0
 1 0
 1 1

 

 

두 논리 식은 보통 간단한 에러 검출을 할 때 많이 사용하는데요 

 

예를 들어 통신에서 보내는 쪽에서 010101을 보냈습니다. 

이 6개 비트를 전부 중복하여 XOR를 적용하면 

1이 3개 이므로 1이 되죠?  마지막에 계산된 1을 같이 보냅니다. 

그런데 받는 쪽에서 뭔가 잘못되어 010001이 왔습니다. 

마지막에 보낸 에러검출코드 1도 같이 왔겠죠?

받는쪽에서도 똑같이 수신된 데이터를 가지고 XOR를 적산합니다.

 해보니 1이 두개라 0이 됩니다.  받은 에러검출 코드는 1인데 받은 데이터로 계산을 해보니 0입니다. 

그럼 뭔가 데이터가 잘못되었음을 알 수 있으므로 다시 데이터를 요청하는 것이죠 

이건 아주 기본적인 통신 에러 검출 방법이랍니다