Post

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는 숫자를 이해하거나 인식하는 것이 아니라, 단순히 이진수 형태의 데이터를 처리하고 조작하는 기계적인 작업을 수행하는 것이다.
  • 컴퓨터가 텍스트 파일을 읽을 수 있는 것처럼 보이지만 실제로는 텍스트를 이해하는 것이 아니라, 파일의 데이터를 바이너리 형식으로 처리하는 것과 비슷하다.