-
[문제해설] 2진수 '1000'의 짝수 패리티 해밍코드를 구하시오.전자계산기조직응용기사/실기 필답형 기출문제 해설 2021. 9. 7. 19:28반응형
전자계산기조직응용기사 실기 필답형 기출문제 (해밍 코드) - 2017년1회
2진수 '1000'의 짝수 패리티 해밍 코드를 구하시오.
- 문제 해설 -
해밍 코드는 오류 검출 코드 중 하나이며, 최대 2비트 오류를 감지하거나 1비트 오류를 정정할 수도 있습니다.
이러한 해밍 코드는 데이터 비트에 체크 비트를 삽입하여 생성합니다.
데이터 비트는 본 문제에서 '1000'에 해당하는 원래의 데이터입니다. 체크 비트는 패리티 비트(parity bit)라고도 부르며, 다음의 규칙에 따라 삽입하면 됩니다.
즉, 패리티 비트는 1, 2, 4, 8, 16... 번째 비트 위치를 가집니다. 그럼 그 사이 빈 공간에 데이터 비트를 차례로 넣습니다.
P를 패리티 비트, D를 데이터 비트일 때, 7비트의 해밍 코드는 다음과 같이 구성됩니다.
해밍 코드의 길이는 제한이 없지만, 시험에서는 10비트 이하로만 출제됩니다. 그럼 우선 위 표에 문제에서 주어진 데이터 비트 '1000'을 넣어보겠습니다.
여기까지만 해놓고, 잠깐 패리티 검사 코드(parity check code) 대해서 알아보겠습니다.
단순한 패리티 검사 코드는 원래의 코드에 한 비트를 더해서 만들어지는데, 전체 비트의 1의 개수가 홀수나 짝수로 맞추어주는 것입니다. ASCII 코드(7bit) 1101100에 짝수 패리티 코드를 추가하면 01101100 이 됩니다. 전체의 1의 개수를 짝수로 맞추어주기 위해 0을 좌측에 추가한 것입니다.
기본적인 패리티 검사 코드는 이와 같이 전체 비트를 검사 대상으로 패리티 비트의 값을 결정하지만, 해밍 코드는 이보다는 좀 복잡합니다. 해밍 코드에서 각각의 패리티 비트의 검사 범위는 다음과 같습니다.
복잡해 보이지만 간단합니다. 파란색 돋보기 표시가 있는 부분이 각각의 패리티 비트의 검사 범위입니다.
P1의 경우 검사의 범위가 1, 3, 5, 7,...
P2의 경우 검사의 범위가 2, 3, 6, 7, 10, 11,...
P4의 경우 검사의 범위가 4, 5, 6, 7, 12, 13, 14, 15,...
이제 규칙이 보이죠?
패리티 비트의 위치가 n이라면, 자신을 포함하여 n개가 검사 범위에 속하고, 그다음 n개의 비트는 건너뛰고, 다시 n개의 비트를 검사 범위에 넣습니다.
그럼 문제로 돌아가서 P1의 값을 구해보겠습니다.
패리티 비트 P1의 검사범위는 위 표의 색칠한 부분입니다. 짝수 패리티이므로, 검사 범위의 비트의 1의 값이 짝수가 되려면 P1의 값은 1입니다.
패리티 비트 P2의 검사범위는 위 표의 색칠한 부분입니다. 짝수가 되려면 P2의 값은 1입니다.
패리티 비트 P3의 검사범위는 위와 같습니다. 1이 하나도 없습니다. 이럴 때는 0개를 짝수로 합니다. 그래서 P3는 0입니다.
이제 3개의 패리티 비트를 모두 구했습니다. 이 값들을 자신의 자리에 넣고 데이터 비트와 같이 써주면 정답인 '1110000'이 됩니다.
https://youtube.com/playlist?list=PLboXycXmAIDt4ObBRPVj29BuD2d27oRnO
반응형'전자계산기조직응용기사 > 실기 필답형 기출문제 해설' 카테고리의 다른 글