- CPU 연산의 최소 단위는?
현재 대부분의 일반적인 컴퓨터 아키텍처에서는 32비트 단위 이하의 연산은 지원하지 않는다.
(일부 임베디드 시스템이나 구형 컴퓨터에서는 8비트, 16비트 아키텍처를 사용하는 경우도 있다.)
16비트 아키텍처는 1980년대 중반까지 사용되었으며, 이 시기에는 IBM PC 등의 개인용 컴퓨터에서 인텔의 8086과 80286 프로세서가 널리 사용되었다. 하지만 이러한 아키텍처에서는 32비트 이상의 데이터를 처리하려면 두 개의 16비트 데이터를 조합해야 하는데 이는 처리 속도가 느려지는 문제가 있었다.
현재에 이르러서는 대부분의 컴퓨터가 32비트를 넘어 64비트 아키텍처를 사용하고 있다.
64비트 아키텍처에서는 32비트 데이터 처리도 가능하다. 64비트 아키텍처에서는 64비트와 32비트 모두를 지원하며 64비트와 32비트 데이터 간 변환도 가능하다. 32비트 데이터가 있는 경우에는 해당 데이터가 32비트 레지스터에 저장되고, 64비트 아키텍처에서 32비트 데이터를 처리할 때에는 해당 데이터가 32비트로 처리되며 이를 위해 하위 32비트만을 이용해 연산을 수행한다. 64비트 아키텍처에서는 이와 같이 32비트 데이터도 처리할 수 있으므로 32비트 데이터를 사용하는 애플리케이션도 정상적으로 동작한다.
- Java가 32비트 아키텍처를 대상으로 개발된 이유
Java는 1995년에 발표되었다. 이 당시에는 대부분의 개인용 컴퓨터가 32비트 아키텍처를 사용하고 있었고, 이러한 배경에서 Java는 초기부터 32비트 아키텍처를 대상으로 개발되었다.
Java가 처음에 32비트 아키텍처를 대상으로 개발된 이유는 여러 가지가 있었다. 먼저, 32비트 아키텍처는 16비트 아키텍처에 비해 메모리 주소 공간이 더 크기 때문에 더 많은 메모리를 사용할 수 있다. 또한 32비트 아키텍처는 연산 처리 속도가 더 빠르기 때문에 Java의 성능을 향상시키는 데에도 유리하다.
또한, Java는 처음부터 이식성을 중요시하였다. 이식성이란, 특정 플랫폼에 종속되지 않고 여러 플랫폼에서 동일한 코드를 실행할 수 있는 능력을 의미하는데, 32비트 아키텍처는 다양한 플랫폼에서 지원되는 표준 아키텍처 중 하나였기 때문에 Java 개발자들은 이식성을 고려해서 32비트 아키텍처를 대상으로 개발하였다.