패리티 비트(parity bit)란 정보의 전달 과정에서 오류 발생 여부를 검사하기 위해 추가된 비트이다. 전송하고자 하는 데이터의 끝에 1비트를 더하여 송수신 하는 방식으로 사용한다.

패리티 비트의 종류는 전송하고자 하는 데이터에 포함된 1의 개수에 따라서 짝수 패리티와 홀수 패리티, 2가지가 있다.


예를 들어 ASCII코드 A 를 나타내는 1000001 을 전송하고자 할 때,

홀수 패리티를 사용한다면 1000001 + 1 (1의 개수가 총 3개로 홀수를 맞춰 준다)

짝수 패리티를 사용한다면 1000001 + 0 (1의 개수가 총 2개로 짝수를 맞춰 준다)


송신 호스트는 다음과 같은 방식으로 데이터를 전송한다. 이때 수신 호스트도 7비트까지의 데이터를 보고 패리티 검사 방식(짝수, 홀수)에 따라 패리티 비트를 계산한 결과와 실제 받은 데이터 값을 비교하고 값이 같다면 오류가 없다고 판단하고, 값이 다르다면 오류가 있다고 판단하는 방식이다. 이렇게 오류가 있는 데이터를 받았을 경우에는 송신 측에 다시 데이터를 요청하는 방식으로 안정적인 통신을 할 수 있게 해주는 장치이다.

패리티 비트의 한계점

하지만 패리티 비트는 오류를 검사만 할 수 있을 뿐, 수정하지 못한다는 한계점을 가지고 있다. 그리고 만약 두 개의 비트가 오류 전송 될 경우 데이터는 서로 다르지만 같은 패리티 비트를 가지기 때문에 이 때는 오류를 제대로 검사할 수 없다. 즉 오류 비트가 홀수 개일 경우에만 오류를 검사할 수 있다는 한계점이 있다.

병렬 패리티

이런 한계점을 보완하기 위해 패리티를 가로 세로로 구성되는 데이터 블록에 적용하여 에러 위치를 찾아 정정할 수 있도록 만든 것이 병렬 패리티이다.

병렬 패리티는 아래 표에서와 같이 각각의 가로 1바이트에 대해 패리티를 만들고 각각의 세로 1바이트에 대해 패리티를 구성하여 블록 단위로 전송하면 가로와 세로에 대해 각각 패리티를 검사함으로써 에러를 찾아내고 정정할 수 있다.

전송된 데이터 블록 중에서 한 비트의 에러가 발생하면 가로와 세로 패리티의 특정 부분에 패리티가 맞지 않게 되며 아래 표에서와 같이 두 부분이 마주치는 곳에서 에러가 발생함을 알 수 있음에 따라 이를 정정할 수 있다.

참고문헌: '디지털 논리회로 이해', 오창환 저, 한국학술정보(주)

참고문헌: '디지털 논리회로 이해', 오창환 저, 한국학술정보(주)

+ Recent posts