비트
비트란 정보를 표현하는 최소단위를 의미한다.
32비트 시스템과 64비트 시스템 차이점
1. 데이터 처리 단위
CPU가 한 번에 처리할 수 있는 단위인 워드의 크기가
32비트인 경우 32비트 시스템
64비트인 경우 64비트 시스템
32비트에 비해 64비트 시스템이 한 번에 더 많은 데이터를 한 번에 처리할 수 있음
- 이는 대용량 데이터를 다룰 때 성능 향상으로 이어짐
32비트 명령어로 여러 번 실행할 작업을 64비트 명령어로 한 번에 처리하는 경우도 존재
- 전체적인 명령어 실행 횟수 감소
2. 메모리 주소 지정
32비트 시스템의 경우 2^32(약 4GB)까지의 메모리 주소 지정 가능
64비트 시스템의 경우 2^64(약 18엑사바이트)의 메모리 주소를 이론적으로 지정 가능
3. 레지스터 크기
CPU 내부 범용 레지스터 크기가 32비트 64비트인지 결정됨
**** 특수 목적 레지스터 크기는 64비트보다 클 수 있음
64비트 시스템이 더 많은 데이터를 CPU 내부에서 직접 처리할 수 있게 됨
- 성능 향상
4. 캐시 효율성
64비트 시스템은 일반적으로 더 큰 캐시를 가지고 있어, 자주 사용하는 데이터에 더 빠르게 접근 가능
5. 부동소수점 연산
64비트 시스템은 더 정확하고 효율적인 부동 소수점 연산을 수행할 수 있음
- 정밀도 증가
- 표현 가능한 수의 범위 확대
- 반올림 오차 감소
- 정규화된 수의 범위 확대
**
pintOS에서 int32_t, int64_t 와 같은 자료형을 사용한 이유
- 컴파일 설정에 따라 달라지는 데이터 타입 크기가 달라지므로 프로그래머가 제어 불가
- 이를 해결하기 위해 고정 사이즈 정수(int32_t, int64_t와 같은 타입을 사용한다.)
**
64비트 시스템에서 32비트 프로그램 사용가능
32비트 시스템에서 64비트 프로그램 사용시 오류 발생
- 메모리 주소 한계
32비트 CPU는 4GB 이상의 메모리 주소를 사용할 수 없음
- 명령어 호환성
64비트 명령어는 32비트 CPU에서 인식되지 않는다.