CPU 숫자 인식
컴퓨터 구조
컴퓨터 구조를 공부하면서 알게된 내용을 요약해서 작성해보자.
숫자0과 양의 정수
- 숫자 0이 생기면서 아라비아 숫자체계가 위치 기수법으로 표현이 가능해졌다.
- 205 = 2 * 100 + 0 * 10 + 5 * 1
- 컴퓨터 시스템의 2진법도 위치 기수법을 사용한다.
- 숫자 5 = 1 * 2^2 + 0 * 2^1 + 1 * 2^0
- 비트 k개 사용 시 정수 2^k개를 나타낸다.
- 범위는 0 ~ 2^k - 1
- 이를 부호 없는 정수라고 한다.
부호 있는 정수
- k가 4라면 정수 16개 표현 가능하다. 부호가 있다면 절반은 양수, 절반은 음수로 표현한다.
- 부호 없는 정수 : 0 ~ 15
- 부호 있는 정수 : 1 ~ 7, -1 ~ -7
- 최상위 비트에 정수 부호를 나타낸다. 0이면 양수, 1이면 음수
- 0010 = +2, 1010 = -2
부호-크기 표현
- 0010이 +2를 의미, 최상위 비트를 1로 변경 해서 1010이 -2를 의미한다.
- 가장 간단하고 직접적이며 인간의 사고 방식에 가깝다.
- 최고의 설계는 아니다.
- 인간 사고 방식과 매우 유사한 이 표현 방식을 부호-크기 표현이라고 한다.
1의 보수
- 0010 +2를 뒤집어 1101 -2로 표시하는 방식이다.
간단하지 않은 두 수 더하기
- 2 + (-2) = 0010 + 1010 = 1100이 된다. 부호-크기 표현 방식에 따르면 -4이고 이는 모순이다.
- 1의 보수로는 2가 1101, -2가 0010 으로 변환, 0010 + 1101 = 1111로 -0이다. 모순은 아니다.
- 부분-크기 표현, 1의 보수 모두 회로 설계의 복잡도가 증가한다.
2의 보수
- 숫자 2, 0010을 1의 보수로 바꾸고 1101, 여기에 1을 더하면 2의 보수다. 즉 0010 -> 1110
- -0이 없다.
- -8 ~ 7 범위의 숫자를 표시한다.
- 1의 보수로 표현한 양수에 1을 더하면 2의 보수에서 대응하는 음수가 된다.
CPU는 정말 숫자를 알고 있을까?
- CPU는 인간 개념을 이해 하지 못하며, 인간이 제어해서 주어진 작업을 처리한다.
- CPU는 끝까지 자신의 입력과 출력을 이해를 못한다.
- CPU는 숫자를 이해하거나 인식하는 것이 아니라, 단순히 이진수 형태의 데이터를 처리하고 조작하는 기계적인 작업을 수행하는 것이다.
- 컴퓨터가 텍스트 파일을 읽을 수 있는 것처럼 보이지만 실제로는 텍스트를 이해하는 것이 아니라, 파일의 데이터를 바이너리 형식으로 처리하는 것과 비슷하다.