04
21

컴퓨터가 32비트니, 64비트니 하는 말을 들어보셨을 겁니다. 이 시리즈에서 쓰는 건 8비트 CPU고요. 이 비트 수가 의미하는 것은 컴퓨터가 한 번에 처리할 수 있는 숫자의 이진법 자릿수입니다. 1비트는 2진수 한 자리이니까 8비트 CPU는 8자리 이진수, 십진수로 0~255까지 셀 수 있고, 16비트는 0~65535, 32비트는 십진수로 0~4294967295, 64비트는 십진수로 약 18 뒤에 0이 18개 붙은 숫자까지 셀 수 있습니다. 마인크래프트 하면서 JVM 인수 건드린다거나 해서 32비트 컴퓨터의 램 설정을 해 보신 분이라면 4GB 이상 설정할 수 없다는 걸 알고 계실 겁니다. 32비트 컴퓨터는 메모리 주소를 이진수 32자리까지밖에 못 쓰는데, 32자리가 4기가에 해당합니다(4 * 2 ^ 30). 64비트 컴퓨터가 쓸 수 있는 메모리 주소는 43억 배 더 커서 램을 왕창 꽂아도 다 인식이 되니 안심해도 좋습니다.

 

우리가 쓰려는 6502 CPU는 계산은 8비트까지 할 수 있고, 메모리 주소는 16비트까지 셀 수 있습니다. 메모리 주소를 환산하면 64KB입니다. 겨우? 라는 생각이 들 정도로 작죠. 제 휴대폰으로 찍은 사진 한 장이 80KB 정도니까요. 하지만 슈퍼 마리오 브라더스 1이 프로그램과 그래픽 데이터를 다 포함해서 겨우 40KB 안에 들어간다는 걸 생각해 보면, 이 글 시리즈를 다 끝낼 때까지 64KB를 채울 수 있을지는 모르겠습니다.

 

8비트 컴퓨터가 한번에 계산할 수 있는 값은 최대가 255이긴 하지만 그렇다고 모든 숫자가 255까지밖에 안 되는 것은 아닙니다. 100 곱하기 100만 해도 255보다 결과가 훨씬 크지만, 8비트 컴퓨터로도 계산할 수 있습니다. 손으로 덧셈을 할 때 1의 자리를 먼저 더하고 그 다음 올림수와 십의 자리를 계산하는 것처럼 숫자를 부분부분 나눠서 계산하면 됩니다. 대신 계산 한 번에 여러 단계가 들어가기 때문에 높은 비트 수의 컴퓨터보다 결과를 얻는 과정이 느려집니다. 이것은 비트 수가 높은 컴퓨터일수록 빠른 이유 중 하나입니다. 다른 이유로는 주소 공간이 크기 때문에 메모리를 더 자유롭게 쓸 수 있다는 점 등이 있습니다.

 

정리

1. 컴퓨터의 비트 수는 컴퓨터가 셀 수 있는 이진수 자릿수의 숫자이다.

2. 컴퓨터의 비트 수는 주소 공간의 크기와 밀접한 관련이 있다.

3. 작은 비트 수의 컴퓨터는 큰 숫자를 계산하는 데 더 긴 시간이 걸린다.

COMMENT