32비트박스와 64비트박스

송명규·2023년 9월 1일
0

https://velog.io/@harrysong961205/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A1%9C-12%EB%A5%BC-%EA%B3%84%EC%82%B0%ED%95%B4%EB%B3%B4%EC%9E%900%ED%8E%B8-%EB%AC%B4%EC%9E%91%EC%A0%95-%EC%A7%88%EB%AC%B8-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0

에서 64비트와 32비트 운영체제에 대해서 궁금증이 생겼다.

내 옛날 기억을 더듬어 보면, 컴퓨터를 처음 키고 설정을 할때 32비트와 64비트 중 선택을 할 수 있었다. 예전에는 크면 좋을거라고 생각해서 64비트를 선택했다.

그럼 여기서 도대체 32비트와 64비트는 뭐가 32비트이고, 무슨 차이가 있는걸까?

32비트 프로세서 VS 64비트 프로세서

여기서 ~~비트란, ~~만큼의 데이터를 한 번에 처리할 수 있다는 것이다.
즉, 데이터 기본 처리 단위(워드라고 함)가 64비트인 2의 64승만큼의 데이터를 처리할 수 있다는 것이다.

그렇기 때문에 64비트 프로세서라면 2의 64 가지의 경우의 수를 가질 수 있고,
32비트 프로세서라면 2의 32승 가지의 경우의 수를 가질 수 있다.

한 번에? 뭘 한 번에 처리한다는 것인가요?
그것은 CPU 레지스터와 관련이 있다.
레지스터란 cpu안에 있는 아주 작은 저장 공간이라고 생각하면 쉽다.
연산 결과나 메모리 주소, 다음 메모리 주소, 프로그램의 순번 등을 기록해 놓는다.
왜 그냥 메모리에 적어두지 않냐고?
일단 구성하고 있는 RAM(SRAM, DRAM)이 다르고,물리적 거리가 짧기 때문에 매우매우매우 빠르다.그리고 cpu라는 하나의 구조체 내에 일어나는 일이다보니, 주소같은 것을 따로 적지 않아도 바로 불러올 수 있다.
즉 레지스터에 "한 번에" 넣을 수 있는 크기를 말한다!

그렇기 때문에 32비트 프로세서에서는 4gb 밖에 지원을 하지 않는다!

갑자기 그게 뭔 소리입니까? 미쳤습니까 휴먼?
왜 그러냐 하면,
4gb의 메모리라면, 34,359,738,368 비트 정도이고, 메모리는 1바이트(8비트) 단위로 데이터를 저장할 수 있다.
즉 4gb의 메모리라면, 4,294,967,296 바이트정도이다.
여기서 우리가 메모리에 어떤 정보를 쓰려면 어디에 쓰는지 '주소'가 꼭 필요하다.
이때 4,294,967,296 개의 주소를 우리는 가질 수 있는 것이다!
그러나 4,294,967,296 는 2의 32비트(32비트 프로세서의 데이터 기본 처리 단위)이고, 우리는 32비트 프로세서에서는 2의 32비트 이상 주소를 쓸 수 없기때문에 32비트 프로세서는 4기가까지 밖에 쓸 수 없다!

그래서 2의 64승을 데이터 기본 처리 단위인 워드로 삼는 64비트 프로세서가 나오게 된 것이다.
말 그대로 64비트는 2의 64승(0부터 18,446,744,073,709,551,616)이기 때문에 아마 나 죽을때까지는 128비트 프로세서가 안나오지 않을까.. 라고 생각한다

profile
안녕하세요

0개의 댓글