My Boundary As Much As I Experienced

패리티 비트(Parity Bit)와 해밍코드(Hamming Code) 본문

Computer Basics

패리티 비트(Parity Bit)와 해밍코드(Hamming Code)

Bumang 2023. 8. 1. 09:29

패리티 비트란?

패리티 비트(Parity Bit)는 정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트를 말한다.

즉, 오류 검출을 위해 전송하고자 하는 데이터의 끝에 1비트를 더하여 전송하는 방법이다.

(1바이트(8비트) 구조에서 피리티 비트는 7비트 크기의 ASCII 코드를 제외한 나머지 1비트이다.)

 

120이라는 수가 있다고 해보자

 

실수로 맨 앞의 1이 소실 되면 56으로 읽힌다.

이걸 방지하기 위해 1의 갯수가 몇 개 였는지 확인하는 패리티비트를 만들어 1bit 할당한다.

짝수면 0, 홀수면 1 을 할당한다.

 

그러면 1bit 정도 손실되어도 예측가능하다. (패리티 비트가 짝수라고 했으니 손실된 데이터는 1이겠지? 식으로)

데이터 송수신 과정에서 일어날 수 있는 데이터 손실을 어느 정도 예방해준다.

 

2bit가 손실되면 곤란할거같은데.. 1이 2번 빠지면 결국 홀짝이 유지되어서 에러 없음으로 나오지 않을까?

=> 많은 데이터가 손실되었을때는 패리티 비트는 오류 발생 여부만 알 수 있지 오류를 수정할 수는 없다는 단점이 있다.

 

그냥 데이터가 손실되었으니 다시 보내달라고 말해줄 정도의 안전장치이다.

해밍코드란?

데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 말한다. 패리티비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다. (패리티 비트는 오류를 검출하기만 할 뿐 수정하지는 않기 때문에 해밍 코드를 활용)

 

해밍 코드를 이용하면 에러 비트의 위치뿐만아니라 정정도 가능하다.

이진수의 각 자리수를 더욱 분할하여 패리티 코드를 촘촘히 심고 에러를 검출하여 수정할 수 있게 한 것 같다.(부정확)

 

더보기

짝수 패리티의 해밍 코드가 0011011일때, 오류 수정

1, 3, 5, 7번째 비트 확인 : 0101로 짝수이므로 '0'
2, 3, 6, 7번째 비트 확인 : 0111로 홀수이므로 '1'
4, 5, 6, 7번째 비트 확인 : 1011로 홀수이므로 '1'

역순으로 패리티비트 '110'을 10진법으로 바꾸면 '6'이므로 6번째 비트를 수정하면 된다.
따라서 수정한 데이터는 0011001이다.

 

'Computer Basics' 카테고리의 다른 글

운영체제(Operating System)란?  (0) 2023.08.07
ARM 프로세서란?  (0) 2023.08.07
고정소수점과 부동소수점  (0) 2023.08.01
캐시메모리(Cache Memory)  (0) 2023.07.24
CPU의 명령어 처리 사이클  (0) 2023.07.24