32-bit와 64-bit는 CPU의 레지스터 용량(한 번에 처리할 수 있는 데이터량)을 말한다.
x86(32-bit): x86인 이유는 PC 칩셋의 품번 때문이다. 80~86이라는 숫자를 인텔 32-bit 이하 계열 제품에 붙였기 때문이다.
x64(64-bit): x64는 32-bit의 제품에 붙는 번호와는 다르게 64-bit인 것을 표현하기 위해 64번호를 사용하였다. 64-bit CPU는 32-bit CPU 연산을 수행할 수 있지만 그 반대는 안된다.
x86-64: 현재 인텔과 AMD가 채용한 CPU 아키텍처명
32-bit CPU에서는 RAM(byte 기본단위)을 4GB 이상 넣어도 사용할 수 없다.
컴퓨터는 데이터를 가져오기 위해서 메모리의 주소를 참조하게 되는데 데이터의 기본 단위는 bit인데 반해 주소의 기본 단위는 byte이다.
32-bit는 물리적으로 4,294,967,296개의 데이터를 표현할 수 있고 주소도 이 숫자만큼 표시할 수 있다.
4,294,967,296만큼의 주소를 표현하면 RAM은 4,294,967,296 * 1byte를 하게되어 4GB정도의 용량이 나온다.
하지만 Windows같은 경우에는 4GB도 다 인식하지 못한다. 왜냐하면 memory-mapped IO 구조를 사용하기에 RAM의 일부를 빌려 IO를 제어하고 있기 때문이다. 따라서 3.3GB라는 상한선이 정해져 있지만 다른 외장 메모리를 사용하면 이 문제를 해결할 수 있다.
참고
https://tagilog.tistory.com/596
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ezpbill&logNo=221023784363
http://melonicedlatte.com/computerarchitecture/2019/03/07/151740.html
'OS' 카테고리의 다른 글
Sign Extension (0) | 2023.04.19 |
---|---|
메모리 구조 (0) | 2020.10.09 |
MSB, LSB (1) | 2020.10.09 |
Interent과 Web의 차이점 (0) | 2020.09.26 |