CS Memory 32Bit vs 64Bit 누가 더 빠를까?

32Bit vs 64Bit 누가 더 빠를까?

32Bit vs 64Bit Application의 차이점과 어느 쪽이 빠른지에 대한 고찰
Memory 주소와 Register 의 크기의 차이가 나타나게 된다.

호환성

일반적인 64Bit Application이 실행에 필요한 조건

  • 64Bit 프로세서
  • 64Bit 운영체제

대부분의 64Bit 운영체제는 호환 모드를 지원하여 32Bit Application 실행 가능

Memory 주소의 크기

이론적으로 처리 가능한 Memory 주소의 크기가 극단적인 차이 존재

  • 64Bit
    • $2^{64}$ = 16엑사바이트
  • 32Bit
    • $2^{32}$ = 4기가바이트

Memory 주소가 크면? 장점

  • 더 많은 데이터를 Memory에 올릴 수 있기 때문에 디스크 접근을 줄일 수 있는 장점
  • Memory map file의 실용성이 좋아짐
  • File Access 효율이 좋아짐
  • Register 의 크기가 커서 연산 자체가 빠를 수 있음

32Bit 프로세서 중 64Bit 연산을 위한 확정 기능을 제공하는 것도 있음

Memory 주소가 크면? 단점

  • Pointer를 저장할 때 Memory가 두 배 필요
  • Pointer를 사용하는 자료구조의 경우 Memory가 두 배 필요
  • 캐시 부적증(Cache Miss)가 발생할 확률이 상승
    • 프로세스의 크기
    • 32Bit, 64Bit Application 입장에서는 프로세서 캐시 크기 동일
    • 64Bit 자료구조는 용량을 더 많이 차지하여 캐시 공간이 적음
    • Access 할 값을 Main Memory에 가져올 때까지 기다려야 하는 Cache Miss가 발생할 확률 증가

32Bit vs 64Bit 누가 더 빠른가?

  • 일반적으로 64Bit Application이 항상 빠름
    • 하지만 64Bit가 더 빠른 코드가 있고, 32Bit가 더 빠른 코드도 있음
  • 64Bit의 x86-64 아키텍처의 특성
    • 일반 용도 Register 추가 기능으로 성능 상의 이득이 상당함
      • Pointer가 커지면서 발생할 수 있는 불이익을 충분히 상쇄 가능

댓글남기기