공부/기타

32비트 시스템과 64비트 시스템의 차이

셩잇님 2022. 9. 30. 10:05
반응형

 

 

결론부터 말하면 아래와 같다.

메모리 주소 공간 크기의 차이(Memory addressing space size)


 

32비트와 64비트 시스템은 먼저 기본처리 단위가 다르다보니 프로세서의 레지스터의 크기부터 차이가 납니다. 32비트 프로세서의 범용 레지스터의 크기는 32비트 즉 4바이트이고, 64비트 프로세서의 범용 레지스터의 크기는 64비트, 즉 8바이트입니다. 이렇다 보니, 프로그램 카운터(Program Counter)의 크기로 각각 4바이트 8바이트가 되는데요.

 

메모리의 주소 모드(address mode)는 기본적으로 바이트당 주소를 하나 할당하는 방식(byte oriented addressing)이므로, 32비트 머신은 최대 32bit의 메모리 어드레싱이 가능하게 됩니다. 2^3 2byte의 메모리 주소 공간을 갖는다고 보면 되는데, 이는 4GB에 해당하게 됩니다. 따라서 32비트 머신은 최대 4GB의 메모리밖에 사용할 수 없는 셈이죠.

 

지금 이 글을 쓰는 시점에도 Windows 10의 커널 메모리 사용량이 꽤 크기 때문에, 쾌적한 컴퓨터 사용 환경을 위해서 가정용 개인 컴퓨터(PC)에도 보통 8GB이상의 메모리를 사용하곤 합니다. 이러한 점을 고려했을때, 32bit 프로세서와 운영체제의 조합은 조금 열악한 환경이 될 수 있겠지요.

 

그렇다면 64비트 머신은 2^64인 16엑사바이트의 메모리 주소를 갖겠군요! 라고 생각하실 수 있겠지만, 실제로는 하위 48bit만 사용합니다. 256TB에 해당하는 어드레싱 모드 범위인데요, 왜 그런가 하면 16엑사바이트만큼 큰 양의 메모리 어드레싱이 필요하지 않기 때문이지요. 나중에 필요한 메모리 사이즈와, 실제로 그러한 거대한 크기의 메모리를 만들 수 있다면, 언젠가는 64비트 주소 공간을 다 활용할 수도 있겠지만, 적어도 지금은 아닙니다.

 


참고

https://stackoverflow.com/questions/6716946/why-do-x86-64-systems-have-only-a-48-bit-virtual-address-space

 

Why do x86-64 systems have only a 48 bit virtual address space?

In a book I read the following: 32-bit processors have 2^32 possible addresses, while current 64-bit processors have a 48-bit address space My expectation was that if it's a 64-bit processor, the

stackoverflow.com

https://eine.tistory.com/114#comment13154074

 

64비트 32비트 CPU와 운영체제 에 대하여

제가 학부생때 많이 햇갈리던 개념이 있는데요, 64bit 운영체제, 32bit 운영체제, 64bit CPU, 32bit CPU 과 같은 개념들이었습니다. 제가 알고 있는 개념들로 어느정도 나름 알기쉽게 정리를 해 보도록 하

eine.tistory.com

 

 

 

반응형