본문 바로가기

High Level Technique/Window System

x86 & x64

x86 & x64


과거에는 x86 즉, 32비트 운영체제가 많이 사용되어왔습니다. 하지만 현재 대부분의 데스크톱이나 노트북들이 모두 64비트를 지원하고 그만큼 하드웨어 성능 또한 향상되었습니다.


보통 x86과 x64의 차이가 뭐냐?라는 질문에는 x86에서는 메모리를 4G까지 사용할 수 있다. x64에서는 4G이상 사용할 수 있다. 이정도 입니다.



그저 하드웨어적으로 사양을 높이기 위해서 사용하는 것일까요???



32비트와 64비트의 가장 큰 차이점은 한번에 처리를 할 수 있는 데이터의 크기입니다.




32비트에서는 2의 32제곱 즉, 4GB까지 사용가능하며 64비트는 2의 64제곱으로 16TB까지 사용이 가능합니다.

하지만 하드웨어적으로 64비트를 사용하더라고 메인보드에 따라 사용할 수 있는 메모리가 제한되어 있습니다.








추가적으로 프로그래머가 64비트로 처리해야 할 것을 32비트로 처리하면 분명히 차이가 납니다.




위 표는 데이터 표현모델입니다. 각 모델 마다 데이터 타입에 따른 크기를 나타낸 것입니다.


32비트에서 사용하는 것은 ILP32, 64비트에서 사용하는 것은 LLP64 입니다.



포인터를 보면 ILP32는 4바이트 LLP64는 8바이트가 사용되는 것을 볼 수 있습니다.



포인터만 차이가 있는데, 이러한 이유는 32비트와 64비트간에 호환성을 중요시하기 때문입니다.



LLP64에서 포인터를 8바이트를 사용하는데 int형으로 강제 형 변환을 시킨다면 데이터 손실이 일어나게 됩니다.


따라서 64비트 시스템에서는 포인터가 지니고 있는 값을 4바이트 정수형으로 바꾸면 안됩니다.

'High Level Technique > Window System' 카테고리의 다른 글

프로세스  (0) 2016.12.26
명령어, 레지스터의 구성  (0) 2016.09.20
Polymorphic  (0) 2016.09.13
SBCS, MBCS, WBCS  (0) 2016.09.12
컴퓨터 구조  (0) 2016.08.26