본문 바로가기

CS/운영체제

32bit CPU 에서 최대 메모리 크기가 4GB인 이유

728x90

운영체제 전공서를 읽으며 물리 메모리 관리 파트를 공부하는데 나온 내용중

32bit CPU는 메모리 주소 레지스터의 크기가 32bit 이므로, 표현할 수 있는 메모리 주소의 범위가 2^32 - 1, 총 갯수가 2^32개이다. 이때 총 크기는 2^32 B 약 4GB이므로
32bit CPU는 메모리를 최대 4GB까지 사용할 수 있다.



?????

아무 생각 없이 단순 계산을 하였을때 일단 32bit 랬으니까 단위는 bit인가...?

2^32 = 4.294.967.296 bit = 536,870,912 B = 524.288 KB = 512 MB

??????

어떻게 2^32에서 4GB라는 값을 도출해낼 수 있는거지....?




32bit 기준으로 메모리를 보자면
맨 위에 설명했듯이 32bit CPU의 표현할 수 있는 메모리 주소의 범위는 2^32 -1 이다.
2^32 -1 의 16진수 값은 FFFFFFFF 이다.

즉 메모리가 가질 수 있는 각각의 메모리 주소값은 00000000 ~ FFFFFFFF 까지, 즉 2^32 개를 가질 수 있는데
각각의 주소를 가지고 있는 저 칸은 "1B" 의 크기를 가지고있다.



결론만 이야기하자면

2^32 = 4.294.967.296 bit = 536,870,912 B = 524.288 KB = 512 MB

맨 위에 적었던 이 식은 메모리의 크기를 나타내려고 한 것이 아닌 메모리 주소값을 가지고 있는 각 칸의 수를 멋대로 메모리의 용량으로 착각하고 세운 식이다.

메모리의 크기를 나타내는 정확한 식은

각각의 주소를 가지고 있는 2^32개의 칸의 수 X 1B
2^32 * 1B = 4.294.967.296 B = 4,194,304 KB = 4,096 MB = 4GB

이 계산식에 따라 최대 4GB의 메모리크기를 가질 수 있는 것이었다...


뻘짓 ㅎㅎ...







728x90