64비트와 32비트의 구분 방법

  • 구분의 두 가지 기준
    • 한 번에 송수신 가능한 데이터의 크기
      • I/O BUS 시스템 비트수
    • 데이터 처리 능력
      • CPU가 한 번에 읽어 드릴수 있는 명령어의 비트수

 

프로그래머 입장에서의 64비트 컴퓨터(32비트 -> 64비트)

  • 프로그램으로 표현할 수 있는 범위의 증가
  • 표현할 수 있는 메모리의 전체 크기
  • 32비트(4바이트) 시스템은 포인터가 왜 32비트(4바이트)인가?
    • I/O BUS가 64비트 일 때 포인터가 128비트면 64비트를 2번 전달해야 하게 되며, 이는 성능 저하로 돌아온다.
    • I/O BUS가 한 번에 전달 가능한 수준에 크기로 결정하는 게 최적이기 때문에 시스템이 32비트이면 32비트(4바이트) 포인터, 시스템이 64비트면 64비트(8바이트) 포인터로 사용된다. 
  • 32비트 시스템에서는 사용 가능한 메모리는 왜 4기가인가?
    • 32비트 시스템에서 표현 가능한 주소의 범위는 2의 32승은 4,294,967,296입니다.
    • 64비트 시스템에서 표현 가능한 주소의 범위는 2의 64승은 18,446,744,073,709,600,000입니다.

 

  • 64비트와 32비트 공존의 문제점 
    • 64비트에서 프로그래밍 할 땐 포인터를 기본 자료형으로 강제 캐스팅 하지 말자.
    • 데이터 손실의 문제가 발생할 수있다.

 

반응형