이 CPU 아키텍쳐를 설계한 반도체 개발사에 대한 내용은 Arm 문서 참고하십시오.
명령어 집합 | |
CISC | AMD64 ● x86 ● · M68K · 68xx · Z80 · 8080 · MOS 65xx · VAX |
RISC |
AArch64
ARM ·
RISC-V
● ·
MIPS
● ·
DEC Alpha ·
POWER
PowerPC ·
CELL-BE LoongArch · OpenRISC · PA-RISC · SPARC · Blackfin · SuperH · AVR32 AVR |
VLIW EPIC |
E2K · IA-64 · Crusoe |
Arm의 마이크로 아키텍처 IP | |||
Arm Cortex 시리즈 | |||
A 시리즈 | R 시리즈 | M 시리즈 | X 시리즈 |
Arm Neoverse 시리즈 | |||
Arm AE 시리즈 |
1. 개요
Arm Holdings plc에서 설계하는 명령어 집합을 총칭한다.ARM이 일반 대중에게 널리 알려진 계기는 대략 2010년 이후 스마트폰 시장이 급격히 확대된 것으로, 스마트폰에서 SoC 형태의 AP(Application Processor)가 널리 보급되며 인지도가 올라갔다.
ARM 코리아 공식 블로그
2. 역사
2.1. 초기
1980년대 중반, 영국의 컴퓨터 회사 Acorn Computer는 비즈니스용 고성능 컴퓨터를 만든다는 목표를 세운다. 하지만 새 컴퓨터에 쓸만한 기성품 CPU를 찾을 수 없자 직접 RISC 기반 CPU 아키텍처를 개발하기로 하는데, 이것이 "Acorn RISC Machine", 즉 ARM의 시작이다.1983년 컴퓨터과학자 소피 윌슨(Sophie Wilson)[1]과 스티브 퍼버(Steve Furber)를 주축으로 개발을 진행했다.
1985년 Acorn에서는 최초의 ARM 프로세서 프로토타입인 VC2588을 만들었고, BBC 마이크로 컴퓨터[2]에 연결되는 "ARM 평가 시스템(ARM Evaluation System)" 개발용 키트를 제작하였다. VC2588은 32비트 ARM1 ISA에 대응하고 VLSI Technology사의 3미크론 CMOS 공정으로 제작되었다. 말 그대로 프로토타입이었기 때문에 수 백 개를 생산하는 데에 그쳤지만, 처음으로 만든 샘플인데도 잘 작동했고 성능도 괜찮았다. 게다가 전력 소모량도 매우 적었는데, 윌슨의 회고에 따르면 VLSI에서 첫 CPU 샘플을 받아서 연결했을 때 전원 핀에 전원을 공급하지 않았는데도 CPU가 작동했다고 한다. 알고 보니 전력 효율이 말도 안 될 정도로 좋아서, CPU가 연결된 회로에서 누수되는 0.1W 정도의 전력만으로 CPU가 구동됐던 것이다.
1987년 Acorn은 ARMv2 프로세서를 메인 CPU로 사용한 "아르키메데스" 시리즈 PC를 출시하여 맨 처음 세웠던 목표를 달성하는 데 성공한다.
1980년대 말, Apple은 Newton MessagePad에 들어갈 적절한 성능에 적절한 전력을 소모하는 마이크로프로세서가 필요했는데, 여기에 ARM 아키텍처를 쓰기로 결정한다. 이에 Acorn은 아예 ARM 개발 부문을 떼어내 Apple과 VLSI Technology와의 합작회사를 설립하고 이름을 ARM(Advanced RISC Machine)으로 변경했으며, 이후로는 주로 저전력 위주의 SoC 형태의 칩 개발에 집중하게 된다.[3]
1995년에 소개되고 1998년에 출시된 ARM7TDMI부터는 16비트 크기의 축약형 명령어인 Thumb 명령어 세트를 도입하고, 기타 부가 기능을 추가하면서 마이크로컨트롤러 업계에서 입지를 굳히기 시작했다. Thumb 명령어는 ARM의 기본 32비트 명령어도 길다고 생각한 마이크로컨트롤러 업계의 의견을 반영하여 만든 16비트 명령어 세트이다. 이 외에도 JTAG Debugger(마이크로프로세서를 테스트하기 위해 추가되는 국제 규약의 핀), Fast Multiplier(곱셈기) 및 Enhanced In Circuit Emulator(마이크로프로세서가 장착될 기판을 테스트하기 위한 장치) 등의 기술이 추가되었다. 이 기술들의 약자(Thumb, Debugger, Multiplier, ICE)로부터 TDMI라는 이름이 붙었다. 100MHz 속도에서 불과 6mW만 소모할 정도로 극단적인 저전력으로 설계된 이 제품은 고성능 저전력 마이크로컨트롤러의 새로운 기준을 세우면서 시장에서의 ARM 사의 위치를 굳히게 된다. 대표적인 사례가 바로 퀄컴인데, 퀄컴의 초기 CDMA 모뎀은 당시 일반적으로 많이 쓰던 16비트 80186 기반으로 개발되었으나, 전력 및 성능 부족으로 결국 ARM으로 돌아서게 되었다.
90년대부터 2000년대 중반까지만 해도 ARM이 고성능 컨트롤러 시장에서 독주하는 상황은 아니었다. 세계적으로 보면 ARM 계열 제품들은 동아시아 쪽에서 강세였지만 일본은 MIPS나 히타치가 개발한 SH 기반 제품이 상당히 많이 쓰였고 유럽 같은 곳에서는 모토로라 계열의 68k/PPC 컨트롤러가 많이 쓰였다.
그 후 ARM9, ARM10, ARM11로 CPU 구조를 계속 발전시키면서 ARM의 시장 영역은 모바일 단말, PDA, 고성능 컨트롤러, DSP Codec으로 점차 확대되었으며 특히 90년대 후반에서 2000년대 중반까지 유행했던 임베디드 Linux의 열풍을 타고 SoC 계열의 제품이 시장에서 자리잡게 되었다. 이때 등장한 유명 제품이 바로 인텔의 StrongARM 계열 제품과 삼성전자의 S3C24x0 계열 제품이다.
2000년대 중반 이후 임베디드 열풍은 잠시 소강상태를 맞이하였지만 공유기, 차량용 내비게이션, PMP 등으로 나름 시장에 안착하는 데 성공했고, 결국 스마트폰 시대를 맞이하면서 본격적으로 말 그대로 포텐이 터지기 시작했다.
2.2. Cortex-A/R/M 도입기
ARM의 발전사에 있어서 두 번째 전기는 Cortex-A/R/M 제품군의 도입 시점에서 일어났다. 기존의 ARM 사의 CPU 구조 개발 방식은 단순히 세대마다 성능과 기능을 향상시킨 후 동일 CPU 구조에 MMU/MPU 등의 메모리 유닛을 차등 조합하여 제품군을 나누는 방침을 유지했으나 Cortex 이후부터는 용도에 따라 동시에 여러 CPU 구조를 개발하게 된다. 즉, 일반 OS 상에서 실행되는 애플리케이션 실행 능력에 중점을 둔 Cortex-A, Real-Time 용도에 특화된 Cortex-R, 그리고 마이크로컨트롤러 시장을 타겟으로 한 Cortex-M으로 제품군을 분리하였다. Real-Time은 단순히 CPU의 빠른 반응 속도를 의미하지 않는다. 오히려 신뢰할 수 있게 예측 가능한 반응 속도를 의미한다. 즉 특정 코드 루틴을 실행할 때 일반 프로세서는 항상 5ms 안에 실행될지 보장할 수 없지만 Real-Time에 맞도록 설계된 프로세서와 루틴은 어떠한 경우에라도 해당 루틴을 10ms 안에 수행할 수 있다. 이후로는 각 제품군별로 상이한 구조의 CPU 코어 제품 정책을 유지하게 된다.ARM이 자사 CPU에 고성능의 A 계열 라인업을 도입한 시기부터 스마트폰 시장이 본격적으로 활성화되면서 ARM을 기반으로 하는 AP 시장도 그에 발맞춰 성장하였고, 결국 ARM은 스마트폰용 CPU의 대명사로서 시장 지배적인 지위에 오르면서 일반인들에게도 유명해지게 되었다.
특히 Cortex 제품군이 도입되는 시점부터 ARM 사의 제품 개발 템포도 이전과는 비교할 수 없을 정도로 빨라졌다. 이전에는 2~3년마다 주요 CPU 코어를 1개 정도 발표하는 데 그쳤지만 2004년 이후 2014년 시점까지 A 계열 8종, R 계열 3종, M 계열에서 5종이 발표되면서 총 16종의 신형 코어가 개발된 셈이다. 거의 1년에 2종의 신제품이 소개된 셈. 예를 들어 2010년 기준으로 주로 사용되었던 ARM11(ARMv6)이나 ARM Cortex-A8/9(ARMv7) CPU들은 동작 클럭이 1GHz까지 도달했으며 이는 2000년대 초의 200MHz급 StrongARM(ARMv4 기반)이나 2000년대 중반의 500MHz급 ARM9(ARMv5 기반) 시리즈와 비교해보면 짧은 시간 안에 성능이 급증했음을 의미한다.
Cortex-A5와 Cortex-A7은 성능보다는 저전력에 중점을 둔 모델로, 성능은 Cortex-A7의 경우 Cortex-A8보다 조금 낫고 A9보다는 떨어진다. Cortex-A5는 현재의 스마트폰 업계가 워낙 성능 위주로 가서인지 소수의 저가형 기기에만 쓰이는 등 선진국 시장에서는 외면받은 상태. 하지만 퀄컴의 MSM 시리즈 중 MSM72xxA라는 공정 및 아키텍처가 개선된 저가 시리즈에 A5를 사용했으며 스냅드래곤 S4 라인업 중에서도 S4 play가 1.2GHz의 A5 코어를 쓴다. 그리고 한국 업체인 텔레칩스에서 A5 듀얼코어의 신제품을 내놓았다. 하지만 현재까지의 기술력으론 스마트폰의 주 전력소모는 LCD이지, ARM Core가 아닌지라 CPU를 저전력화 해봤자 대기 시간이 아닌 사용 시간 연장을 체감할 수 없다. 물론 풀로드 시에는 LCD 백라이트 최대밝기의 배 이상으로 전력을 소모한다. 이건 동일 세대의 기술력으로 성능을 낮춰도 전력 소모가 극적으로 줄어들지 않는다는 의미지 전성비 자체는 끊임없이 개선되고 있다. 예를 들어 무게를 줄이고도 대기 시간을 늘린 iPad Air의 경우 액정의 소모 전력과 함께 AP의 전성비 개선도 성공한 사례.
Cortex-A7은 저전력 중심의 CPU로, 구조가 간단하고 멀티코어로 묶으면 의외로 성능도 괜찮아 중국제 태블릿 컴퓨터 등에서 A7 쿼드코어를 사용하는 경우가 늘어나고 있다. 엑시노스 54x0 계열에서도 A15 쿼드코어를 Big, A7 쿼드코어를 Little 코어로 각기 활용했다. 그런데 가격 대비 준수한 성능(A8과 A9사이)과 비용상의 이점(코어 다이가 상당히 작다)으로 인해 전력소모가 낮아서 A7만으로 SoC를 구성하는 경우도 늘고 있는 상황. 삼성의 엑시노스 3000번대 제품이나 퀄컴의 스냅드래곤 400의 하위 라인이나 저가 칩의 대명사 MTK의 상위 라인업, 그리고 중국 박스칩의 대표주자인 Allwinner 등 여러 회사에서 주력으로 많이 사용했다.
특히 고성능 제품군인 Cortex-A는 Cortex-A9부터 비순차적 명령어 처리를 지원한다. 바로 이전에 출시된 Cortex-A8에서 ARM 사는 전력소모를 절감하기 위해 비순차적 명령어 처리 기능을 넣지 않았다고 주장하면서 많은 관련 엔지니어들을 납득시켰지만 불과 2년 후에 A9에서는 비순차적 명령어 처리 기능을 넣고도 전력을 절감했다고 주장하면서, 2년 전의 낚시를 믿은 관련 엔지니어들을 멘붕시켰다.
2013년 6월 발표된 Cortex-A17은 처음 Cortex-A12로 개발을 시작했다가 중간에 이름이 A17로 변경되었다. Cortex-A17은 A12였던 초기에는 A9를 대체하는 미들레인지 라인업의 성격으로 출발하였으나 개발이 진행되면서 A9에 A53/A7/A15등에 들어간 기술을 최적화 하면서 오히려 성능적으로 A15 수준을 유지하면서 전성비를 향상시키고 결과적으로 A15의 후속 모델로 자리매김 하였다. 대표적인 특징으로 강화된 비순차적 처리, 캐시간의 데이터 라인의 상승, NEON 유닛의 1.5배 성능 향상 등이 있다. A9 대비 3배의 명령어 발행 어레이로 IPC의 효율(클럭당 성능비) 상승. 퀄컴의 Krait나 Apple의 Swift와 비슷한 수준으로 여겨진다.
Cortex-A15의 다음 세대인 ARMv8-A 기반 Cortex-A53과 Cortex-A57이 개발되었다. ARMv8-A 아키텍처는 64비트 지원(!) 및 확장된 가상 주소 방식 (Virtual addressing)를 지원한다. A53은 A9와 비슷한 성능을 가지지만 공정은 더 작은 Little 부문의 아키텍처고 A57은 크고 성능이 좋은 big 부문의 아키텍처다. 자세한 사항은 이쪽을 참고바람.
2015년경부터는 big 부문에는 Cortex-A57의 후속으로 성능 및 전력 효율을 향상시킨 Cortex-A72가 출시되었고 LITTLE 부문에는 Cortex-A53을 이어 성능을 최대한 유지하고 전력효율을 높인 Cortex-A35가 발표되었다.
2.3. [표] 출시 제품으로 보는 역사
주요 모바일 기기에 사용된 ARM 아키텍처의 대략적인 성능은 다음과 같다.ARM 아키텍처 스펙 및 주요 채용 기기[4] | |||
명령어 세트 | 아키텍처 명칭 | 성능 | 주요 기기 |
32비트 | |||
ARMv4T | ARM7TDMI | 0.9 DMIPS/MHz | 게임보이 어드밴스, 닌텐도 DS |
StrongARM | 일부 Windows Mobile PDA | ||
ARMv5TE | XScale | 1.1 DMIPS/MHz | 일부 Windows Mobile PDA |
ARM9E | 닌텐도 DS, 닌텐도 3DS | ||
ARMv5TEJ[5] | ARM9E | QCIF~QVGA 해상도 컬러 LCD 피처폰 | |
ARMv6 | ARM11 | 1.25 DMIPS/MHz | 옴니아 II 등의 일부 Windows Mobile 단말기, 옵티머스 원, iPhone, iPhone 3G, 닌텐도 3DS 등 |
ARMv7-A | Cortex-A5 | 1.6 DMIPS/MHz | 갤럭시 M 스타일 등 |
Cortex-A7 | 1.9 DMIPS/MHz | 갤럭시 S4의 LITTLE 코어, Allwinner A31/A20 등 | |
Cortex-A8 | 2.0 DMIPS/MHz | 갤럭시 S, iPhone 3GS, iPhone 4 등 | |
Scorpion | 1.9/2.1[6] DMIPS/MHz | 옵티머스 Z, 베가 X, 베가 레이서, 옵티머스 LTE 등 | |
Cortex-A9 | 2.5 DMIPS/MHz | 갤럭시 S II, iPhone 4s, 옵티머스 2X, PS VITA 등 | |
Cortex-A12/17[7] | 3.0 DMIPS/MHz | ||
Krait | 3.1/3.39[8] DMIPS/MHz | 옵티머스 G, 베가 R3 등 | |
Swift | 3.5 DMIPS/MHz | iPhone 5 | |
Cortex-A15 | 3.5~4.01 DMIPS/MHz | 갤럭시 S4의 big 코어, 넥서스 10 등 | |
64비트 | |||
ARMv8-A | Cyclone | ?? DMIPS/MHz | iPhone 5s, iPhone 6, iPhone 6 Plus |
Cortex-A35 | 1.78 DMIPS/MHz | 미출시 | |
Cortex-A53 | 2.3 DMIPS/MHz | 갤럭시 S6의 LITTLE 코어, 갤럭시 그랜드 맥스, 테그라 X1와 닌텐도 스위치의 LITTLE 코어 등 | |
Cortex-A57 | 4.1 DMIPS/MHz | 갤럭시 S6(엑시노스7420), 테그라 X1, 닌텐도 스위치의 big 코어 | |
Cortex-A72 | 4.7 DMIPS/MHz | 스냅드래곤650/652/653 | |
Twister | ?? DMIPS/MHz | iPhone 6s, iPhone 6s Plus iPhone SE | |
Mongoose | 5.1 DMIPS/MHz | 갤럭시 S7, 갤럭시 S7 엣지 | |
Cortex-A73 | 4.8 DMIPS/MHz | 갤럭시 A8(2018)의 big 코어 | |
Ananke(Cortex-A55) | ?? DMIPS/MHz | 출시 | |
Kryo | 6.3 DMIPS/MHz | 스냅드래곤 820/821 | |
Prometheus(Cortex-A75) | ?? DMIPS/MHz | 출시 | |
Enyo(Cortex-A76) | ?? DMIPS/MHz | 출시 | |
Deimos(Cortex-A77) | ?? DMIPS/MHz | 출시 | |
Hercules(Cortex-A78) | ?? DMIPS/MHz | 출시 | |
Cortex-X1 | ?? DMIPS/MHz | 갤럭시 S21, 갤럭시 S21+, 갤럭시 S21 Ultra | |
ARMv9-A | Matterhorn | ?? DMIPS/MHz | 미출시 |
Cortex-X2 | ?? DMIPS/MHz | 미출시 | |
Cortex-X3 | ?? DMIPS/MHz | 미출시 |
3. 특징
1990년대 초부터 x86/MIPS/PowerPC 등과 같은 고성능을 지향했던 경쟁 업체들과는 다르게 일찌감치 저전력/고효율을 목표로 한 기술 시장에 뛰어들었다. 현재 ARM 사의 CPU가 저전력 고효율의 대명사가 된 이유는 이러한 수십 년 전의 결정에 기인한 바가 크다.1990년 당시 대세였던 개발과 생산, 판매를 동시에 하는 IDM 업체의 틀을 벗어나서 훨씬 모험적이었던 CPU 설계를 파는 사업 모델을 채택하였다. 그리고 그 이후로 IT 산업의 대세가 단일 칩에 시스템의 기능을 집적하는 SoC(System on a Chip)로 방향을 잡으면서 각 SoC 제작 업체들은 그에 적합한 CPU 설계를 찾게 되었고, ARM의 사업 모델이 그러한 수요에 정확히 부응하면서 ARM의 사업은 확대일로에 들어서게 되었으며, 결국 2010년도 이후로 SoC의 끝판왕이라고 할 수 있는 스마트폰용 AP 시장이 개화하면서 SoC 업계에서의 주도적인 지위를 가지고 있었던 ARM 사의 CPU 제품이 결정적인 주도권을 쥐는 계기가 되었다.
3.1. 명령어 집합
약간 변형된 RISC 명령어 구조로 1985년에 처음 개발되었다. 즉 의외로 초기 RISC 개발사와 역사를 같이 할 정도로 오래된 구조이다.대체적인 특징은 일반적 RISC와 유사하나 다음과 같은 부분은 ARM 고유의 특징이다.
- 레지스터 뱅크 구조: 고속 인터럽트 처리 모드에서 독자적으로 쓸 수 있는 레지스터 뱅크가 있다. 이 특징은 인터럽트를 빠르게 처리하는데 유효하다.
- 조건부 실행 플래그: 조건분기 명령어와 결합하여 짧은 조건분기 처리에 유효한 특징이다.
- SP(스택포인터), LR(링크레지스터), PC(프로그램 카운터)가 일반 레지스터에 포함되어 있다. 이 때문에 예외 처리가 타 CPU에 비해 독특해지게 된다.
- 뱅크당 16개의 레지스터: 통상 RISC 구조의 경우 32개 혹은 그 이상의 일반 레지스터가 있는 경우가 많으나 ARM은 다소 적은 16개의 레지스터만 있다. 게다가 위에서 언급한 SP/LR/PC가 특수 목적 레지스터이므로 실제로 사용 가능한 레지스터 숫자는 13개이다.
- 배럴 시프트 기능: 명령어 내에서 배럴 시프트 기능을 지정할 수 있다. 타 CPU의 명령어 세트에서는 명령어 두 개로 처리될 내용을 하나의 명령어로 처리할 수 있다.
- 다중 로드/스토어 명령: 단일 명령으로 여러 레지스터의 로드/스토어를 동시에 제어할 수 있다. 단일 명령어를 1사이클에 처리해야 한다는 RISC 명령어의 원칙에 위배되는 대표적인 명령어이지만 코드 크기 절감과 코드 디코딩 부하 경감(그리고 그로 인한 전력 절감)에 도움이 된다.
- Thumb 16비트 명령어 세트: ARM이 고성능 컨트롤러 시장을 석권하는데 가장 크게 일조한 특징이자 ARM의 오늘날을 있게 한 특징이다. 일반적인 32비트 크기의 ARM 명령어와는 아예 별도의 16비트 크기의 명령어 세트를 따로 가지고 있다. 명령어 크기가 16비트라고 해도 일반 목적 레지스터 크기는 여전히 32비트이므로 ARM 자체가 32비트인 건 변하지 않는다. Thumb 명령어는 마이크로컨트롤러 제품군에서는 극히 유용하기 때문에 심지어 최신형 Cortex-M 제품군은 Thumb2 명령어만을 지원하게 되었다. 사실 메모리 서브시스템의 속도가 낮거나 실행속도가 별 문제되지 않는 코드의 경우 코드 바이너리 크기를 줄이는 게 유리하기 때문에 고성능 위주의 Cortex-A가 적용된 시스템에서조차도 연산 성능에 민감하지 않은 코드들은 Thumb로 컴파일되었을 정도.
- Thumb-2 16/32비트 명령어 세트: 위 Thumb의 확장형으로, Thumb의 16비트 크기 명령어에 더해 32비트 크기 명령어가 추가된 형태. 기존의 16비트 Thumb 명령어와 섞어서 쓸 수 있다.
다만 위의 특징들은 새로 도입되는 ARMv8-A의 64비트 명령어 세트에서는 상당 부분 사라지게 되었다. 이는 저러한 특징들이 도입되는 1985년도에는 나름대로 합리적인 이유가 있었으나 기술의 발전으로 인해 굳이 명령어 수준에서의 복잡성을 늘려놓을 필요가 없게 되었기 때문. 대체적인 특징들이 컨트롤러급 저속 CPU에서 ISR을 빠르게 처리하는 데 유리한 구조라거나 코드 크기 절감에 유리한 구조 등은 수십 MHz 대역에 1~2단 파이프라인이 일반적인 시절에는 타당한 측면이 있었으나 현재 기준에서는 그다지 적합하지 않은 측면이 많다.
통상 MMU가 내장된 제품군(대표적인 예가 Cortex-A 계열)들은 리눅스나 유닉스 계열, 그리고 윈도우 CE 계열의 지원을 받는다. 반면 MMU가 아닌 보다 단순한 MPU가 내장된 제품군(대표적으로 Cortex-R)은 주로 Real-time OS(RTOS)의 지원을 받는 경우가 많다. MPU도 없는 보다 작은 규모의 마이크로컨트롤러 대상 제품군(대표적으로 Cortex-M)들은 OS의 지원이 필요 없거나, 스케줄러 수준의 단순한 OS의 지원을 받는 경우가 많으며, 이러한 제품들은 캐시도 없고 동작 속도도 수십 MHz에 불과한 경우가 대다수.
2014년경부터 ARMv8-AA-AArch64 명령어 세트가 적용된 Cortex-A5x 계열 프로세서가 시장에 출시되고 이어서 본격적으로 64비트의 시대를 열게 되었다. 이미 Cortex-A15 CPU에 적용된 RAM의 크기가 32비트 메모리 공간의 한계인 4GB에 근접하는 3GB까지 늘어난 상황이기 때문에 Cortex-A15 이후의 Cortex-A에 64비트 구조를 적용하는 것은 시기적절한 선택. 다만 64비트 CPU를 다루는 명령어라고 해도 명령어의 워드 크기는 여전히 32비트이므로 명령어 세트 구조 자체는 크게 복잡해지지는 않는다. 반면 CISC인 x86의 경우에는 64비트 구조가 도입되면서 64비트용 명령어에는 일률적으로 8bit의 prefix가 붙게 되었다.
3.2. 전력소모
소모 전력은 고성능 위주의 Cortex-A 계열의 경우도 코어당 수백 mW, Cortex-M 계열은 말 그대로 남들 대기전력 수준이 ARM의 동작전력인 경우도 흔하다. 범용 CPU의 대표격인 x86이 대체로 20~100W 정도의 전력 소모를 보인다. 다만 Cortex-A 제품군 중 고성능 제품에 한정하여 태블릿용 마켓에서 저전력 x86 제품들과의 전력 소모 수준이 겹치는 상황이 벌어지고 있다. 상세한 사항은 아래의 x86 계열과의 비교를 참조.ARM 사에서는 Cortex-A 제품군의 전력 소모 영역을 Entry/Midrange/Premium 별로 코어당 각각 150mW/450mW/750mW 정도를 목표로 잡고 있다. 프리미엄급의 경우 보통 8코어(빅4+리틀4)급 제품으로 출시되는 경우가 많으므로 ARM 코어 자체의 최대 전력 소모량은 3W 정도로 잡아도 무방하다. 단 이는 인텔 아톰의 열설계전력인 TDP(정확히는 인텔이 주장하는 상황설계전력 SDP인 2W)보다 높은 값이고 해당 코어를 제품화한 AP의 경우에는 메모리 컨트롤러와 GPU 등에서 소모되는 전력이 추가로 포함되므로 섣부른 비교는 금물이다.[9]
3.3. 성능
업계에서의 ARM 프로세서의 성능에 대한 평가는 전통적으로 전력당 성능비는 엄청난데 성능 자체는 별 볼일 없는 CPU였다. (물론 현재도 x86에 비교하면 크게 다르지 않은 기조이다.) 따라서 과거엔 성능이 필요한 경우에는 ARM보다는 MIPS나 PowerPC 계열 제품 중에서 고성능 제품군을 고르는 경우가 많았다. 다만 이러한 상황은 그 동안 ARM이 전력 소모 상한을 정해놓고 그 범위 내에서 성능을 추구하는 개발 방향을 잡아서 당연한 일이다. 사실 ARM을 주로 사용했던 업계 환경은 성능에 대해서는 어느 정도 무관심했던 분위기 때문에 성능지표에 대한 계측이나 발표도 크게 관심을 받지 못했다.ARM의 성능 평가는 주로 DMIPS/MHz로 표기되어 있는데, 이는 Dhrystone 명령이 해당 단위당 몇 개 처리되느냐를 의미한다. 이는 같은 명령어를 사용하는 CPU 사이에서만 비교가 가능한 지표이지 다른 명령어 구조 기반의 CPU끼리는 1:1로 매칭이 가능한 지표가 아니다. 같은 명령어 세트 사이에서도 마이크로아키텍처가 변경되면 1:1 비교가 어렵다. 일례로, A8과 A7을 비교 시 A8이 약 5% 정도 우위에 있지만, 실 사용을 해 보면 A7이 약 20% 우위로 보이는 A9과 맞먹는 경우도 많다. 이는 A7의 마이크로아키텍처가 한참 뒤에 개발되면서 좀 더 최적화될 시간이 있었고 A7은 NEON SIMD 유닛이 긴밀하게 통합되어 있기 때문. RISC의 특성상 단일 명령어가 수행하는 기능의 양은 CISC보다 떨어질 수밖에 없다. 특히 로드/스토어 명령을 따로 쓸 필요가 없는 CISC 명령어들은 메모리를 대상으로 하는 단일 연산명령어가 RISC의 로드/연산/스토어의 세 명령어를 한꺼번에 수행할 수도 있다.
성능 측정상의 문제점들은 2014년 기준으로 몇 가지 변화된 부분이 있는데, 우선 모바일 산업이 급격하게 발전하면서 Geekbench나 Antutu, CineBench 같은 모바일용 벤치마크 프로그램들이 시장에 도입 되면서 해결되는 과정을 밟고 있다.
또한 모바일 AP 업계들이 경쟁적으로 저전력-고성능 CPU 코어를 개발하면서 ARM 제품군의 절대 성능 자체가 급격하게 올라가는 중이고 전성비에 초점을 맞춘 Cortex-A7/Cortex-A53/Cortex-A17 제품군들 역시 활발하게 개발되면서 성능과 전성비 영역 모두를 아우르는 모습을 보여주고 있다. 즉 제품군이 성능 위주와 전성비 위주의 제품으로 분화되고 있는 모양새이다.
3.4. big.LITTLE
ARM의 아키텍처들이 고성능화 되면서 갈수록 떨어지는 전성비(전력 대비 성능 비율) 문제를 해결하기 위해서 개발한 전력 소모율 개선 솔루션. 자세한 내용은 ARM big.LITTLE 솔루션 문서 참조.3.5. 경쟁 제품 비교
3.5.1. MIPS
ARM과 MIPS 모두 RISC구조 CPU 아키텍처의 대표 주자로 80년대 중반 유사한 시기에 시장에 첫 선을 보였으나, 90년대 이후로 MIPS는 하이엔드 제품 개발에 집중하는 동안 ARM은 저전력 구조의 SoC 및 IP 라이선스로 사업방향을 바꾸면서 큰 접점은 없는 상태였다. 하지만 MIPS 측이 2000년대 전후로 인텔 아이태니엄의 시장 진입에 때맞춰 하이엔드 제품 개발에서 철수하면서 ARM과 유사한 IP 라이선스 사업으로 전환하면서 직접적인 경쟁상대가 된다.ARM 대비 성능상의 우위로 인해 상대적으로 고성능이 필요하던 멀티미디어나 네트워크 관련 SoC 등에 많이 채택되었으나 이후 ARM에 의해 시장을 뺏기더니 2010년도 이후로는 우수한 전성비를 기반으로 스마트 시대의 흐름을 타며 급격히 영역을 넓힌 ARM에 비해 사실상 의미 없는 수준의 시장 점유율을 보여주는 상황. 가정용 공유기 SoC도 한 동안은 MIPS 아키텍처의 독무대였으나 ARM이 점점 그 시장도 갉아먹고 있다.
3.5.2. AMD64
자세한 내용은 AMD64 vs ARM 문서 참고하십시오.4. Arm 아키텍처
자세한 내용은 Arm 아키텍처 문서 참고하십시오.5. 제품군
2016년 현재 거의 모든 스마트폰에 ARM 기반 AP가 들어가며, 스마트폰 외에도 PDA, 닌텐도 GBA, 닌텐도 DS, 3DO, 게임파크의 GP32 게임파크홀딩스의 GP2X, 닌텐도 3DS와 PS Vita, 닌텐도 스위치, 캐논 파워샷 시리즈, 태블릿 컴퓨터인 iPad, 갤럭시 탭 등 거의 모든 임베디드 시스템에 사용되고 있다. 그야말로 임베디드의 제왕. 심지어 메모리스틱에서도 쓰인다.64비트 기반의 명령어 세트 ARMv8-A의 도입이 가시화 되면서 서버시장 진입을 위한 발걸음이 빨라지고 있다. 특히 삼성전자 S.LSI, 브로드컴 등을 위시하여 서버용 64비트 전용 아키텍처를 개발하는 업체들이 우후죽순처럼 올라오고 있고 서버 수요업체인 구글이나 페이스북 등도 ARMv8에 대해 자사 소프트웨어를 개발하려는 정황이 계속 포착되고 있으며, Cortex-A57을 사용한 AMD의 옵테론 A1100 시리즈가 발매되었다. ARMv9 부터는 아예 32비트 레이어까지 들어내 완전한 64비트 CPU가 되었다.
현재 ARM의 최신 라인업인 Cortex 시리즈를 세분화해 보면 다음과 같다.
5.1. Cortex-X
스마트폰의 높아지는 성능 요구에 따라 2020년에 신설된 라인업. Cortex-A보다도 높은 성능을 보여준다. 최근 스마트폰에서 DynamIQ를 이용하여 고성능 고전력, 저성능 저전력 코어를 모두 탑재하는 추세에서 고성능 단일 코어의 역할을 할 것으로 기대됐으나 끔찍한 발열과 전성비로 문제를 일으키고 있다.5.2. Cortex-A
엔트리 레벨부터 서버급까지 다양한 플랫폼에서의 지원을 목적으로 만들어진 제품군으로 ARM의 주력 상품군이다. 스마트폰, TV 등의 멀티미디어 기기나 아래의 M/R 제품군보다 많은 양의 리소스를 처리해야 하는 임베디드 기기에서 주로 사용된다. 자세한 내용은 항목 참조. A는 Application이다.5.3. Cortex-R
RTOS 기반으로 작동하는 제품을 위한 라인업, R은 말 그대로 Real-time이며 MPU(메모리보호유닛)이나 TCM(Tight-Coupled memory)등 RTOS에서 신뢰성 높은 동작을 위한 장치들을 포함하고 있다. Cortex-A보다 대체로 낮은 성능을 가지고 있지만 R7 같은 모델은 일부 A 계열 제품을 능가하는 성능을 가지고 있기도 하다. 주로 3G/LTE 모뎀이나 RTOS 기반의 스탠드-얼론 제품, DSP 등의 용도로 사용된다.5.4. Cortex-M
이름 그대로 MCU, 즉 Microcontroller unit을 위한 라인업이다. 2010년도까지는 가격이 싼 8비트/16비트급 MCU에 매출이나 생산 규모에서 가격 문제로 뒤쳐졌다. 그 이후 일부 Cortex-M 계열 제품의 평균판매가격(ASP)이 1달러 벽을 돌파한 것으로 기점으로 결국 매출 기준으로 32비트급 MCU가 전체 MCU 시장에서 1등 자리를 차지하면서 32비트급 MCU 코어가 주력인 ARM의 Cortex-M이 MCU 시장에서 주도적 위치를 차지하게 되었다. #5.5. Neoverse
서버시장을 위한 제품군이다.6. 대표적인 라이선스 제조사
ARM은 팹리스 업체이므로 아키텍처 개발만 하며, 직접 제조는 거의 하지 않기 때문에, 이 아키텍처를 라이선스 생산하는 CPU의 아키텍처를 의미하는 말로 쓰인다.- Apple: ARM 기반 CPU 중, Apple이 개발한 칩셋이 다른 칩셋을 3년에서 최소한 2년은 더 앞서가는 모습을 보여준다.[10] Apple Silicon 항목 참조.
- 퀄컴: 성능면에서는 Apple A 시리즈보다 2년 정도 뒤쳐지는 모습을 보여주지만 안드로이드용 칩으로선 1등을 달리고 있다. 또한 Apple과는 달리, 셀룰러 통신칩도 함께 만드는 회사라, 통신칩도 칩셋에 전부 임베디드할수 있다는 면에서 유리한 면도 있으며, 다른 제조사와 달리 윈도우를 공식적으로 지원하는 제조사이기도 하다. 자세한 사항은 퀄컴 스냅드래곤 항목 참조
- 삼성전자: ARM을 라이센스하여 삼성 엑시노스 시리즈를 생산중이다.
- Texas Instruments(TI): 모바일용(태블릿, 스마트폰) 시장에서는 철수했지만 모바일을 제외한 임베디드 영역의 사업은 계속 이어 간다고 한다.
- NVIDIA: NVIDIA Tegra 시리즈를 생산했다.
- 브로드컴
- 프리스케일: 모토로라의 반도체 부문 분리
- IBM
- 텔레칩스 - 주로 PMP나 저가형 태블릿 컴퓨터에 들어가는 제품군을 생산. 한국 회사다.
- 미디어텍 - 대만의 반도체 회사, 중저가형 스마트폰 AP로 많이 사용되고 있다.
- 하이실리콘 - 중국 화웨이의 자회사. 화웨이의 스마트폰에 주로 들어가는 Kirin 시리즈를 만든다.
- LG전자: 퀄컴과 NVIDIA 등의 AP를 주로 쓰고 있지만, 삼성전자처럼 직접 AP를 출시했었다.
- 락칩: 중국의 AP 설계사. 중국제 태블릿 컴퓨터 등에 주로 사용된다.
- Allwinner: 중국의 AP 설계사. 락칩과 마찬가지로 중국제 태블릿 컴퓨터 등에 사용됨.
- 마벨 테크놀로지: 인텔의 XScale을 제조했던 ARM 사업부서를 인수해서 지금도 제조를 하고 있다. 과거에는 여러 PDA나 블랙베리에 들어갔었다.
- Ampere Computing: 전직 Intel 및 AMD 직원들이 2017년에 설립한 회사로 서버용 제품인 최대 128코어의 Altra시리즈를 주력으로 하는 회사이다. 특히 CEO가 전직 Intel 사장이었음.
- 테슬라: FSD칩에 들어가는 CPU를 Cortex A-72 기반으로 설계했다.
- STMicroelectronics: ARM Cortex 시리즈를 이용하는 STM32 마이크로컨트롤러를 생산한다. 32비트 임베디드 시스템에 자주 사용되는 제품군이다.
6.1. 모델
모델명은 모두 라이센스 생산명이다.MP3P용 탑재 ARM 모델은 이쪽에서 확인.
- XScale 시리즈 - 과거에는 인텔이, 지금은 Marvell이 만드는 SoC이다. 현재 64비트를 지원하는 최신 쿼드코어 SoC인 PXA 1908이랑 옥타코어인 PXA1936을 제조하고 있다. 또한 이전에는 갤럭시 탭3 7.0, 갤럭시 S III미니 밸류 에디션 사양으로도 썼다.
- 삼성전자 SCXXXX 시리즈 - 삼성에서 제조한 SoC이다. HP의 iPAQ 일부 기종에 탑재되었다. 멀티미디어 성능이 클럭 대비 훌륭하다고 알려져 있다. 대체로 가격이 싼 편이라 보급형에 많이 들어간다. 국내 전자사전인 누리안 Z1도 이 SoC가 탑재되어 있다.
- Texas Instruments DaVinci 시리즈 / OMAP 시리즈 - 멀티미디어 코덱을 칩셋 자체에 탑재한다는 개념을 처음 개발한 칩셋. SoC 내부에 탑재된 CPU 코어의 성능은 떨어진다는 평. 2013년부터 모바일 AP 사업은 손을 떼고 기타 임베디드 및 차량용 AP에 영업력을 집중하고 있다.
- 퀄컴 스냅드래곤 - 안드로이드 ARM 칩셋 중 탑티어이다.
- 삼성전자 엑시노스: iPhone 3GS에 탑재되었던 허밍버드로 시작하여, 후속 SoC로 출시된 엑시노스 4210에서부터 '엑시노스'라는 브랜드를 적용하기 시작했다.
- NVIDIA Tegra - 스마트폰 시장은 포기하고 태블릿, 콘솔, 자동차 전장품으로 방향을 돌렸다. 이는 경쟁사들의 AP 대비 GPU 성능만 쓸만하고 CPU성능에선 되려 전성비가 밀리는 모습을 보여준 것도 한몫했다.
- 프리스케일 i.MX5/6 시리즈 등을 출시하고는 있는데 이 제품은 주로 모바일용이 아닌 차량/임베디드용으로 기획되었다.
- 텔레칩스 TCC88XX 시리즈 - 진저브레드 및 허니콤 지원을 위한 시리즈.
- Apple Silicon - Apple 자사 제품용. 특히 싱글쓰레드 성능은 정말로 압도적으로 높은데도 타사 대비 칩셋 다이사이즈나 전력소모는 오히려 낮은 엄청난 전성비를 보인다.
- ST-에릭슨 NovaThor(노바토르) - 소니 모바일의 엑스페리아 P, 삼성전자의 갤럭시 에이스 2, 갤럭시 3 미니 등에 사용되었다. 2012년 12월경에 AP 사업 철수 얘기가 나오다가 결국 2013년에 철수.
- 미디어텍 MTXXXX: 대만제 칩셋이며, 가격이 저렴하다는 특징으로 중국제 태블릿 컴퓨터에 많이 사용되고 있다. 물론, 밑에 나열된 저가형 칩셋과 달리 기본 성능도 탄탄하다는 큰 장점이 있다. 통신칩까지 들어갈수 있다는 장점 때문에 패블릿이나, 갤럭시 탭과 같은 몬스터폰 종류에도 많이 사용되고 있다. 하지만 2015년도에 나온 Helio 시리즈들은 스냅드래곤이나 엑시노스와 경쟁이 될 만큼 성능과 가격이 올라갔다.
- 하이실리콘: 중국 화웨이의 자회사인 AP 제조사, K3V2계열의 ARM Cortex-A9 칩과, Kirin 시리즈의 A15 칩이 존재한다. 사실상 화웨이 단독사용이지만 삼성과 마찬가지로 회사의 스마트폰 출고량이 워낙 많다 보니 메이저한 칩으로 취급받는 중. 성능 또한 매우 준수한 평가를 받는다.
그 외 ARM 코어를 탑재한 저가형 칩셋류
이러한 모델들은 대부분 원가 절감을 위해서 GPS, 통신칩은 포함되지 않으며, 심지어 블루투스조차 빠지는 경우가 종종 있다.
- 락칩 RK 시리즈 - 2011년에 나온 RK2918의 경우는 중국산 태블릿에 무더기로 깔리는 중인데 상당히 쓸만하다는 평을 받고 있다.
- Allwinner A 시리즈 - 대표적인 모델이었던 A10이 중국에서 락칩 RK2918과 경쟁하는 칩셋인데 서로 장단점이 있다는 평을 듣는다. 락칩 RK2918은 장점이 I/O 성능이 좋은 대신 그래픽 부분이 살짝 약하고 동영상 코덱이 약간 부족한 것이 단점이다.
- AMLogic - Allwinner와 RockChip의 서로의 단점, 그래픽 성능 + I/O 성능을 서로 보완한 물건이다. 다들 55nm 이하 공정으로 가는 판에 홀로 65nm 공정인 점에서 흠.
- VIA WonderMedia - WM8650 ARM9와, WM8850 Cortex-A8? 9? 가 있다. 주로 아이패드 짝퉁 디자인, 감압식 패널에, 2USB Port, Eternet 단자가 있는 20핀 외장 OTG 젠더를 사용하는 것이 큰 특징이다. 이더넷, HDMI, 일반 USB 등 수많은 외장 포트를 가진 스마트북/넷북 모델로도 많이 출시되어 있다.
- Nufront - AML과 유사하나 Mali MP 시리즈가 아닌 싱글이다.
- Action - A9 Family 기반 ATM7029 MP4 GC1000 MP2 모델이 존재. 공식사이트에선 ARM v7 instruction set, A9 family 라고 되어 있으나. 각 안드로이드 포럼에선 A5, A7, A9, A5 dual+A9 dual 등의 이견이 엇갈라고 있으며 대다수의 의견은 A5로 추정이 되고 있다. 최근에는 ATM 7021 MP2와,(ATM7029와 동일 코어로 추정.) 공식사이트에서도 Family 가 아닌 A9 이라고 소개하는 ATM7039 MP4 + SGX 544가 출시되었다,
7. 개발 환경
AWS ARM 인스턴스, M1 Mac이 있지만 그외의 환경에서 개발한다면 대부분 프로젝트가 Cross-compile 환경에서 개발된다. 과거엔 연산 성능이 좋은 컴퓨터가 매우 비싸서 비효율성을 용납하지 않았지만 지금은 컴퓨터보다 인건비가 비싸므로 사람을 효율적으로 굴리기 위해서 컴퓨터가 더 고생해도 된다.Linux 계열 빌드 머신으로 개발할 때에는 당연히 Linaro나 Buildroot 등의 GCC Toolchain을 사용하는 경우가 대다수이고, 윈도우 환경에서는 ARM에서 판매하는 ADS, RVDS 개발환경을 사용하거나 Cygwin 위에서 GCC 툴체인을 돌리는 경우도 있다. 최근에는 ARM 기반 컨트롤러 제품을 대상으로 하는 Keil 사의 개발환경도 사용되는 추세. WSL의 출시 이후 WSL 환경에 GCC를 올리는 사례도 늘어났다.
대표적인 스마트폰 플랫폼인 안드로이드의 경우 프로젝트 소스 안에 빌드에 맞는 GCC Toolchain을 제공하므로 별도의 Toolchain을 구축할 필요가 없다. 사실 엄밀히 말하면, 보통의 안드로이드 App은 ART라는 이름의 JVM 위에서 돌아가므로 기계어 코드를 만들 필요가 거의 없고, 리눅스 커널이나 안드로이드 OS 자체를 제작할 때, 혹은 네이티브 코드를 만들 때에나 리눅스 환경에서 크로스컴파일을 하면 된다.
지나친 커스텀으로 인해 OS 개발자들이 싫어한다고 한다. 리누스 토르발스 또한 ARM을 보면 골치아파진다고 토로했으며, # 명령어 세트 같은 것 보다 호환성, 표준화, 지원여부가 더 중요하다면서 x86 계열은 이게 더 잘되어 있어 ARM보다 우월하다고 했다. #[11]
8. ARM 기반 AP 벤치마크 모음
자세한 내용은 ARM 기반 AP 벤치마크 모음 문서 참고하십시오.9. 관련 문서
[1]
이 당시에는 이름이 로저 윌슨(Roger Wilson)이었으나 1994년
성전환 수술을 받아 개명했다.
[2]
영국 BBC의 교육용 컴퓨터 기획을 Acorn에서 수주해서 개발한 것으로, 보조 프로세서를 연결할 수 있는 인터페이스를 갖추고 있어서 다양한 확장 프로세서 키트를 연결해 쓸 수 있었다.
[3]
하지만 Acorn사는 이 즈음부터 사세가 기울어, 결국 2000년
브로드컴에 인수되는 것으로 역사에 종지부를 찍게 된다.
[4]
네이밍 순서대로 나열함
[5]
어미 J는 Jazelle DBX(Direct Bytecode eXecution)를 의미한다. Jazelle DBX는
Java Virtual Machine 가속 기능으로 주로
피처폰에 사용되었다.
[6]
S2,S3
[7]
리네이밍급 변경
[8]
Krait300,400
[9]
과부하가 걸리는 작업을 할 땐 "최대" 얼마라는 수치가 맞을 수 있지만, 부하가 적은 일상적인 작업을 지속적으로 할 땐 최대 전력 소모량 수치와는 동떨어진 전력 소모 결과를 낼 수도 있다. 가령 인텔(아톰)은 "아무것도 안할 때(마우스 조차 움직이지 않을 때)" ARM보다 전력을 적게 먹고, 최대 전력 소모 수준은 ARM보다 낮다. 하지만 그 중간 수준에서는 ARM의 효율성을 따라가지 못하는 경향을 보이고, ARM은 웬만해서는 클럭 조정을 통해 발열도 관리하기에 최대전력소모를 하지 않으며, 일상에서 사용하다보면 차가운 ARM 뜨거운 Intel이라는 인상을 안겨준다. 참고로 인텔의 TDP는 울트라북 15W, 셀러론 6W, m시리즈 4.5W, 아톰은 TDP(소위 최대발열값)를 숨기고 대신 SDP(소위 평균발열값)로 낮춰부른다.
[10]
Apple이 자신이 원하는 칩셋을 주문제작하기 위해 만든 합작회사 ARM의 창립 멤버이자 현재까지도 막강한 영향력을 유지하고 있는 점 덕분에 여러 가지 면에서 ARM 진영 전체의 개발 방향 주도권을 크게 차지하고 있기도 하다.
[11]
다만 토발즈가 ARM 자체를 싫어하는 건 아니다. 그는 항상 노트북급 성능을 가지는 ARM CPU가 있었으면 좋겠다고 했으며, 실제로 2020년 애플에서 x86 대신 ARM(
Apple Silicon)을 넣은
Mac을 발표하자, 해당 소식에 기뻐했다.
#