32bit 64bit 차이
:one: bit 란?
bit
는binary digit
의 약자로 컴퓨터의 처리 정보의 최소 단위입니다.
바이너리
는 2진수를 뜻하고,디짓
은 자리수 라는 의미입니다.
컴퓨터는 0 또는 1
의 나열로 일을 처리합니다. 컴퓨터는 결국 비트의 나열로 모든 것을 표현하게 됩니다.
1bit 는 반드시 0 또는 1의 상태를 유지하고, 그 이외의 값은 갖지 않습니다.
0 또는 1 로 수를 표현하는 것을 2진수
라고 합니다.
이진수
는 사람에서 보면 약간 난해하지만, 전자적, 기계적으로 보아 매우 간단 명확 재현성을 확보하기 쉽기
때문에 컴퓨터 역사에서 비교적 옛날부터 현재에 이르러서도 이진수 이진 bit 데이터가 사용되고 있습니다.
1 byte = 8 bit
:two: 32bit 64bit 의 차이
:cupid:32비트 64비트의 차이는 CPU의 차이
결론부터 말하면, 이러한 차이는 저장 장치의 bit폭
입니다.
bit 폭 이라고하면 이해하기 어려울 지도 모르기 때문에 용량같은 이미지로 파악하면 된다.
이 저장 장치를 레지스터
라고 부릅니다. 레지스터는 캐시보다 빠르고 저장 용량도 작은 컴퓨터 기억 장치 중에서는 가장 빠르게 작동하는 기억 장치 인데요.
이 레지스터
의 크기가 16bit 라면 16bit CPU
가 되어 크기가 64bit 라면 64bit CPU
가 됩니다.
:cupid:연산을 위해 사용 레지스터
레지스터는 막연한 기억 매체 라기보다는 연산의 대상 및 연산 결과
를 기억하는 데 사용됩니다.
일반적으로 레지스터가 크면 한번에 처리할 수 있는 정보의 양이 늘어나게 됩니다.
16bit
가 한 번에 처리 할 수 있는 정보는 2^16 제곱 즉 65536
이며,
이것이 64bit
가 되면 2^64 즉 184467440.........
이라는 엄청난 숫자입니다.
한번에 취급할 수 있는 정보가 증가한다는 것은, 많은 양의 데이터를 처리하게 되므로, 처리의 고속화를 도모할 수 있게 됩니다. 또한 발전과 함께 bit 수가 증가하면 기능이 고도화됩니다. 즉 CPU의 “편리한 명령” 이 늘어날 것입니다.
따라서 고속되지만 새로운 명령을 포함하지 않는 과거의 CPU에서는 움직이지 않는 프로그램도 나오게 됩니다. 현재 주류의 x86 명령을 x86_64는 실행할 수 있지만 그 반대는 할 수 없습니다.
64bit CPU가 32bit 명령을 실행하는 것은 가능 하지만
32bit CPU가 64bit CPU 명령을 수행할 수는 없다 입니다.
:cupid: 메모리 제한
32bit 환경에서 메모리 4GB의 벽
이라는 것이 존재합니다. 32비트 PC는 메모리를 4GB 이상 넣어도 사용할 수가 없는 것입니다.
조금 어려울지도 않지만, 위에서 언급 한 바와 같이 2진수로 생각하면,
32bit 라면 물리적으로 429496… 주소공간이 존재합니다. 여기에 1주소 1byte 를 할당 충당하게 되는데,
그러면 4GB까지 밖에 사용할 수 없게 됩니다.
Window의 경우 4GB도 사용할 수 없다.
사실, Windows와 같은 경우는 더 적은 용량에도 처리 한계에 도달 해 버립니다. 이것은
memory-mapped IO 라는 구조
를 사용하기 때문인데요. 메모리의 일부를 빌려서 IO 제어를 합니다.
따라서 Window의 경우 약 3.3GB 라는 상한이 정해져 있습니다.
시대가 바뀌고 동영상 등 대용량 데이터 처리가 필요로 하게 되면서 64bit 가 등장
하게 됩니다.
64비트가 되면 주소 공간이 비약적으로 커 집니다. 1844674407370955161Byte
까지 확보 할 수 있게되기 때문에 당분간
평화로울 수 있어집니다.
그러나 언젠간 128bit 가 필요해지는 날이 올수도…
:three: 64bit 의 장점
당연한 결과지만 위와 같은 이유로 대규모 처리, 고부하 처리에서는 32bit의 용량에 한계가 있습니다.
특히 메모리에 제한은 치명적이라고 할 수 있는데, 3D 응용 프로그램 및 동영상 편집, 과학계산 등은 메모리를 크게 소모하기 때문입니다.
또한 HDD도 대용량화의 흐름에 따라 테라 바이트에 도달하고 있기 때문에, 이미 32bit 로는 커버 할 수 없거나 벅찬 처리상태가 되어 있습니다.
미래를 생각한다면 압도적으로 64bit 가 유리합니다.
:four: PC 어떻게 선택해야 하는가?
확실히 32bit 쪽이 저렴합니다. “어쨌든 인터넷만 되면 OK” 라면 특히 신경 쓰지않고 32bit PC 구입
하지만 자신이 “엔지니어” “유튜버” “PC게이머” 등과 관련이 있다면 이제 64bit 시스템을 선택
:five: 64비트 환경에서 32비트 응용 프로그램 사용여부
64bit 바이너리 환경에서도 32bit 움직일 수 있나라는 의문.
그러나 실제로는 32bit 라이브러리 등이 없으면 작동하지 않는다. “따라서 WIndow의 경우 32bit 라이브러리를 기본적으로 포함하고 있습니다.”
리눅스의 경우 LFS 와 Gentoo 같은 소스 기반 배포판 등에서 32bit 바이너리 뺀 순수한 64bit 시스템을 구축하는것이 가능하게 되어있습니다.
맥OS 는 차차 32bit 프로그램을 못쓰게 한다고 합니다.