Computer Science/컴퓨터기초

[광박사]Computer Science/컴퓨터기초 : [2] 32비트 컴퓨터와 64비트 컴퓨터의 차이점

광박사 2019. 7. 4. 21:13

32bit 컴퓨터와 64bit 컴퓨터의 레지스터

 

: 32bit 컴퓨터 CPU의 레지스터 처리값 32bit

: 64bit 컴퓨터 CPU의 레지스터 처리값 64bit

 

레지스터는 cpu가 사용하는 데이터를 담는 그릇이며, cpu는 레지스터를 이용해서 데이터를 처리한다.

 

32bit 컴퓨터와 64bit 컴퓨터는 컴퓨터 설계부터 이용하는 레지스터의 그릇의 값이 차이가 납니다. 이러한 그릇의 차이에 의해서 컴퓨터 앞에 32비트 64비트라는 수식어가 붙게 됩니다. 예전에 16비트 컴퓨터는 레지스터의 크기가 16비트겠죠.

 

 

 

비트와 바이트의 정리

 

컴퓨터는 전기 신호를 받아들이기 때문에 전기의 ON, OFF 두가지 상태(1과 0)을 통해서 모든 것을 표현해야 합니다. 그에 맞는 단위가 필요했는데 0과 1 두가지로만 표현되는 bit라는 단위입니다. bit는 컴퓨터가 인식하는 최소 단위입니다.

 

bit는 단위가 너무 작기 때문에 이 bit를 일괄적으로 묶어 표현할 단위가 필요하게 됩니다. 그것이 byte인데 8개의 bit를 묶어서 표현하는 단위가 1byte입니다.

 

 

우선 디스크나 메모리 공간의 비트단위로 쪼개어져 있지만 주소값의 단위는 byte라는 걸 알아두세요.

 

 

저장장치의 용량이 커져감에 따라서 일괄적으로 묶을 단위들이 필요했고, 우리가 흔히 쓰는 GB도 그 연장선에 있는 단위입니다. 하드웨어의 성능이 점점 발전하면서 이런 처리단위가 점점 커지고, 기존과 차이가 생기면서 생기는 문제는 흔히 윈도우에서는 호환성 문제라고 합니다. 같은 프로그램하더라도 32비트용 64비트용을 따로 만들기도 하죠. 이런 문제는 메모리 인식범위에도 영향을 주게 됩니다. 윈도우 7는 32비트와 64비트가 따로있는데, 64비트를 지원하는 CPU의 경우 32비트도 보통 지원합니다. 32비트 CPU에 64비트 OS를 지원하게 하기도 하지만, 이 경우는 단순히 설명하기 어렵지만 대략 주소값을 전달할 때 한번에 전달하는 걸 두번에 나눠 전달해야 합니다. 성능이 떨어질 수 밖에 없습니다.

 

 

32bit 컴퓨터는 왜 메모리를 4GB를 사용할까?

 

레지스터는 한번에 처리할 수 있는 용량이 32bit이기 때문에, 한번에 표현가능한 수의 최대값이 2의 32승이 됩니다.

레지스터가 한번에 표현할 수 있는 값의 크기는 CPU가 한번에 인식하여 처리할 수 있는 주소값의 범위가 됩니다. 위에 4,294,967,296을 참고하여, 32bit 컴퓨터라 치면 표현할 수 있는 주소의 한계점이 약 42억개 정도이고 50억이상의 수를 표현하려면 레지스터의 크기가 32bit로 부족하기 때문에 주소값을 표현할 수 없게 됩니다. 그래서 32bit 컴퓨터의 메모리 인식범위가 문제가 되는데, 4GB가 한계라 하죠. 쉽게 말해서 32비트 컴퓨터는 숫자를 4,294,967,296 이상을 모른다고 생각하시면 됩니다.

 

(하드디스크의 경우 4GB이상 장착이 가능한건 하드에 있는 데이터가 메모리에 로드된 후 CPU가 메모리 공간의 주소를 가지고 데이터를 처리하기 때문)

 

 

왜 4GB일까?

 

4GB가 어떻게 계산되는지 한번 계산을 해보면 32비트는 42억개정도의 주소 공간을 사용할 수 있고, 주소 공간 하나당 크기는 1Byte입니다. 1Byte의 주소공간이 4,294,967,296개가 있으면 메모리용량은 4,294,967,296Byte가 됩니다.

아까 단위계산 표에서 1GB는 2의 30승 byte가 되기 때문에 위 계산을 토대로 4GB가 나오게 됩니다. 이 이상 메모리를 장착하면 주소값이 32bit를 넘어가기 때문에 32bit 시스템에서는 인식되지 않습니다.

 

같은 방법으로 64bit 컴퓨터 메모리 인식 범위는 어디까지 될까 계산해 볼 수 있습니다.

 

 

64bit 컴퓨터의 메모리 인식범위

엑서바이트라는 단위는 정말 생소하고 상상보다 엄청 큰 단위입니다.