2021. 7. 1. 19:37ㆍ운영체제
32 bit CPU와 64 bit CPU의 차이는 한번에 다룰 수 있는 데이터의 최대 크기입니다.
32 bit CPU에서 한번에 다룰 수 있는 데이터의 최대 크기가 32 bit이고,
64 bit CPU에서 한번에 다룰 수 있는 데이터의 최대 크기가 64 bit입니다.
그렇다면 32 bit CPU의 물리 메모리의 크기는 얼마일까요?
bit는 데이터의 최소 단위입니다.
하나의 비트는 0이나 1의 값을 가질 수 있으며 각각은 참 혹은 거짓을 의미합니다.
32bit는 1bit가 32개 있는 것과 같고 1 bit당 경우의 수는 2이며 첫 비트는 부호를 나타내므로,
32bit로 표현할 수 있는 수의 범위는 \(-2^{31}\)부터 \(2^{31}\)까지 입니다.
즉, 32bit로 표현할 수 있는 수의 갯수는 \( 2^{32}-1 \)입니다.
옛날부터 단일 문자를 인코딩하는데 사용된 바이트수는 8bit = 1byte 였으며,
이러한 이유로 컴퓨터에서 메모리의 주소값을 나타내는 가장 작은 단위는 1 byte입니다.
메모리 주소값은 0xFF와 같이 16진수로 이루어집니다.
그렇다면, 32 bit CPU의 메모리 크기는
$$ (2^{32}-1)B = 4,294,967,295B \simeq 4GB$$
위의 규칙으로 64 bit CPU의 메모리 크기를 구해보면 얼마가 나올까요?
\(2^{10}\)이 곱해질 때마다 바이트 단위가 B -> KB -> MB -> GB -> TB 순으로 증가하므로,
64 bit CPU의 메모리 크기는
$$ (2^{64}-1)B \simeq 2^{64}B = (2^{10})^6 \times 2^{4}B = 16EB $$
사실상 거의 무한대에 가까운 메모리를 사용할 수 있습니다.
이러한 메모리 주소 범위의 차이로 인해 소프트웨어와 하드웨어의 호환성 문제가 발생할 수 있습니다.
프로그램 자체도 32 bit용이나 64 bit용을 구분해서 제작하기 때문에
32 bit 컴퓨터에서 64 bit 프로그램을 실행하면 성능 문제가 발생할 수 있습니다.
Ref.
https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8_(%EB%8B%A8%EC%9C%84)
https://en.wikipedia.org/wiki/Byte
https://thrillfighter.tistory.com/116
http://melonicedlatte.com/computerarchitecture/2019/03/07/151740.html