[계산기 구조] 5. 코드(CODE)

이번에는 데이터를 표현하기 위해 값과 메모리에 표현을 약속하는 코드를 살펴보기로 해요.

ASCII(American Standard Code for Information Interchange) 코드
7비트로 128개의 문자를 표현
맨 앞의 1비트를 Parity Bit를 추가하여 8비트로 사용
영문 알파벳, 숫자, 기호, 제어문자 등을 표현할 수 있다.
컴퓨터 내부의 장치 사이에 통신 제어용으로 사용
Parity BIt(1) + Zone Bits(3) + Digit Bits(4)로 구성

BCD(Binary Coded Decimal) 코드
2진화 10진 코드라고 부릅니다.
6비트로 한 문자를 표현합니다.
IBM에서 개발
영문 소문자를 표현하지 못합니다.
맨 앞의 1비트를 Parity Bit를 추가하여 7비트로 사용
Parity BIt(1) + Zone Bits(2) + Digit Bits(4)로 구성
Digit Bits는 각 비트가 8, 4, 2, 1의 값을 의미합니다.
8421 코드라고도 부릅니다.

EBCDIC(Extended BCD Interchange Code) 코드
BCD를 확장한 코드입니다.
확장 2진화 10진 코드라 부릅니다.
8비트로 256가지 문자를 표현할 수 있습니다.
맨 앞의 1비트를 Parity Bit를 추가하여 9비트로 사용
Parity BIt(1) + Zone Bits(4) + Digit Bits(4)로 구성

Excess-3 코드
BCD 코드에 3을 더하는 코드입니다.
모든 비트가 동시에 0일 때가 없습니다.
6진수로 BCD 코드를 표현한 후에 3을 더한 것이 Excess-3 코드입니다.
자기 보수 코드입니다.

자기 보수 코드
1을 0으로 0을 1로 바꾸었을 때 10진수의 9의 보수를 얻을 수 있는 코드를 말합니다.
10진수에서 9의 보수는 자신과 더해서 9 혹은 99, 999, … 가 나오는 수를 말합니다.
예) 10진수 6, 9의 보수는 3
BCD로 0110
Excess-3으로 1001
1001를 1진 보수 취하면 0110
Excess-3의 0110 을 BCD로 바꾸면 0011 => 10진수 3
따라서 Excess–3은 자기 보수 코드입니다.

Gray 코드
BCD 코드의 인접한 비트를 XOR 연산하는 코드입니다.
첫번째 비트는 BCD 코드값을 그대로 표현합니다.
코드 변환이 쉬움(인접한 코드가 한 비트만 다름)
주변장치에서 숫자를 표현할 때 주로 사용
1비트만 변환하여 다음 수를 만들 수 있어 H/W 오류가 적습니다.
예) 10진수 8
BCD로 1000
Gray 코드로 1100
10진수 5
BCD로 0101
Gray 코드로 1111

Parity Bit 검사
데이터의 오류를 검출하는 방법입니다.
짝수(Even) Parity 검사와 홀수(Odd) Parity 검사가 있습니다.
짝수 Parity 검사에서는 1인 비트가 짝수일 때 정상이고 그렇지 않으면 오류입니다.
홀수 Parity 검사에서는 1인 비트가 홀수일 때 정상이고 그렇지 않으면 오류입니다.