ㅍㅍㅋㄷ

Windows 환경에서 32 bit 와 64 bit 본문

IT/Windows

Windows 환경에서 32 bit 와 64 bit

물과같이 2015.07.14 00:51

What is 32bit and 64bit?




  컴퓨터를 사용하다 보면 32bit, 64bit 이런 말을 많이 들어 봤을 것이다. 요새는 거의 대부분 64bit 기반 이지만, 예전에는 32bit 기반의 OS를 많이 사용하였다. 그렇다면 과연 이것은 무엇을 의미하는 것일까?


   간단히 설명하자면, 여기서 말하는 bit 수는 CPU가 처리하는 데이터의 최소 단위인 Register의 크기가 몇 bit인지에서 나온 것이다.

 당연히 bit 수가 크면 한번에 처리할 수 있는 데이터의 양이 커질 것이다.


 예를 들어보자. CPU에...


 11011010110101011010101101010101101010101011101011010101010101010111100101001101011010101010101010111101010101110101101010101011010101101010110101010110101010...............


 이러한 데이터가 계속 계속 들어오는데

 

 32bit는 한번에 32자리까지 처리하고..

 64bit는 한방에 64자리까지 처리 가능하다. 누가 더 빠른가 -_-; 

 ( 위의 예는 실제 컴퓨팅 과정과는 전혀 다르다. 그냥 이해를 돕고자 단순화하여 예를 든 것 뿐이니 오해하지 말자. )


  단순 산술적으로 생각해보면 64bit 가 32bit 보다 2배의 성능이 나와야 겠지만, 꼭 그렇지는 않다.

 컴퓨터의 성능이 CPU 처리 능력 하나로 정해지는 것은 아니고 위의 예처럼 단순한 처리만 하는 것은 아니기 때문이다.



 또한 32bit와 64bit의 가장 큰 차이는 바로 메모리 인식 가능한 크기 차이이다. 운영체제의 측면에서 본다면, 32bit는 2^32 bit = 약 4GB, 64bit는 2^64 bit = 약 1000TB..(;) 라는 무한한 양의 메모리를 인식하고 처리할 수 있다.

 그러므로 32bit 기반의 운영체제에서 메모리를 아무리 큰거 꼽아봤자 4GB 이상 인식 못한다는 것이다. 32bit windows 설치하고 메모리 16G 장착한다고 해서 기뻐하면 안된다. 나머지 12GB는 무용지물이 된다는 것이다.

 

 그렇지만 실제로는 32bit Windows를 설치해서 사용할 때 4GB이상의 메모리를 사용할 수 있는 방법도 있다. Enterprise 제품군에 한하여 AWE ( Addressing Windowing Extensions ) 라는 기술을 통해 그 이상의 메모리를 인식하여 사용할 수 있도록 지원한다.

 또한 64bit Windows 에서 실제 1000TB 메모리를 탑재한다고 전부 인식하지는 않는다. 

 Windows 2012 datacenter edition에서는 최대 4TB 까지 인식 가능하다.

 아래 url은 windows 제품군의 memory limit 정보이다. 

https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx )

 


[ windows 2012 Datacenter edition ]






 64bit Processor


  위에서는 32bit와 64bit 가 무엇을 의미하는지 알아보았다.

 그렇다면 실제 사용하려면? 아쉽게도 내 마음대로 32bit와 64bit를 정해서 OS를 설치한다고 해서 마음껏 쓸 수 있는 것도 아니다.

 왜냐면 이것을 지원하는 CPU가 있어야 가능하기 때문이다. 

 (물론 요즘에 나오는 CPU 중에 64bit 지원 안하는 게 있을리 없다. )

  

 32 bit 의 경우는, 기존 intel 8086 CPU 기반의 x86 프로세서를 따른다.

 그런데 64 bit는 이와 다르게 두가지 아키텍쳐로 나뉜다. 

  

 하나는 IA-64 ( Itanium Architecture - 64 ) 로 알려진 Intel의 Itanium 과 

 다른 하나는 x64 로 알려진 Intel의 EM64T 와 AMD의 AMD64 프로세서이다. 


 

[ 위가 EM64T 기술을 이용해 만든 Intel pentium 4 / 아래는 AMD64 ]



 이 둘은 모두 64bit를 지원하는 프로세서 이지만, 약간의 차이가 있다.


 먼저 IA-64는 Native 64bit 만 지원하는 프로세서이다. 즉 이 프로세서 위에서는 64bit의 운영체제만 설치가 가능하다!

 하지만 x64의 경우에는 32bit/64bit 모두 지원 가능하기 때문에 32bit/64bit 운영체제 모두 설치 가능하다. 

 따라서 x64가 IA-64보다 호환성이 더 좋음을 의미한다.


 그렇다면 IA-64의 경우.. 64bit 만 지원한다고 했으니 32bit 를 지원되는 응용프로그램을 설치할 수 없는 것인가?

 

[ x86, x64, IA-64 별로 32/64 bit 지원 가능 여부 ]


  하지만 다행히도 IA-64 기반에서도 32bit 응용 프로그램을 실행할 수 있도록 지원한다. 어떻게 그게 가능한가? 

 간단히 설명하면 Windows 내부에서 32bit 응용 프로그램에 대한 처리를 64bit OS에 맞게 바꿔서 실행 하기 때문이다. 

 ( 이걸 담당하는 것이 Wow64라는 것이다. ) 

 

[ IA-64 기반에서 32/64bit 프로그램 실행 ]


  그림을 보면 쉽게 이해할 수 있을 것이다. 64bit 기반 프로그램은 OS에 바로 실행되며, 32bit 기반 프로그램의 경우 Exec. Layer인 Wow64라는 프로세스의 도움을 받아 emulating해서 실행된다. 


 그렇다면 x64의 경우는 어떠할까? x64는 자체적으로 32/64bit 모두 지원 가능하므로 굳이 이를 바꿔서 인식할 필요 없이도 바로 실행 가능하다.



[ x64 기반에서 32/64bit 프로그램 실행 ]






[ 참고 ]


  • http://en.wikipedia.org/wiki/Itanium
  • http://en.wikipedia.org/wiki/Address_Windowing_Extensions
  • http://en.wikipedia.org/wiki/X86
  • http://technet.microsoft.com/ko-kr/library/cc700734.aspx  


'IT > Windows' 카테고리의 다른 글

Windows 환경에서 32 bit 와 64 bit  (1) 2015.07.14
Windows OS model : Microkernel or Monolithic kernel?  (0) 2015.06.23
1 Comments
  • 프로필사진 엑소버드 2017.01.23 12:26 신고 메인 메모리의 주소 체계는 1byte 단위이므로 64bit OS에서 인식할 수 있는 이론 상의 메인 메모리의 용량은
    2^64 byte = 2^54 kilo byte = 2^44 mege byte = 2^34 giga byte = 2^24 tera byte
    = 2^14 peta byte = 2^4 exa byte = 16EB가 되지 않나요...?
댓글쓰기 폼