패리티 비트

패리티 비트(Parity Bit) 오류 검출

패리티 비트는 저장된 데이터의 1bit 오류를 검출하는 코드 방식이다.

패리티 비트에는 홀수(odd, 기수) 방식, 짝수(even, 우수) 방식이 있다.

홀수 방식의 경우는 데이터의 합이 홀수가 되게 삽입하는 비트가 패리티비트가 되며 짝수 방식의

경우에는 데이터의 합이 짝수가 되게 비트를 삽입한다.

패리티 비트를 사용하는 이유

컴퓨터의 하드디스크에 데이터는 실질적으로 0과 1 즉 이진수로 변환되어 저장되는데, 우리가 평소에 보는 문서파일들이나 게임 프로그램도 내부적으로는 컴퓨터가 인식하는것은 0과 1로 이루어진 데이터들이다.

데이터는 기억장치에 특정한 크기단위로 저장되어는데 데이터를 저장 또는 읽어올 때에는 주소를 통해 접근하게 된다.

간단한 예로 120이란 값을 8비트의 공간에 저장했다고 가정해보면, 120이라는 숫자값은 내 부적으로 2진수로 바뀌어 기억장치의 특정 주소 위치에 저장된다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5f80dafa-13bd-4b14-bfee-b37199bda033/Untitled.png

120은 2진수로 1111000이다. 그럼 해당 데이터를 저장했을 때 01111000이 저장된다. 다음과 같이 1비트가 남게 되는데, 왼쪽의 빈 공간은 0으로 채운다. 만약 이 상태에서 오류로 인해 첫번째 1이 0으로 바뀌어버리면 어떻게 될까? 혹은 해당 데이터가 사라져버린다면 어떻게 될까?

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/de6e5571-2bb4-44f0-b442-6caa2c44374f/Untitled.png

00111000이 되어 값을 읽어올 때에는 56이란 값으로 들어게 되고, 이상한 데이터가 되거나 아예 읽어올 수도 없게 될 것이다.

패리티 비트 적용

이 데이터에 짝수 패리티비트를 적용해 보면 다음과 같다. 이전과 같이 120이라는 값을 이진수로 바꾼 후 1111000을 앞에 채워 넣는다. 이번에는 맨 뒤 마지막 비어있는 비트를 패리티비트로 사용한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a25b30f9-1b0e-4975-b376-a4c56399cbb3/Untitled.png

짝수 패리티의 경우 데이터의 합이 짝수가 되게 만들어야 한다. 현재 데이터는 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 으로 짝수이다. 그러므로 맨 뒤 패리티 비트는 0이 된다.

간단하게 1의 개수가 짝수개이면 패리티비트가 0, 홀수개이면 패리티 비트가 1이 된다고 생각하면 된다. 패리티 비트 덕분에 8비트를 모두 조합하면 어떻게 해서든 짝수가 된다. (데이터가 홀수 였다면 패리티에 1이 들어가서 결국 짝수가 된다.)