정보화 시대가 되면서 CPU(중앙처리장치)는 한 번쯤 들어본 익숙한 단어가 되었다. CPU는 컴퓨터에서 두뇌의 역할(연산, 제어)을 담당한다.
CPU 아키텍처는 명령어 집합(ISA), 데이터 유형, 레지스터, 메모리 계층 및 실행 모델을 포함한 CPU의 기본 설계 및 구성을 말한다. 앞으로 x86, x64 그리고 ARM64이라는 아키텍처를 살펴볼 것이다.
x86 아키텍처는 흔히 32비트 체제의 CPU를 일컫는다. 조금 더 정확하게 하면 x86-IA32(Intel Architecture-32)이며 인텔에 의해 고안된 아키텍처이다. 64비트 CPU가 대중화되기 전에는 대부분 컴퓨터에서 이 32비트 CPU를 사용했다.
“왜 x86이라 하지? 32비트니까 x32라 하면 좋지 않을까?” 이런 생각이 들기도 할 것이다.
인텔이 과거에 출시한 32비트 CPU의 이름이 386, 486 등이었다. 즉 ‘~86’으로 끝나는 이름이었고 여기서 공통되는 ‘86’만 뽑아 x86이라 부르게 되었다.
x86-IA16(16비트)가 먼저 출시되었지만 대중에게 거의 보급되지 못하고 IA-32가 출시되었다. 그래서 현재에 x86이라 하면 대게 32비트 아키텍처를 의미한다.
x86 즉 32비트에서 더 발전되어 64비트 체제의 CPU이다. 64비트가 되어 바뀌는 것은 CPU가 한 번에 처리할 수 있는 데이터의 크기(레지스터 크기)이다.
64비트 도입 초기에는 AMD가 intel 보다 도입하여 amd64라고 불리었다. 추후 intel도 64비트를 도입 함에 따라 x64라고 통칭하게 되었다.
x64 == amd64 // true
ARM64는 ARM이라는 회사에서 개발한 64비트 CPU 아키텍처이다. x64와 같은 64비트 아키텍처이지만 x64와 다른 목적을 가지고 탄생한 아키텍처이다. x64는 주로 일반적인 데스크탑 및 노트북에 사용되지만, ARM64는 주로 모바일 기기나 임베디드 컴퓨터와 같은 저전력 컴퓨팅 환경에 사용된다.
즉, intel과 amd와는 목표가 달랐고 근본적으로 다른 CPU 아키텍처이기 때문에 x64와 ARM64는 서로 호환되지 않는다.
근본적으로 다른 이유 중 하나는 x64와 ARM64는 서로 다른 ISA(명령어 집합)를 사용하기 때문이다.
ISA(Instruction Set Architecture)란 하드웨어와 소프트웨어 사이의 인터페이스 역할을 하는 설계도(blueprint)이다. 쉽게 말하면 소프트웨어가 CPU를 제어하는 방법을 설명하는 모델이다.
흔히 들어본 애플의 A 시리즈, M 시리즈, 퀄컴의 스냅드래곤, 삼성의 엑시노스 모두 arm 아키텍처를 따른다.
아키텍처 | 정의 | 특징 |
---|---|---|
x86 | 32bit intel architecture | 과거 인텔의 32bit cpu이다. |
x64 | 64bit architecture(intel, amd) | 64bit로 데이터를 처리하면서 더 많은 메모리 주소 공간을 제공하여 성능이 향상되었다. |
ARM64 | 64bit architecture | 저전력이 요구되는 모바일 및 임베디드 시스템에 적합하다. |
출처 : https://m.blog.naver.com/cjs0308cjs/223242935705