티스토리 뷰

정보처리기사 2과목 전자계산기 구조 중요 개념 정리

전자계산기 구조 과목에서 중요한 개념 중 하나가 바로 자료를 표현하는 코드의 종류 구별입니다.

컴퓨터 상에서 모든 기능과 연산 작용은 코드를 통해 이뤄지고 나타나는데, 따라서 어떤 코드가 사용되는지 구별하고 비교할 수 있는 것이 매우 중요합니다. 

코드는 자료를 표현하는 규칙성이자 문법이며, 모든 컴퓨터 상의 의미와 데이터는 코드라는 문법을 통해 우리에게 전달되므로 코드의 종류를 이해하여 구현하는 것은 매우 중요한 작업입니다.

자료 표현 코드의 종류를 알아보고, 그중 오류 검출용 코드인 패리티 검사 코드와 해밍 코드에 대해 자세히 알아보는 것으로 넘어가려고 합니다.

이미 기출 문제에서도 출제가 되었듯이, 패리티 비트의 해밍 코드 전환 과정을 이해하고 응용할 수 있어야 하기 때문입니다.

문제를 풀기 위해서는 2진법에 대해서도 이해가 필요합니다.

1. 자료 표현 코드의 종류

- BCD 코드 : 대표적인 가중치 코드로, 문자코드인 BCD에서 Zone 부분을 생략한 형태입니다. 10진수 1자리의 수를 2진수 4Bit로 표현하고, 4Bit의 2진수 각 Bit가 8(2^3), 4(2^2), 2(2^1), 1(2^0)의 자리 값을 가지므로 8421 코드라고도 합니다.

- Excess-3코드(3초과 코드) : BCD 코드에 3을 더하여 만든 코드이며, 대표적인 자보수 코드이고 비 가중치 코드입니다.

- Gray 코드 : BCD 코드의 인접하는 비트를 X-OR 연산하여 만든 코드입니다. 1Bit만 변화시켜 다음 수치로 증가시키기 때문에 하드웨어적인 오류가 적습니다.

- 패리티 검사 코드 : 코드의 오류를 검사하기 위해 데이터 비트 외에 1Bit의 패리티 체크 비트를 추가하는 것으로 1Bit의 오류만 검사할 수 있는 코드입니다. 패리티 검사 코드는 코드에서 1인 Bit의 수가 홀수가 되도록 0이나 1을 추가하는 홀수 패리티와 코드에서 1인 Bit의 수가 짝수가 되도록 0이나 1을 추가한 짝수 패리티로 나뉩니다.

- 해밍 코드: 오류를 스스로 검출하여 교정까지 가능한 코드이나, 1Bit의 오류만 교정할 수 있습니다. 데이터 비트 외에 에러 검출 및 교정을 위한 잉여 비트가 많이 필요합니다. 해밍 코드에서 2의 n승에 해당하는 순서의 비트는 오류 검출을 위한 패리티 비트입니다.

2. 해밍 코드의 오류 검출

위에서 정의하였듯이 해밍 코드의 2의 n승 번째 비트는 오류를 검출하기 위한 패리티 비트입니다.

해밍 코드를 이해하는 데 가장 중요한 개념은 바로 규칙성을 이해하는 것입니다.

코드의 규칙성을 이해하면 그 어떤 해밍 코드가 나와도 바로 전체적 형태를 이해할 수 있을 것이기 때문입니다.

규칙성은 다음과 같습니다.

n번째의 패리티 비트는 n번째 비트에서 시작하여 n개의 비트를 포함하고 다시 n개의 비트를 건너뛰어

그다음에 나오는 비트들 중 n개의 비트를 포함하는 방식을 계속적으로 행하여 패리티 비트를 결정합니다.

이와 관련된 15년도 1차 필기 문제를 풀며 개념을 쉽게 이해할 수 있습니다.

[2015년 1차 정보처리기사 필기 26번] 짝수 패리티 비트의 해밍 코드를 0011011을 받았을 때,

오류가 수정된 정확한 코드는? (답: 0011001)

>>우선 2의 n승 번째 자리인 1, 2, 4번째 자리의 수가 패리티 비트라는 것으로부터 시작합니다.

그리고 각 자리의 숫자로부터 시작하는 세 개의 패리티 비트가 짝수인지 홀수인지를 기준으로 오류를 판별할 수 있습니다.

(1) 1, 3, 5, 7(1부터 시작하고 1 건너뛰고 다시 1자리 포함하는 것을 반복) 번째 자리의 코드는 '0101'이고

이 숫자들을 더하면 짝수이므로 패리트비트 '0'을 도출할 수 있습니다.

(2) 2, 3, 6, 7(2부터 시작하고 2 건너뛰고 다시 2자리 포함) 번째 자리의 코드는 '0111'이고 합하면 홀수이므로

패리티 비트 '1'을 도출합니다.

(3) 4, 5, 6, 7(4부터 시작하고 4포함 후 끝) 자리의 코드는 '1011'로 홀수이므로 패리티 비트 '1'을 도출합니다.

위의 과정을 거쳐 2진법으로 패리티 비트 110을 도출할 수 있는데, 이 값은 10진법으로 '6'이므로 위에 주어진 0011011의 오류 위치는 6번째 자리인 '1'입니다. 따라서 옳게 수정한 코드는 0011001이라고 할 수 있습니다.

해밍 코드의 개념을 이해하고 패리티 비트를 도출하여 오류를 검출하는 과정이 이미 기출문제에 나온 만큼 코드에 대한 이해도를 높인다면 다음 시험에 나올 수 있는 관련 문제를 대비할 수 있을 것입니다.

가장 중요한 과정은 해밍 코드에서 패리티 비트를 도출하는 과정이므로 이를 이해하는 것이 가장 중요합니다.

해밍 코드와 패리티 비트는 밀접한 관련이 있으므로 개념이 익숙해질때까지 반복 학습하기를 추천합니다.

감사합니다. :)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday