ARM은 Advanced RISC Machine의 약자로, 진보된 RISC 기기를 의미한다. 여기서 RISC는 Reduced Instruction Set Computer의 약자다.
RISC(Reduced Instruction Set Computer)와 CISC(Complex Instruction Set Computer)는 많은 부분에서 차이를 보인다. 표로 정리하면 다음과 같다.
RISC | CISC | |
---|---|---|
설계 | 단순 | 복잡 |
명령어 종류 | 적음 | 많음 |
명령어 길이 | 고정 | 가변 |
레지스터 수 | 많음 | 적음 |
처리 속도 | 빠름 | 느림 |
프로그래밍 | 복잡 | 단순 |
사용 예시 | SPARC, ARM, MIPS | Intel x86 |
RISC는 명령어가 4 byte의 고정 길이를 가지고 있어 단순하고 처리 속도가 빠르지만, 명령어의 종류가 적기 때문에 다소 복잡한 기능을 수행하기 위해서는 여러 개의 명령어를 사용해야 한다.
반면, CISC는 명령어의 길이가 가변적이므로 복잡하고 처리 속도가 느리다. 그러나, 명령어의 종류가 많으므로 명령어 하나로 원하는 기능을 수행할 수 있을 확률이 높다.
다음은 ARM에서 2021년에 발표된 CORTEX-A510의 구조이다.
각 두 개의 코어가 명령어를 위한 L1 I-Cache, 데이터를 위한 L1 D-Cache를 개별적으로 가지며, NEON/SVE2 SIMD 엔진, TLB, L2 캐시를 공유한다.
ARM은 칩의 기본 설계 구조만 만들어 제공한다. 즉, 실제 사용할 기능을 추가하고 최적화하는 것은 반도체 제조사의 몫이다. 그렇기 때문에 물리적 설계만 같을 뿐, 제조사에 따라 최종적으로 만들어지는 칩은 다르다.
ARM은 RISC 설계를 기반으로 만들기 때문에 명령어 집합과 구조 자체가 단순하다. 따라서 ARM 기반 프로세서는 작고, 효율적이며 상대적으로 느리다. 또한, 명령어 집합이 단순하기 때문에 트랜지스터가 적게 필요하다.
이러한 장점을 이유로 스마트폰, 태블릿 PC와 같은 모바일 기기에 많이 사용된다.