ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • X bit System
    시스템 프로그래밍 2019. 3. 17. 16:49


    #5. 윈도우즈 시스템 프로그래밍








     5. X bit System 







    우선 시스템의 비트를 구분하는 두 가지 기준에 대해 알아보자.

    한번에 송수신 가능한 데이터의 크기와 데이터를 처리하는 능력으로 시스템의 비트수를 말한다.


    한번에 송수신 가능한 데이터의 크기는 'I/O BUS system' 에 의존적이고, 

    데이터 처리능력은 'CPU 가 한번에 읽어들일 수 있는 명령어의 크기' 를 의미한다.


    만약, 데이터 이동은 64 bit System 인데 CPU 는 32 bit System 이라면 완전한 64 bit System 이라고 할 수 없다. 

    이럴경우 어디선가 bottleneck 이 발생한다.


    결국, 데이터 이동(but)과 처리(cpu)가 동일한 사이즈로 동작이 되야 이상적이다. 

    이상 하드웨어적인 관점에서의 x bit System 에 대해 알아보았다.



    이번엔 프로그래머 관점에서 접근해보자.








    일반적으로 32 bit 시스템에서는 포인터가 32 bit 이고, 64 bit 시스템에서는 64 bit 이다. 

    포인터에 할당된 비트가 크면클수록 접근가능한 메모리가 많아진다. 

    하지만 이 또한 Bus 와 CPU 시스템의 체계를 따르는 것이 좋다.

    만약 주소를 파악하기 위해 2 번의 Fetch 가 발생해야 한다면 이는 프로그램의 성능을 저하를 가져오기 때문이다.


     32 bit System 에서는 포인터가 4 Byte 이므로 2^32 , 약 4 GB 정도의 메모리에 접근이 가능하다.

    64 bit System 은 마찬가지 방법으로  2^64 의 메모리에 접근이 가능하다. 


    포인터가 표현 가능한 메모리에 대해 메인메모리가 그를 못따라 갈 경우가 있다.

    이 문제에 대해서는 나중에 다룰 가상메모리에서 다뤄진다.








    댓글

Designed by Tistory.