-
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 의 메모리에 접근이 가능하다.
포인터가 표현 가능한 메모리에 대해 메인메모리가 그를 못따라 갈 경우가 있다.
이 문제에 대해서는 나중에 다룰 가상메모리에서 다뤄진다.
'시스템 프로그래밍' 카테고리의 다른 글
64bits-based Programming, GetLastError (0) 2019.03.17 MBCS, WBCS 동시지원 (0) 2019.02.20 CharSet, MBCS's Problem, WBCS Programming (0) 2019.02.20 프로그램 실행과정, Stored Program Concept, Bus System (0) 2019.02.11 시스템 프로그래밍, 하드웨어 구성, 클럭신호 (0) 2019.02.06