AMD64 vs ARM

 




1. 개요
2. 각 아키텍쳐의 특징
2.2. ARM(AArch64)
3. 전개
3.1. 1980년대
3.2. 90년대~2000년대
3.3. 2010년~2013년
3.4. 2014년
3.5. 2015년
3.6. 2016년
3.7. 2017년
3.8. 2018년
3.9. 2019년
3.10. 2020년
3.11. 2021년
4. 전망
4.1. ARM 우세
4.2. x86 우세

<color=#fff> [image] vs. [image]

1. 개요


AMD64ARM의 성능 비교를 위한 문서이다.

2. 각 아키텍쳐의 특징



2.1. AMD64


원래는 1999년에 x86구조를 유지하면서 64비트를 지원하도록 설계된 아키텍쳐였다. 16비트, 32비트를 넘어 64비트까지 오게된 것. 컴퓨터 역사상 유래없는 대확장이 두번이나 이뤄졌지만 하위 호환성으로 인해 구조가 복잡하다고 말하지는 않는다. 일부 구시대의 잔재가 사라졌지만 그것은 지금 시점에서는 크게 의미를 가지지 않기 때문에 명령어 구조에서는 예나 지금이나 거의 비슷하다.
ISA의 특징이라면 일단 CISC이며 IA-16부터 확장되어 온 만큼 구조가 난잡하다. 여러 분야에서 쓰였기 때문인지 다양한 명령어를 지원한다. 그러나 이 사실은 어느정도 회의적인것이 지금은 AMD64 시대이고 더이상 레거시 명령어를 사용하지 않는다. 레거시 명령어들을 생각하고 바라본다면 복잡한건 맞지만 그런 부분을 제외한다면 AMD64는 충분히 잘 설계된 명령어 체계인 것이다.
인텔의 8비트 CPU들과 호환성을 가지기 위해 상태 레지스터의 첫번째 바이트는 인텔 8080의 것과 완전히 동일하다. 또한 누산기를 중심으로 사용했던 흔적이 남아있는데 AX 레지스터 전용의 명령어들이 존재한다. 예를 들어 곱셈, 나눗셈 명령과 입출력 명령어는 누산기에서만 실행이 가능하다. 이 내용들은 AMD64에 들어와서도 여전히 해결되지 않았거나 유지되고 있다.
소수점 연산을 위한 x87 명령어 집합은 x86의 성능 향상을 더디게 만들었는데 8레벨의 스택을 가지고 있고 누산기 구조를 사용하고 있다.
32비트에서는 더 많은 기능을 지원하기 위해 주소 지정 모드를 변경했지만 역할만 약간 바뀌었을 뿐 달라진 점은 거의 없다. 이는 AMD64의 기반이 되었다.
64비트에서는 더 많은 레지스터와 메모리 공간을 지원하기 위해 일부 명령어들이 삭제되고 대신 다른 역할이 분배되었다. 기존의 32비트 명령어들과 구분하기 위해 명령어 앞에 접두사가 붙는 것으로 해결했기 때문에 32비트 명령어와 크게 차이나지 않는다.
AMD64의 가장 큰 장점은 호환성과 단일화라고 볼 수 있다. AMD64 기반 CPU를 설계하는 회사는 사실상 AMD와 인텔밖에 없고 기술 교환이 있기 때문에 두 회사가 호환성을 단절하고 다른 방향으로 나갈 가능성이 없으며 단일화되어있어 인텔이 지원하는 기술은 대부분 AMD도 지원하기 때문에 소프트웨어의 가용율은 100%에 달하는 것을 보장할 수 있다. ARM의 경우 제조사의 커스텀이 상당 부분 들어가기 때문에 제조사가 다른 경우 소프트웨어 호환성을 기대할 수 없다.

2.2. ARM(AArch64)


ARM은 RISC 철학에 따라 엄격하게 저전력 고효율로 설계된 CPU였기 때문에 고효율은 맞지만 고성능을 의미하지 않았다.
엄격하게 고효율성을 생각해서 명령어 집합 구조는 동시대의 다른 CPU들과 거리가 멀다. 그러나 이는 ARMv8 이전의 이야기로 이후로는 다른 RISC CPU들과 큰 차이를 보이지 않게 되었다.
그로 인해 명령어 집합 구조가 크게 바뀌게 되었으며 어셈블리어 구조부터 호환이 되지 않는다. AMD64의 경우 x86은 개인용 컴퓨터 시장이 주류였기 때문에 어셈블리어의 필요성이 높지 않았다. 하지만 ARM은 임베디드가 주 목적으로 C언어보다 어셈블리어가 많이 쓰인다. 그러나 지금은 소프트웨어 규모가 커졌기 때문에 크게 문제될 내용은 아니다.
그래서 두 프로세서의 성능 자체를 비교하는 것은 적절한 비교 방법이 아니다. 각자의 설계 철학, 이념에 따라 갈리기 때문에 한쪽의 일방적인 승리가 아닌 비슷하게 흘러갈 것이다.
2013년 기준으로 ARM 역시 코어설계나 명령어 세트 라이센스 기반의 사업모델 경우, 많은 공급업체들이 다양한 특성을 가진 제품들을 개발하고 양산하기 때문에 ARM 생태계에서 사업을 진행하려는 업체들은 해당 생태계 내에서 자신에게 적합한 제품을 찾을 확률이 높고 여러 공급업체의 존재로 인해 가격협상력을 확보할 수 있으며 특정 업체의 제품에 문제가 생기더라도 금방 다른 대체재를 찾기 쉽게 된다.[1] 즉, 보다 저렴하고 안정적이면서 최적화된 사업을 하는 데 한결 유리한 조건을 가지고 있기 때문에 미디어 소비기기에서는 여전히 ARM이 우위를 쥐고 있다.
ARM의 가장 큰 문제는 파편화이다. x86 계열이 하이퍼바이저 관련 기능 정도만 파편화 되어 있는것에 비해 (AMD-V, VT-x) 32비트의 IA-32, 64비트의 AMD64만 존재하며 프로세서의 확장 기능 또한 SSE, AVX는 스펙상에 존재하기에 동일한 바이너리 코드가 벤더간 동작에 있어 별다른 문제 없이 호환이 가능한 것에 비해 ARM은 기본 명령어 세트부터 ARM v6/v7/v8/v8-M/v8.1-A/v8.2-A/v8.3-A/v8.4-A/v8.5-A/v8.6-A/v9[2], Thumb1/2/EE, Jazelle, NVIC, VIC, GIC v2/v3/v4 등으로 나뉘어 있는데다 확장 기능도 NEON, SVE, DSP, VFP 등으로 쪼개져 있어 삼성이나 퀄컴이나 모두 똑같은 ARM이지만 기본적인 호환성만 가질 뿐 완전히 다른 CPU라 봐도 무방해 바이너리 코드가 다른 프로세서에서 정상적으로 동작할 것이라는 보장을 할수가 없고 이는 임베디드용 프로세서도 크게 다르지 않다. 앞으로 ARM이 해결해야 할 큰 문제이고 AMD64와의 경쟁에서 유리한 점은 아니라는 것이다. Apple은 다른 방법으로 해결했는데 아예 폐쇄적인 플랫폼을 만들어서 호환성 문제를 없애고 극한의 최적화가 가능하게 했다. 그 이유는 Apple의 iOS는 Apple의 칩에서만 구동되기 때문이다. 이 문제 때문에 리누스 토발즈는 ARM보다 x86이 더 낫다면서 ARM에게 실망했다고 했다.#

2.3. 명령어 집합의 비교


x86은 땜빵용, ARM은 저전력 고효율용으로 설계된 것은 맞지만 실제로는 기본적인 명령어 집합이 성능에 영향을 끼치는 것은 제한적이다. 이것에 관해서는 관련 연구가 존재한다.[3] 명령어 집합구조(ISA)가 마이크로아키텍처의 설계 및 코어의 성능에 영향을 끼치는 것은 분명하지만 어느 정도의 수준이 되면 마이크로아키텍처 선에서 정리가 될 것이다. 예로 아토믹연산 등에 관한 명령어가 아예 존재하지 않고 락 등을 위한 하드웨어 지원을 발동시킬 명령어 자체가 없는 ISA라면 멀티코어 성능은 그야말로 박살이 날 것이다. 그러나 이정도는 AMD64나 ARM이나 MIPS나 모두 갖추고 있어서 이 부분에 대해선 ISA의 영향력이 크게 떨어진다.
x86 명령어 집합은 AMD64에 들어서 확장이 되었지만 여전히 x86-32에서 정립된 구조를 사용하고 있으며 일부 구시대의 잔재가 사라졌을 뿐 여전히 x86이다. 즉 수십년전의 80386과 명령어 집합이 크게 차이나지 않는다. 반면 ARM은 ARMv8로 넘어오면서 명령어 집합을 완전히 갈아엎었고 그 전의 명령어 집합하고는 아무런 호환성이 없게 되었다. 하지만 ARM의 성능이 크게 개선되지는 않았다.
그러나 x86은 MMX, SSE, AVX를 거치면서 성능이 폭발적으로 증가하게 되었고 ARM도 마찬가지이다. 애플의 칩이 성능이 높은 것이 ARM의 성능이 높다는게 아니라 SIMD 기술이 강하다는 것이다. x86도 SIMD 기술 없이 프로그래밍을 할 수는 있지만 그렇게 되면 게임도 못돌린다. 물론 동영상도 제대로 재생할 수 없고 거의 모든 멀티미디어가 불능이 되버린다.
SIMD와 같은 프로세서 확장으로 비교한다면 x86계열이 더 앞서 나가 있는데 SSE/AVX가 단순 벡터 연산 명령어에만 국한되어 있지 않고 유틸리티 연산 명령어가 함께 포함되어 있다. 벡터 연산 끼리만 비교해도 ARM의 Neon이 SSE와 동일한 128비트 크기의 레지스터를 가지고 있는것에 비해 x86의 AVX-512는 512비트 크기의 레지스터를 가지고 있어 시간당 스루풋이 더 높다. ARM쪽도 64비트 ISA인 AArch64 부터 최대 2048비트의 SVE가 옵션으로 존재하나 2048비트는 스펙상에만 구현되어 있다. 실제로 이를 사용한 존재하는 프로세서는 후지쯔의 A64FX 가 512비트의 SVE 벡터를 지원하나 이 제품은 슈퍼컴퓨터를 위해 만들어진 제품인 것에 비해, x86의 256비트 연산폭을 가진 AVX는 개인 사용자 레벨에서도 흔하게 보급되어 있고 더 나아가 512비트의 연산폭을 가진 AVX-512는 엔터프라이즈와 하이엔드 제품군에 한정되어 있긴 하나 개인 사용자도 사용이 가능한 것에 비해 ARM 시장은 Neon만이 주력으로 사용되고 있다. 다만 512비트의 거대한 레지스터를 가진 AVX-512는 분명히 성능은 막강하나 파편화 문제로 인해서 비판도 적지 않게 받고 있다. 리누스 토발즈는 아예 AVX-512를 대놓고 극딜하기까지 했다.
명령어집합별로 고유의 특징적 기능들이 존재하는 것은 사실이나 그 영향력이 매우 심하지는 않을 것이다. 또한 명령어집합의 우수성은 성능만으로 결정되는 것이 아니며 확장성 코드의 압축성 등 복합적으로 평가되어야한다.

3. 전개




3.1. 1980년대


1980년대 중반에 처음 ARM이 출시되었다. 그리고 x86과 ARM 양 제품은 PC 시장을 타겟으로 경쟁하였고, 이때는 x86의 완승으로 끝났다.

3.2. 90년대~2000년대


이후 ARM이 PC를 제외한 SoC 위주로 사업을 영위하게 되면서 90년대에는 근본적으로 차지하는 시장영역이 다른 두 제품이 경쟁하는 일은 거의 없었다.
다만, 2000년대 초반에는 인텔이 아이테니엄등의 다른 아키텍쳐 사용을 시도하였는데, 그 중 ARM 아키텍쳐도 있었다.[4]

3.3. 2010년~2013년


나무위키에는 기술명의 표제어로 생성된 AMD64문서를 따라 AMD64라고 적었다지만, AMD는 2009년에 이미지온 기술퀄컴에 매각하는 등 더크 마이어가 모바일 경시하다 잘리면서[5] 2019년에 삼성과 엑시노스 관련 파트너쉽을 맺기전까지 스마트폰 CPU 시장에서 없었다보니, 사실상 ARM VS 인텔이다.
그리고 이때부터 경쟁은 거의 스마트 디바이스 위주로 진행되었다.
2010년 초반부터 AMD64 진영의 인텔 측에서 아톰 계열 제품을 필두로 모바일과 태블릿에 적합한 저전력 제품을 개발하려는 노력이 지속되고, ARM 계열 제품도 Cortex-A15에서는 성능 확보에 중점을 두고 개발되면서 양 제품의 전력소모 갭은 거의 없어진 실정이다. 특히 2012년 4월에 출시된 메드필드부터는 ARM과도 충분히 경쟁할 만한 전성비를 보여준다. 이는 어지간히 설계가 막장으로 흐르지 않는 이상 결국 전력소모와 성능은 비슷하게 갈 수밖에 없다는 것을 보여주는 좋은 예.
2013년 기준으로 인텔의 신형 아톰 계열 제품인 베이트레일 4코어가 SDP 기준 2W에 터보클럭시의 소비전력 4W, 그리고 성능면에 있어서 기존의 AMD64 코어 아키텍처에 준하는 성능을 보여주면서 전성비와 성능 양쪽 모두에서 괄목할만한 발전을 보여주고 있으며, 실제로도 전성비 상 ARM과 큰 차이를 보이지 않는 상황이고 인텔측에서도 ARM과 대응하기 위해 저가로 프로세서를 공급하고 있으나 아직도 판매량에서는 심히 후달리는 모습을 보여주었다.

3.4. 2014년


모바일 시장을 타겟으로 하여 설계된 최초의 제품군인 베이트레일 계열 제품이 시장에서 선을 보이기 시작했다.
하지만 성능이 기존에 알려진 것보다 뛰어나지 않다. 베이트레일이 채택된 넥서스 플레이어에서의 GeekBench 점수는 ARM의 프리미엄급 제품군 대비 절반 수준에 불과하다. 결국 2014년 동안의 모바일 AP의 성능 경쟁은 Apple-엑시노스-테그라 의 3파전으로 전개되는 양상을 보이게 되었다.
또한 발열 문제가 예상했던 것보다 영 안 좋다. 때문에 스마트폰용 베이트레일은 2014년 동안 출시된 경우가 드물었고 타블렛용 버전인 무어필드 역시 발열문제를 겪고 있다.
2014년 출하량 4000만 대 목표를 달성하기 위해 주로 중국 화이트박스 업체들을 대상으로 무상에 가까운 가격으로 출시하면서 인텔의 관련 사업부의 적자 규모가 천문학적인 숫자로 불어났다. 그럼에도 불구하고 4000만대 목표 달성이 불투명한 상황. 사실 4000만대 출시에 성공하더라도 전체 모바일 AP SoC 시장의 3%에 불과할 정도의 규모이다. 결국 2014년도 목표치는 2015년도에 4500만 대로 목표를 초과달성한 것으로 확인되었다.
인텔의 14nm 공정 이전이 1년 넘게 지연되면서 베이트레일의 후속작인 체리트레일 역시 2015년 중반으로 1년 정도 지연되었다. 하지만 ARM진영의 탑-티어 업체들은 이미 2014년 말에 14nm 및 20nm 공정으로 제품 양산을 시작하여 공정경쟁에서도 열세에 처하게 되었다. 결론적으로 2014년 기준 모바일 분야에서의 ARM과 AMD64 간의 경쟁은 AMD64의 상식을 벗어나는 행동으로 말미암아 ARM의 부전승으로 끝난 상황이며 AMD64는 전성비나 성능, 경제성 중 어느 하나도 제대로 잡는 데 실패하고 말았다.

3.5. 2015년


2015년도 내내 ARM vs AMD64의 대결 구도는 성능상의 우열을 떠나 관심 자체를 못 받고 있는 실정이다. 오히려 논란의 핵심은 스냅드래곤 810과 엑시노스 7420의 대결구도와 스냅드래곤 810의 화룡 논란, 그리고 2015년 시점에서 ''몽구스'' 라는 코드명으로 알려진 엑시노스 8890의 성능 예상치에 세간의 이목이 집중되어 버렸다. 더불어 Apple의 A8 역시 뛰어난 성능을 자랑하며 업계에서의 존재감을 여전히 유지하고 있다.
반면 2015년에 출시한 체리트레일은 22nm에서 14nm로 제조공정이 향상되었는데도 불구하고 제자리클럭에 머물면서 성능경쟁에서도 뒤쳐지고 무엇보다 SoC 내에 통합된 주변장치들의 스펙에서도 밀리고 있다. 특히 GPU와 Disk I/O 부분. 모바일 SoC의 라인업을 x3/5/7 시리즈로 명칭을 변경하고 CPU 설계 IP를 중국 락칩사와 공유하여 SoFIA라는 제품군을 신설하였다. 해당 제품은 락칩사가 TSMC 28nm 공정을 이용하여 만들 예정.
2015년 1월 6일 CES 2015에서 인텔은 쿼크 SE를 발표하였다. ARM의 Cortex-M에 해당하는 제품이며 SE제품의 발표로 인텔은 ARM의 Cortex-A/R/M 라인업에 대응하는 체계를 완성하게 되었다. Cortex-M만 해도 6종의 제품이 출시된 반면 AMD64는 이제 쿼크 SE만 출시했을 뿐이다.

3.6. 2016년


ARM 진영의 대표주자인 스냅드래곤 820엑시노스 8890 모두 걸출한 성능을 안정적으로 보여주면서 플래그십급 제품으로서의 위상을 확고히 다진 반면 인텔의 x3/5/7 시리즈는 하이엔드 스마트폰 시장으로의 진출에 아예 실패하면서 양자 사이에 성능 경쟁 자체가 성립될 수 없는 상황이 계속 이어지고 있다가, 결국 2016년 4월 29일, 인텔이 아톰 모바일 SoC 개발을 중단한다고 밝힘에 따라 인텔은 결국 모바일 SoC 시장에서 사실상 완전히 패배해 버렸다. #

3.7. 2017년


Apple의 A11이 전작의 A10 Fusion에 비해서도 성능이 비약적으로 증가하면서 긱벤치 상으로 스카이레이크 이후의 AMD64 기반 CPU들에 근접하는 성능을 가지게 되었으며, ARM진영 내에서도 거의 독보적인 성능 지위를 확보하기 시작했다. 특히 ARM 아키텍처의 특성상 전성비가 상당히 높으며 Microsoft의 ARM 프로세서에 대한 Windows 지원 계획이 성공할 경우 AMD64에 대한 분명한 위협이 될 것으로 보인다. 앞으로 SoC 시장에 AMD64가 내려와 경쟁하는 것보다 ARM이 체급을 올려 일반 데스크톱 시장에서 AMD64를 추격하는 모양새가 될 확률이 높다.

3.8. 2018년


1월에 삼성에서 독자적으로 커스텀한 M3 몽구스 코어를 기반으로 한 엑시노스 9810 이 발표되었다. 긱벤치 4에서 멀티쓰레드 점수 10000점에 근접하는 등 스냅드래곤을 훨씬 능가하고 Apple의 A11 Bionic과 맞먹는 벤치마크 점수를 선보이며 모두의 기대를 모았다. 그러나 결과적으로는 완전히 실패작이 되었다. 자세한 것은 삼성 엑시노스/9 시리즈#s-3.3를 참조. 이는 하술할 2019년 삼성이 커스텀 아키텍쳐 개발팀을 해체하게 만드는 데 영향을 주었다.
11월 26일 AWS에서 ARM기반 Graviton 프로세서를 사용하는 EC2 A1 인스턴스를 공개했다.출처영상

3.9. 2019년


2019년 기준으로 몇 년간 루머로 나왔던 ARM을 탑재한 '''Windows 10'''과 '''macOS'''가 2020년에 공개된다는 정보가 슬슬 풀리기 시작했는 데 Apple의 경우, 아예 인텔 쪽에서 Apple이 '''인텔 CPU를 버리고''' ARM 베이스의 자사 프로세서를 2020년부터 탑재할 것이는 기사가 나온 상태다. 게다가 2021년까지 iOSmacOS 둘 다 쓸 수 있도록 통합할 계획도 나온 상태로 명백히 ARM 기반 컴퓨터가 곧 등장한다는 얘기다. Microsoft의 경우, 이미 ARM 기반 컴퓨터에서 돌릴 수 있는 Windows 10이 프로토타입으로 나왔고 이쪽도 ARM을 탑재한 Surface Pro X를 발표하였다. 2020년 컴퓨터 시장에 큰 변화를 가지고 올 것으로 예상됐지만…. 현재까지는 실패작이라는 것이 정설이다.[6] 다만 여러 벤치마크를 보면 ARM 윈도우 노트북의 성능이 x86 못지 않음을 볼 수 있다.#
Microsoft의 ARM 기반 Surface의 성능이 부족한 것은, 실시간으로 x86 프로그램을 에뮬레이션하기 때문이다. ARM 포팅 된 프로그램들은 x86에서 x86프로세서로 돌릴때와 별 차이없이 돌아간다. 이는 단절적 이행하면서 32비트는 에뮬레이션으로 처리한 인텔 아이태니엄 시리즈나 ARM을 애뮬레이션 하는 경우가 많은 앱플레이어처럼 애뮬레이션이라는 어쩔 수 없는 한계 때문이며 ARM으로 포팅 된 프로그램이 많았다면 괜찮은 평가를 받았을지도 모른다.
삼성과 퀄컴 모두 커스텀 아키텍쳐를 포기하였다. 퀄컴은 S865에서 커스텀 코어가 아닌 A77+A55를 조합하였고 삼성은 자체 코어를 개발하는 몽구스 프로젝트를 해체하였다. Apple의 A13 Bionic은 여전히 삼성과 퀄컴 등 경쟁 회사의 프로세서를 훨씬 능가하는 막강한 성능을 자랑하며 ARM 진영 선두주자의 위엄을 유지했다.
이시점 기준으로는 안드로이드의 경우 AMD64의 입지는 거의 없는 수준인데, 실제로 유니티사용자가 적은데다, 플레이 스토어의 64비트 의무화도 겹쳐서 안드로이드에는 Unity 2019.2부터 x86 지원을 중단하기 시작했으며, Unity 2019.3부터 관련 기능을 지우기 시작 할 정도. [7]
12월 3일 AWS에서 ARM기반 Graviton2 프로세서와 이를 사용하는 EC2 M6g, C6g, R6g 등의 인스턴스를 공개했다.출처영상
아난드텍 리뷰에 따르면 AMD EPYC 7571, intel Xeon Platinum 8259CL과 비교했을 때 절반가량의 TDP에도 불구하고 비슷하거나 뛰어난 성능과 저렴한 가격으로 가성비에서 상당한 우위를 차지한다.

3.10. 2020년


6월 11일, AWS는 2019년 12월 3일에 발표한 6세대 EC2 인스턴스를 GA로 전환했다.
6월 22일, Apple은 WWDC 2020 발표회에서 12.9현 iPad Pro 4세대에 이미 탑재됐던 A12Z Bionic 칩에 RAM을 16GB 확장한 개발자 킷[8]으로 ARM기반 macOS를 시연하였는데, 여러 개의 4k영상 동시 렌더링이나 5GB의 psd파일을 포토샵에서 끊김 없이 처리해내는 우수한 성능을 보여줬다. Rosetta 2를 통한 x86 에뮬레이션도 시연하였는데 여기서 마야의 렌더링 작업과 쉐도우 오브 더 툼 레이더를 비록 옵션에 타협은 있었지만 1080P해상도에 60프레임으로 구동해냈다. 네이티브가 아니라 성능효율이 낮을수밖에 없는 에뮬레이션 구동임에도 불구하고 이 정도로 구동하는 것은 상당히 인상적인 장면이다.
6월 22일, 후지쯔에서 개발한 ARM 기반 슈퍼컴퓨터 Fugaku가 전세계 슈퍼컴퓨터 1위를 차지했다. 해당 슈퍼컴퓨터의 연산성능은 415.5PFLOPS로, 기존 1위였던 IBM POWER 기반 슈퍼컴퓨터의 연산성능인 148.8PFLOPS의 2배 이상이다.[9]아난드텍 리뷰
11월 11일, Apple은 차세대 MacBook Air, 13형 MacBook Pro, Mac mini 용으로 개발된 M1 칩을 공개하였다. 이 칩은 iPhone 12에 탑재된 A14 Bionic과 마찬가지로 Firestorm + Icestorm 코어 조합이다. Apple Firestorm은 8-Wide 디코더 구조를 가지는데, 이는 현용 CPU 역사상 가장 넓은 아키텍쳐에 속한다. 아직 출시되지 않은 IBM의 POWER10, 그리고 태어나지 못한채로 프로젝트가 드랍이 된 삼성전자의 Exynos M6만이 이정도의 코어 규모를 가진다고 한다. 백엔드 면에서도 Apple의 Firestorm은 7개의 정수 실행 유닛과 전작 대비 33% 확장된 4개의 FP/Vector 연산 유닛을 보유한다.
11월 13일, 데스크탑용 벤치마크 툴인 시네벤치 R23버전이 업데이트되면서 arm기반 macOS를 지원하기 시작했다. 여기서 저번 6월에 공개됐었던 A12Z Bionic가 탑재된 개발자 킷의 밴치마크가 유출되었는데, 점수는 싱글 987점 / 멀티 4530점으로 나왔다. 이는 AMD Ryzen 5 2400G와 대등소이한 점수다. 랩탑 라인업에서는 Intel Core i5-1035G7과 비슷하다.
11월 16일, Apple M1탑재 MacBook Air의 Rosetta 2 에서 돌아간 긱벤치 점수가 공개되었다. 즉 M1에서 x86 mac을 에뮬레이션 한 것인데, 점수는 싱글코어 1300점, 멀티 5800점으로 이는 현존하는 Apple의 모든 인텔 Mac보다 싱글코어 점수가 높고 i7-9750H보다 10%가량 높은 멀티코어 점수다. x86 macOS를 그대로 에뮬레이션으로 재현하고도 이 정도 성능이 나온다는 것은 사실상 M1을 x86으로만 돌려도 대부분의 인텔 MacBook 성능을 능가한다는 것이다.[10] 참고로 네이티브 ARM 환경에서 긱벤치를 돌렸을 때의 80%정도의 점수다.
11월 17일, Apple M1 탑재 13형 MacBook Pro의 시네벤치 R23 버전 점수가 공개되었다.# 싱글 약 1500점, 멀티 약 7500점으로 싱글점수는 라이젠 5600X, 멀티점수는 라이젠 2600X와 비슷한 점수이며, 저전력 프로세서와 비교하면 싱글코어는 i7-1165G7과 비슷하며#, 멀티코어는 라이젠 4600u 보다 낮은 수준이다.# 긱벤치상으론 싱글코어 1700점떄, 멀티코어 7500점때로 상당히 높은 점수를 자랑하며 이마저도 전력소모량과 발열량까지 따진다면 오히려 x86쪽에서 비교할만한 CPU가 사실상 없는 상태다.
'''Apple이 M1 Mac을 내놓은 이후로 Microsoft와 구글은 물론 여러 기업에서 독자적인 ARM칩을 개발하겠다고 선언한 상태라 상황이 크게 변한 상태다.''' 심지어 AMD도 ARM칩을 개발중이며 단순히 소비자용 컴퓨터는 물론 서버까지 대체할 목표로 기업들이 참여하기 시작한다면 ARM 시장의 크기가 대폭 커질 수 있는 상황이다. 사실상 애플의 M1이 ARM기반 컴퓨터의 시작을 알렸다고 과언이 아닌 수준이다.[11]

3.11. 2021년


'''애플이 M1칩을 쓴 맥을 내놓음으로써 컴퓨터 시장에 큰 영향을 주었고 실제로도 체급에 비해 높은 성능을 보여줌에 따라 여러회사들은 물론 인텔과 AMD까지 해당칩을 언급하는 상황이 되었다.''' ARM CEO도 낙관적으로 보고 있으며 이미노트북을 위한 레퍼런스 모델을 내놓았다. 2021년 기준으로 여러 기업들이 애플의 뒤를 따라 독자적인 ARM칩을 개발하기 시작했으며 대부분 기업들이 인텔으로부터 벗어날려고 ARM칩을 개발한다는 공통점이 있다.[12] 비록 ARM진영에 큰 변화의 바람이 생기긴 했지만 아직까지 이주 극초기에 불과하며 이마저도 이렇다할 호환성[13], 규격, 운영체제, 기타등등이 전혀 없는 완전히 새로운 시장이라 x86를 완전히 대체하기는 커녕 자리를 잡는데에 시간이 무척 걸릴걸로 보인다. 그래도 대기업들이 ARM 시장에 뛰어들어가는걸 보면 기존과는 많이 다른 상황이다.
  • 삼성은 향후에 자사칩을 컴퓨터에 도입할 예정이라는 기사가 나왔으며 특히 AMD GPU를 탑재하기에 큰 기대를 하는걸로 보인다.
  • 퀄컴도 M1을 경쟁상대로 보고 있으며 14인치 노트북에 32GB 램이 탑재된 프로토타입이 나왔다고 밝히고 있다. 그렇지 않아도 M1맥으로 ARM 윈도우를 에뮬했음에도 불구하고 서피스 프로 X보다 더 높은 성능을 보여줌으로써 퀄컴에게 굴욕을 선사한적이 있었다.[14] 또한 퀄컴이 애플 출신이 만든 CPU 스타트업을 인수함으로써 적극적으로 개발하고 있다.
  • 의 경우, 애플의 M1을 여러번 언급하면서도 M1보다 더 좋은 칩을 만들어야 한다는 기사들이 나왔는데 정확히 설명하자면 애플같이 칩을 전문으로 생산하지 않는 회사에 뒤쳐지고 있다는식의 내용이다. 다르게 보자면 애플을 겨우 일반적인 회사로 취급하고 있는 셈이다(...)[15] 당연하지만 인텔이 후발주자인 애플에게도 뒤쳐지는 상황이고 M1칩이 x86 생태계를 위협하고 있으니 인텔입장에선 AMD외에도 상대해야할 경쟁회사들이 더 생기는 셈이다. 또한 여러 회사들이 인텔을 버리고 독자적인 칩을 채용하기 시작한다면 수익률이 점점 떨어질 수 밖에 없으니 인텔입장에선 장기적으로 큰 위기로 볼수있다.[16]
  • WWDC 2020에 이미 언급했지만 2022년까지 모든 인텔맥들이 애플 실리콘으로 대체될 예정이고 심지어 워크스테이션 데스크탑인 맥 프로까지 확실히 대체될것으로 보이며 이미 아이맥 시리즈와 맥 프로 시리즈가 개발중이며 그중 아이맥은 올해내로 나올걸로 보인다. 맥 프로의 경우, 타워형은 당분간 인텔맥이겠지만 애플 실리콘기반이자 기존 타워형에 비해 반쪽 크기인 일명 소형 맥 프로가 따로 개발되고 있다고 블룸버그가 기사를 내놓았다. 14인치와 16인치 맥북프로도 애플 실리콘 기반에 완전히 새로운 디자인으로 올해에 등장할 예정이다.
  • AMD쪽에서도 M1과 경쟁할 ARM칩을 개발하고 있다는 기사가 올라왔으며 아예 AMD CEO가 CES 2021에서 애플의 M1칩은 혁신의 기회라고 언급한 상태다.
  • Microsoft에서도 애플 실리콘칩에 탄력을 받아서 서피스 PC를 위한 독자적인 ARM기반 프로세서를 개발하고 있는 상태다. 아예 자사 서버까지 ARM 기반으로 넘어갈려고 독자적으로 개발중이니 애플에 이어 Microsoft까지 탈인텔을 시전중이라 할 수 있다.[17] 이미 구글과 아마존이라는 큰 경쟁사들도 ARM 기반을 준비하기 시작한 상태다. Microsoft 입장에선 경쟁회사들이 많이 등장한 상황이고 위협적이기에 ARM 개발에 뛰어들 수 밖에 없어 보인다. 특히 애플외에 이렇다할 ARM 운영체제를 만들 수 있는 거의 유일한 회사라 빨리 대응할지 아니면 타회사에 뒤쳐질지 결정될걸로 보인다.
  • 도 자사 노트북과 스마트폰을 위한 독자적인 칩을 개발하고 있다. 구글은 이미 예전부터 독자적으로 서버용 칩을 개발하는 회사이고 이마저도 소프트웨어 및 운영체제까지 개발할 수 있는 회사라 애플처럼 최적화 수준을 대폭 올릴거라 기대되고 있다.
2월 6일, 인텔이 대놓고 애플의 M1을 겨냥한 보도자료를 올렸다. 해당자료에 의하면 타이거 레이크가 더 우수하고 M1은 제한적이고 거짓이라는 내용인데 사실상 인텔이 Apple Silicon을 직접적인 경쟁자로 취급할 정도로 크게 경계하는 셈이다. 다만 인텔이 보도자료로 여러번 사기친 전적이 있어서 대놓고 믿으면 안된다.[18] 엔트리급 레벨에 불과한 M1칩에 대해 이렇게까지 반응하는 정도라면 ARM 진영을 크게 의식하는건 확실하다.
2월 11일, 인텔이 또 애플의 M1의 단점을 강조한 광고들을 트위터에 올리고 있다. 얼마나 위기의식을 했는지 상상이 될정도로 인텔이 크게 반응하고 있다는 얘기다. 그런데 애플이 차지하는 인텔의 점유율 및 수익률이 굉장히 낮음에도 불구하고 인텔이 애플을 저격하는 광고를 AMD보다 더 많이 올린다는건 이상하게 보일 수 있긴한데 애플이 대놓고 탈인텔을 선언하니깐 타회사들도 그럴까봐 미리 막을려는 속셈으로 추정된다. Apple Silicon이 극초기이고 이마저도 호환조차 안되는 완전히 새로운 생태계를 구축중임에도 불구하고 인텔이 저렇게 반응할 정도면 확실히 경쟁회사로써 취급하고 있는 셈이다. 하지만 지난번에도 이어 M1의 단점만 강조하고 있고 인텔의 단점이나 문제점은 철저히 숨기면서 광고하고 있다. 현재로썬 초기에 제대로 진압하지 않으면 ARM진영이 더욱더 성장할 여지가 생기기에 인텔이 무척 긴장할 수 밖에 없다. 같은 AMD64기반 회사인 AMD보다 더 격렬하게 반응하는것만 봐도 확실해 보인다.

4. 전망


ARM과 AMD64는 각 마이크로아키텍처의 한계로 인하여 결국 각자의 영역에서 머물 것이란 시각이 존재한다. 반면, ARM 계열 마이크로아키텍쳐의 단점은 인터넷 상에서 잘못 알려지거나 과장된 것으로 장기적으론 AMD64 계열 마이크로아키텍처를 일정부분 대체할 것이라는 시각도 존재한다.

4.1. ARM 우세


먼저 이러한 오해들이 발생하는 것은 ARM의 ISA 자체가 고성능에 적합하지 않다는 시각에서 나온다. 이는 마이크로아키텍처와 ISA를 착각했기 때문에 나오는 오해다. 과거에 ARM의 마이크로아키텍처는 철저한 저전력과 그 범위 내에서의 성능을 추구한 물건이었고, 이것은 고성능 작업에 적합하지 않다는 것이 사실이다. 그러나 고성능으로 디자인되는 것은 ISA의 문제가 아니다. 고성능 마이크로아키텍처로 설계하면 ARM도 충분히 고성능이 나오고, 실제로 이미 나오고 있다. 오히려 x86은 ISA부터 잘못 만들었다는 평을 듣는 정도의 물건이다. 그걸로 여기까지 온게 대단하다고 할 정도로.
일부에서는 ARM 프로세서의 성능이 비약적으로 향상된 것은 사실이지만, x86을 대체할 수 있을 정도는 아니라는 말을 하기도 한다. 그러나 이는 실제와는 거리가 멀다. 우선 ARM 프로세서의 성능은 매우 엄격하고 제한된 환경에서만 구현 가능한 것이라는 자체가 이상한 접근이다. 우선 ARM도 x86 같은 범용 아키텍처다. 그 말인 즉, 범용적인 일반 연산 성능에 의해 퍼포먼스가 결정된다는 말이다. 애초에 이 맥락에서 연산 성능의 어떤 부분을 읽을 수 있다는 말인가? x86 기반의 시스템이 유지되는 것은 현재 PC와 서버 시장을 장악하고 있는 x86 아키텍처 자체가 기존에 쌓아올린 소프트웨어 호환성과 인프라를 굳이 바꿀 필요가 없고, 성능 이익에 비해 이러한 환경을 바꾸는 것의 비용이 더 크다는 것이 진짜 큰 이유다. 이런 게 없는 수준인 Apple은 아키텍처를 전환하려고 하는 것이며, 레거시 환경의 핵심을 이루고 있는 MS까지 괜히 나서서 WoA 같은 거 만드는 게 아니다. 아닌게 아니라 x86의 성능 향상 한계에 조금이라도 대비하는 것이다.
x86이, 특히 인텔이 누구도 넘볼 수 없게 가장 뛰어난 시기는 물론 있었다. 코어 2 시리즈에 사용된 마이크로아키텍처인 코어 마이크로아키텍처부터 스카이레이크 마이크로아키텍처가 처음 나오기에 이르기까지, x86은 성능에서 밀린다고 여겨졌던 IBM의 POWER(마이크로프로세서)까지 저렴한 가격과 확장성으로 시스템 성능 면에서도 앞서기 시작했었으며 전력대 성능비도 당시의 높은 절대 성능에 비해서는 매우 양호했기까지 하다.[19] 그러나 이제는 훨씬 낮은 전력을 소비하는 ARM 프로세서와 절대 성능에 있어서 큰 차이가 없는 수준까지 왔다. 당장 Cortex-A76이 정수 연산의 산업 표준 비교로 쓰이는 SPECInt2006 벤치마크에서 스카이레이크 ULV 프로세서의 90%급을 내세우고 있으며, Cortex-A77과 A78을 거치면서 20% 가량씩 올라갔다. Cortex-X1은 A78에 비해서 한 단계 더 좋은 성능의 마이크로아키텍처이다. 아래에도 나온 ANANDTECH의 벤치마크에서 Apple의 A13 Bionic은 동일한 SPECInt 기준으로 9900K에 살짝 못 미치는 수준의 싱글코어 성능을 보이고 있다. 그리고 이 쯤 오면, 이 둘의 전력 소모를 생각해봐야 한다. 이런 성능 비교 자체가 이상할 정도다. 그리고 x86과 ARM의 성능에 관한 오해가 가장 크게 발생하는 지점이 이 부분일 것이다. 코어부만 몇배의 전기를 쓰고도 부족해하는 CPU가 팬리스로 태블릿에 들어가는 프로세서와 동급이라는게 직관적으로 말이 안 되는 것 같으니까, x86에 보이지 않는 무언가가 있고 ARM에는 마찬가지의 한계가 있다고 생각하게 되는 것이다. 그러나, 과거의 소프트웨어 유산을 쓰기 위해 뜨겁고 느린 CPU를 사용하고 있는 것이 현실이다. 거듭 말하지만 이건 나쁜게 아니다. 많은 사람들이 그럼에도 x86을 필요로 하고 있을 뿐이다.
물론, 다시 말하지만 ARM 기반이 적어도 현재까지는 x86의 시장을 완전히 잠식할 수는 없다. x86 아키텍처는 소프트웨어부터 가장 범용성 있으며, 기존의 명령어셋을 모두 갖추고 있는 만큼 호환성 걱정도 없기 때문에 성능이 부족하면 막말로 스케일 업 하면 끝이고, 소프트웨어를 새로 개발할 필요도 없기 때문에 가성비도 매우 뛰어나서 압도적이라고 해도 될 정도다. 그리고 그랬기에 ARM의 성능 향상이 전환 계획이 있던 Apple을 제외하면 지지부진했던 것도 사실이었고, 컴파일러의 최적화도 영 미흡한 수준이었다. 그러나 이런 흐름도 달라지고 있는 신호라고 볼 수 있는게, ARM이 고성능을 위한 ARM Cortex-X 시리즈를 2020년에 내놓았다. ARM은 고객사에 ISA를 라이센스하고 마이크로아키텍처를 라이센스 한다. 고성능 ARM에 대한 수요가 발생하고 있다는 것이다. 이 때문에 Apple, IBM, 모토로라의 Mac+PowerPC 조합을 박살내며 승승장구하던 윈텔 진영도 인텔의 부진과 마이크로소프트가 Windows 10 on ARM을 내놓는 등 흔들거리고 있다.
  • 호환성
여러번 말하지만 ARM은 x86과 마찬가지로 범용 연산을 할 수 있다. 따라서 유연성이라는 말 자체가 말이 안 되는 이야기다. 호환성 차원에서 얘기하면 조금 얘기할 수 있겠지만, 이 마저도 일부 사실과 다르다. x86 아키텍처는 처음부터 30년이 넘게 개방된 플랫폼이었다. 그렇기 때문에 지금까지 x86 호환 프로그램은 어떤 경우에도 다른 운영 체제 보다 소프트웨어 숫자나 개발 환경에서 열세였던 적이 없다. 어떤 기능이 필요할 경우 인터넷을 뒤져보면 웬간해서는 거의 개발되어 있거나, 개발 도구들을 찾을 수 있다. 물론 이것은 사실이다. 그러나 x86 플랫폼만이 전용 하드웨어가 개발되어 있지 않아도 기존 하드웨어나 다른 명령어, 소프트웨어를 이용하든 해서 어떻게든 기능을 구현할 수 있는 것은 아니다. 그건 일반적인 범용 프로세서면 다 된다. DXVA를 예시로 든다면 DirectX의 드라이버 기능이지 x86의 기능이 아니다. 영상을 소프트웨어로 재생하는 것도 마찬가지다. 당장 안드로이드 폰에서도 소프트웨어 코덱으로 영상 잘만 본다. 플루이드 모션의 예를 들어서 ARM 프로세서라면 해당 기능을 내장해야만 구현 할 수 있지만, x86 플랫폼은 SVP, 드미트리 렌더, avisynth나 vapoursynth 등을 이용해서 플루이드 모션의 대체재까지 만들어 낼 수 있다는 이야기가 그럴듯하게 들린다면 이는 잘못 이해하고 있는 것이다. 이런게 가능한 x86의 특별함이라면 그건 그 동안 쌓아올린 레거시라고 할 수 있으면 있지, ARM으로는 그런 프로그램을 못 만들어서가 아니다. 여태까지 ARM은 그런 프로그램을 만들 필요가 없던 영역에 있었을 뿐이다. 갖은 기술적 스펙을 따지며 ARM은 범용 연산을 못 한다고 주장하는 측에서도 막상 그래서 ARM에서 못하는 연산이 무엇이냐고 물으면 구체적 예시는 정작 들지도 못한다. 과거 ARM용으로 데스크탑 앱들은 시도조차 안하고 모바일 앱들만 나오던 시절에야 예시를 들 수 있었겠지만 이젠 아니기 때문이다.
  • CPU 언코어 성능
x86 마이크로아키텍처의 CPU 내부 & 메모리 버스 대역폭 확장, 대용량의 캐시 메모리 탑재, 인터커넥트에도 사용되는 PCI Express 총 대역폭과 레인 개수 등 다양한 분야의 언코어 성능 개선이 ARM에서는 이루어지기 어렵다는 것도 사실이 아니다. ARM의 ISA는 저전력 마이크로아키텍처를 만들 수 있도록 컴팩트하게 설게된게 물론 맞다. 그러나 그건 어디까지나 ISA 차원이다. 반대로 말하면, ARM이 위와 같은 고성능 언코어를 선택하지 않을 이유가 전혀 없다. 다 일반적으로 사용가능한 기술이기 때문이다. ARM이 고성능을 지향하면서 동시에 저전력을 지향하는 것은 전혀 불가능하지 않다. x86보다 전성비 좋은 고성능이면 되는, 비교우위의 문제기 때문이다. 최근 컴퓨터 기술이 CPU의 코어 속도가 충분히 빠르기 때문에 언코어 성능 개선이 더 체감 속도가 크다는 이유[20]라면, 오히려 제한된 전력 환경 내에서는 ARM이 잉여 전력을 언코어에 투자할 수 있어서 유리하기까지 하다. 그리고 x86 옹호 측 문단에서는 이미 CPU의 연산성능이 한계에 달했으며 언코어 성능의 개선이 더 중요하다고 이야기했는데, 이건 인텔이 태업하던 수 년간 주장하던 논리와 정확히 일맥상통한다. ARM을 디스한답시고 AMD를 깎아내리는 논리다. 당장 ZEN 2에서 ZEN 3으로 넘어가면서 CPU의 성능이 무려 30%나 증가했는데[21] 그럼 이건 무엇인가? AMD가 멍청해서 그러는 건 아닐 것이다. 게다가 마치 ARM은 언코어를 등한시하고 x86 진영만 언코어를 신경쓴다는 것처럼 서술했는데 이거야말로 중대한 오해로서 2020년 현재 대부분의 ARM 플래그십 프로세서도 언코어 면적이 CPU 면적보다 압도적으로 큰 건 똑같다. Apple M1의 경우를 보면 CPU + GPU + NPU 를 죄다 합쳐도 언코어 면적이 더 넓다.
  • 프로그래밍
x86의 명령어 디코드 오버헤드 문제는 결코 가볍지 않다. 프로그래밍의 효율성은 물론 그럴듯하게 들린다. 그러나 실제로 이런 것이 영향을 주려면 모든 프로그래머가 코드에 인라인 어셈블리를 쓰는 정도가 되어야 하는데, 프로그래머가 그렇게 우수하지 못하다는 말을 하는 것은 모순이다. 실제로 바로 그런 이유로 현대 프로그래밍은 최적화의 많은 부분을 컴파일러에 의존[22]하며, 점점 구현도 많은 부분을 라이브러리에 의존하고 있기 때문이다. 대다수의 프로그래머가 그걸 건드릴 필요가 없게 하고있는 것이 트렌드다. 애초에 컴파일러를 만드는 소수의 문제에 가깝다는 것이다. 게다가 ARM의 개발 도구 부족을 ARM의 기능(?) 부족 탓하는 것은 ARM이 범용 프로세서임을 다시금 무시한 것이다. 물론 일부 소프트웨어의 구현이 x86 CPU의 특정 기능에 의존적일 수는 있지만, 그건 x86이라서가 아니다. 그 CPU들이 해당 기능을 탑재했을 뿐. x86 ISA에 의존적인 서버의 특정 기능 구현(?) 프로그래밍용 개발도구 같은 것이 존재하지는 않는다. ARM 플랫폼에서 돌아가는 개발 도구의 부족 또한 기존의 ARM은 빌드머신으로 쓰기에 성능이 나빴기 때문에 굳이 만들 필요가 없었던 것이다. 오히려 이런 상황에도 불구하고, 지난 수년간 급격한 발전으로 현재의 벤치마크 성능을 보이는 상황이라고 표현하는 것이 맞다. 벤치마크를 보면 성능이 들쭉날쭉한데도 평균적으로 결코 뒤지지 않는다. CPU 자체의 문제가 아닌 것이다. 열악한 소프트웨어 환경에서 굳이 ARM 기반 소프트웨어를 만들 필요가 없다고 한다면 차라리 모를까.
  • 경로의존성
ARM 리눅스 기반의 서버를 시장에서 찾아보기 어려운 이유는 간단하다. 기존에 잘 돌아가던 x86 기반의 서버를 버리고, 아직 소프트웨어가 만성적으로 부족한 ARM을 써야하냐는 것이다. 특히 서버는 더 그럴수밖에 없다. x86 기반 서버 잘 돌아가는데, 바꿔서 호환 소프트웨어 없어서 문제 생기면 누가 책임져야할까? 인텔에서 AMD로 넘어가는 것도 어려워하는 곳이다. 그간 서버 시장에서 성능 경쟁에서 밀렸던 비-x86 유닉스 서버들도 잘만 팔렸고, x86의 현 상황도 마찬가지인 것이다. ARM 네이티브 프로그램이 없는 건 당연히 그게 제1이유다. 웹 서버 같은 기존 소프트웨어 의존도를 낮출 수 있는 영역이라면 모를까. 어쨌든 AWS는 벌써 ARM 기반의 인스턴스를 제공하고 있다. 이 문제가 정확히 반대로 적용된 것이 인텔의 안드로이드를 통한 모바일 AP 시장 진출이었는데, 아톰 프로세서들은 벤치마크 성능상으로는 당시의 안드로이드 AP를 압도했으나 실사용 성능은 그야말로 형편없었다. 뻥벤치같은 게 아니라 실제로 당시 아톰의 성능은 타 안드로이드 AP에 비해 앞서면 앞섰지 결코 낮지 않았다. 문제는 대부분의 어플리케이션들이 이미 ARM용으로 최적화되고 제작되어 호환성과 최적화가 막장이었다. 제대로 아톰에 맞게 최적화되어 만들어진 앱은 벤치마크에 걸맞게 성능이 높았으나 결국 이런 앱들은 매우 소수였고, 이러한 성능 문제 외에도 여러가지 문제점의 결부로 인텔은 모바일 AP 시장에서 완전히 박살나고 철수했다. 한 번 특정 시스템이 터줏대감이 된 영역은 약간의 우위 정도로는 시스템의 교체가 쉽지 않다.
RISC는 제한된 범위에서 최대의 효율을 발휘하기 위해 창조된 철학이기 때문에 효율성을 위해서 허용하는 부분이 제한되어 있다. 그러나 이것이 표현력이나 성능에 저하를 일으킨다는 것이 아니다. CISC가 할 수 있는 모든 일은 RISC가 할 수 있고 그 반대도 다르지 않다. 다만 전체의 효율성을 위해 작은 부분을 희생했기 때문에 CISC와 다른 부분이 보이는 것이고 그 부분은 다른 효율적인 부분으로 보조하기 때문에 크게 문제되지 않는다.

4.2. x86 우세


ARM 계열의 마이크로아키텍처와 AMD64 계열의 마이크로아키텍쳐는 앞으로도 각각의 영역에서''''만'''' 강력한 영향력을 발휘하고, 양 진영의 경계에 위치한 플랫폼까지만 제한적으로 영향력을 넓힐 것으로 예상된다.
현대의 컴퓨팅 기술은 고성능, 저전력, 유연성이라는 세가지 서로 다른 목적을 동시에 달성 할 수 없다.[23] 기본적으로 실리콘 면적과 성능은 비례하고, 성능과 전력은 반비례한다. ARM 계열 마이크로아키텍처는 저전력/고성능은 달성 가능하지만 유연성이 부족하고, AMD64 계열 마이크로아키텍처는 고성능/유연성은 달성 가능하지만, 저전력을 구현하기 어렵다.
지금까지 AMD64 계열 마이크로아키텍처에서 대응해 온 방식은 순수 마이크로아키텍처 측면에서 저전력을 구현하는 것이 아니라 공정 미세화로 칩의 면적을 줄여서 전력 소모를 줄이는 것이었다. 미세공정화하면 고성능/저전력/유연성을 동시에 충족하는 것처럼 보이지만, 동시대의 ARM 계열 마이크로아키텍처와 비교하면 여전히 전기를 많이 소모하는 것이므로 저전력이란 목표까지 달성한 것은 아니다. 최근 인텔이 10 nm 공정 전환에 어려움을 겪으면서 AMD64 계열 마이크로아키텍처는 미세공정화를 통한 고성능/저전력/유연성 동시 달성 방식이 한계를 맞이한 상황이며, AMD는 상황이 조금 낫기는 하지만 장기적으로는 인텔과 유사한 문제에 직면할 가능성이 높다.
ARM 계열 마이크로아키텍처는 지금까지 저전력이란 목표를 먼저 설정하고 성능을 구현하는 방식으로 저전력/고성능을 추구해왔으나, Cortex-A15에서 한계에 부딪혔다. 이후 저전력 + 고성능 하이브리드 코어 구성방식인 ARM big.LITTLE 솔루션을 도입한 상황이다.[24] 폴락의 법칙으로 인해 고성능은 다이의 크기와 비례하므로 성능을 높이면 전력소모가 늘어날 수 밖에 없으며, ARM 계열 마이크로아키텍처라고 뾰족한 방법이 있는 것은 아니다.
ARM과 AMD64 두 계열의 마이크로아키텍처는 각각 특화된 장점이 있고, 무리하게 상대의 영역을 넘볼 경우 자신만의 장점이 희석되어버리므로 결국 자신의 영역에서만 강점을 발휘할 것이라는 이야기이다.
ARM 프로세서의 성능이 비약적으로 향상된 것은 사실이지만, 일부에서 주장하는 것처럼 x86을 대체한다던가 서버 시장을 휘어잡을 것이라는 예상은 현실과 거리가 멀다. 현재 PC와 서버 시장을 장악하고 있는 x86 계열 마이크로아키텍처는 일반적인 인상과는 달리 고성능이 아니며[25] 전력대 성능비도 나쁘지만[26], 매우 뛰어난 유연성과 적당한 성능, 비교적 저렴한 가격 대가 경쟁 우위이다.
  • 호환성과 그에 따른 유연성
x86 계열 마이크로아키텍처를 사용한 플랫폼의 경우 가격 대비 성능비가 매우 뛰어나며, 유연성 측면에서는 안되는 것이 없다고 할 정도로 타 ISA인 마이크로아키텍처 대비 압도적이다. 전 세계 PC에 적용되는 CPU이므로 규모의 경제 효과로 성능 대비 가격이 거저라고 해도 좋을 정도로 헐값이다. 만일 성능이 더 필요하다면 CPU를 몇 개 더 추가하면 되며, 대부분의 규격이 개방되어 있어서 CPU 외 부품 가격도 저렴하고 공급도 원활하다. 고성능으로 소비자 시장이나 서버 시장을 장악한 것이 아니라는 것이다. 컴퓨터 바이러스 개념은 x86에만 있다고 해도 과언이 아닌데, 그만큼 자유도가 높다는 방증이기도 하다. 더욱이 x86은 소프트웨어 및 하위 호환성에 극단적으로 신경쓰기 때문에 인텔이든 AMD든 소프트웨어 단위에서는 거의 100% 호환된다. 이런 측면에서 ARM 프로세서와 대비되는데, 같은 Cortex A 시리즈 마이크로아키텍처를 쓴다고 해도 x86의 호환성은 결코 넘볼 수 없는 부분이다. 당장 인텔 시스템에선 잘 돌아가던 프로그램은 AMD시스템에서 돌려도 똑같이 잘 돌아가며, 애초에 두 시스템간의 드라이버 이슈만 해결해주면 두 시스템을 스왑해도 이론상 모든 프로그램은 잘 동작한다. ARM이 호환성 부분에서 어느정도 개선이돼 선방을 한다한들 x86 시스템의 무식한 호환성 앞에선 태생적으로 상대가 안 된다.
그에 비해 ARM의 경우 근본적으로 범용 컴퓨터 보다는 임베디드와 같이 특정 기기에 한정해 사용되는 경우가 주 용도였다 보니 제조사의 커스텀이 심하게 들어가게 되며 하드웨어 제조사가 SoC에 ASIC을 추가한다고 하여도 이러한 가속 기능을 소프트웨어에서 사용하기 위한 인터페이스 부터가 하드웨어 제조사와 소프트웨어의 긴밀한 협업이 없으면 사실상 불가능한 수준이다.
극단적으로 말해서 ARM 프로세서는 제조사에서 명시적으로 된다고 발표한 기능 이외에는 모두 안된다고 보면 된다.
특히 임베디드 미디어 플레이어들의 경우 프로세서의 낮은 성능을 뒷받침하기 위해 ASIC에 의존하는 데다 특정 하드웨어 에서만 사용되는 경향이 높다 보니 소프트웨어 레벨에서도 이를 전부 수용할 수 있는 통일된 인터페이스가 사실상 없다시피하다.
그에 비해 x86 계열 마이크로아키텍처를 사용한 PC 플랫폼은 처음부터 30년이 넘게 개방된 플랫폼이었다. 그렇기 때문에 지금까지 x86 호환 프로그램은 어떤 경우에도 다른 운영 체제 보다 소프트웨어 숫자나 개발 환경에서 열세였던 적이 없다. 어떤 기능이 필요할 경우 인터넷을 뒤져보면 웬간해서는 거의 개발되어 있거나, 개발 도구들을 찾을 수 있다. x86 플랫폼은 전용 하드웨어가 개발되어 있지 않아도 기존 하드웨어나 다른 명령어, 소프트웨어를 이용하든 해서 어떻게든 기능을 구현할 수 있다.
위의 호환성 내용의 연장선으로 특히 임베디드 미디어 플레이어들의 경우 프로세서의 낮은 성능을 뒷받침하기 위해 각종 멀티미디어와 같은 기능을 처리하기 위해 ASIC에 의존하는 경향이 높다 보니 더더욱 그런 경향이 심한 편 인데 유연성이 떨어지는 ASIC의 특성상 영상의 코덱이 비트퍼펙트 하더라도 컨테이너가 바뀐 비트스트림이 변형된 상황에서는 대응이 불가능 하다는 것이 문제다 보니 단순히 ARM으로 네이티브 하게 프로그램을 작성한다 한들 타 기기에서 그 코드가 같은 성능으로 동작한다는 보증이 불가능하다.
특히 이런 문제가 극대화된 경우로 x86 플랫폼 시장은 BIOSUEFI를 통한 부트스트랩 표준이 잡혀 있어 범용적으로 운용이 가능한 것에 비해 ARM은 임베디드와 같이 스태틱 부트스트랩만이 가능한 제품들만이 시장에 나와 있다. 그나마 가장 쉽게 접근이 가능한 ARM 디바이스인 라즈베리파이 조차도 UEFI와 같은 기능을 가진 범용 펌웨어 규격이 사용되지 않고 독자적인 부트로더를 사용하거나 하다 보니 특정 하드웨어를 위해 만든 소프트웨어 이미지를 다른 ARM 디바이스에 콜드부팅 하는것 부터가 불가능하다.
  • 프로그래밍
인텔이든 AMD든 x86 계열 마이크로아키텍처를 채용한 프로세서는 CISC 명령어를 내부적으로 RISC 명령어로 변환하는 과정을 거쳐서 실행되는 비효율적 구조를 가지고 있다. ARM 프로세서는 RISC 명령어로 직접 작성되므로 x86 프로세서보다 훨씬 효율적일 것 같지만 현실은 오히려 반대이다. 프로그래밍의 효율성 측면에서 x86 프로세서가 ARM 프로세서 보다 훨씬 뛰어나다. 컴퓨터에게 일을 시키려면 프로그래머가 프로그램을 짜야하는데, CISC 계열이라면 한 개의 명령어(Complex Instruction)로 처리 가능한 것이 RISC 계열에서는 단순하지만 몇 개의 명령어(Micro-Opertions, µOPs)를 조합해야만 한다. 프로세서 구조는 RISC 쪽이 효율적이지만, 정작 그 프로세서를 다루는 코드를 작성하는 작업은 CISC 쪽이 더 효율적인 것이다.
우수한 프로그래머가 많다면 RISC 쪽이 더 효율적이 되겠지만…. 세상 프로그래머의 대부분은 그렇게 우수하지 못한 것이 현실이다. 디자이너의 필수품인 어도비 포토샵발적화의 대명사에 꼽힐 정도로 비효율적인 프로그램이며, 게임의 경우도 멀티 코어 시스템에서도 코어 분배를 거의 않고 싱글 코어만 죽어라 갈구는 경우가 많다. 유명 소프트웨어 기업에게도 최적화 프로그래밍은 어려운 것이다. 무어의 법칙으로 인해 하드웨어 성능이 비약적으로 향상되면서 최적화 프로그래밍보다 기술 혁신에 무임승차하는 기조가 강해졌고, 현재도 그 추세는 유지되고 있다. 한결 수월하다는 CISC 프로그래밍조차 이런데 RISC 프로그래밍의 최적화 난이도는 말할 것도 없다. 서버 시장에 진입하려는 ARM 프로세서의 가장 커다란 장벽 중의 하나가 바로 개발 도구 부족인데, x86 진영과 비교하면 서버에 특정 기능을 구현하는 프로그래밍용 개발 도구 자체가 없다시피하는 수준이다. 윈도용 프로그램과의 네이티브 호환성 따위가 아니라는 이야기이다.
최적화 프로그래밍이란 '기능 구현+α'를 의미한다. 어떤 소프트웨어를 개발 할 때 가장 중점이 되는 것은 ①요구 기능의 구현, ②납기이므로 최적화는 항상 뒷전으로 밀려나게 된다. 예를 들어 2×4=8같은 대칭형 멀티 프로세싱(SMP) 형태의 멀티스레드 프로그래밍은 매우 쉽지만(CISC), 2+2+2+2=8처럼 이기종 멀티 프로세싱(HMP) 형태의 변형된 동시 멀티스레드 프로그래밍(RISC)은 곱셈이 덧셈의 변형이란 이해를 필요로 한다. 만일 멀티 코어를 지원하려면 (2+2)+(2+2)=8 형태의 심화된 변형 동시 멀티스레드 프로그래밍을 생각 할 수 있어야 한다. 기능 구현 및 납기 준수에도 버거운 프로그래머가 저런 식으로 최적화를 고려한 프로그래밍을 하긴 현실적으로 어렵기 때문에 개발 도구를 쓰게 되는 것이다. 개발 도구는 프로그래머의 저런 작업들을 일부 대신 해주는 개발용 소프트웨어인데, 최적화 효율은 떨어지지만 없는 것 보다는 낫다.[27]
x86의 기계어는 생각보다 깔끔한 편이다. 일부 비효율적인 부분이 존재하기는 하지만 바이트 단위로 떨어지게 되어있기 때문에 즉시값을 제외한 모든 기계어 코드가 바이트 단위로 읽게 되어있다. 그러나 깔끔함이 성능을 보장하는 것이 아니며 이는 단지 설계의 특징일 뿐이다.
RISC의 경우 무조건 효율성이기 때문에 난해한 부분들이 많다. 예를 들어 x86은 연산 범위를 초과하지 않는 한 대부분의 값들은 바로 더할 수 있다. 하지만 RISC는 일정 이상의 값이 넘어갈 경우 다른 명령어들의 조합으로 해결해야 한다. 그리고 이 한계치는 명령어 집합 구조에 따라 다르다. 그래서 컴파일러 설계 복잡도가 높아지게 된다. 이미 이론적으로 극한의 효율성을 보여주는 VLIW를 사용한 인텔 아이태니엄 프로세서의 구현된 실물은 사용의 난해함 때문에 널리 사용되지도 못 했다.
어셈블리어 프로그래밍으로 가면 명령어 집합보다는 컴퓨터에 대한 이해도를 더 필요로 하기 때문에 어떤 CPU가 더 프로그래밍 하기에 쉬운지 정의할 수 없다. 특히 이러한 명령어 레벨의 최적화는 바닥부터 어셈블리로 코딩하는게 아닌 이상 컴파일러의 능력에 달렸다.
  • 지나친 커스텀으로 인한 파편화 문제, 이에 따른 호환성 저하
ARM계열이 AMD64진영을 대체하기 어려운 가장 큰 이유다. ARM 계열은 지나친 커스텀으로 인해 OS 개발자들이 싫어한다고 한다. 리누스 토발즈 또한 ARM을 보면 골치 아파진다고 토로했으며, # 명령어 세트(RISC, CISC 등) 같은걸 따지는것 보다, 호환성, 표준화, 지원여부가 더 중요하다면서 x86 계열은 이게 더 잘되어 있어 ARM보다 우월하다고 했으며, 개인적으로 ARM에 대해 실망했다고 밝혔다.#[28]
그 예로 Apple 의 M1만 하더라도 32비트 환경인 AArch32를 지원하지 않는다. 다만 M1은 Apple만이 자사의 생태계에서만 사용하기 때문에 그런 호환성 문제가 문제되지 않을 뿐. 반대로 AMD64의 예를 보자. 인텔에서 자사의 x86 계열 CPU에 최적화된 리눅스인 인텔 클리어 리눅스를 배포하는데, 이걸 AMD CPU에서 돌려도 완벽하게 호환되는 것은 물론 엄청난 성능 향상이 있다.#
  • Apple 외 회사들의 열세
아난드텍의 분석에 의하면 Apple Silicon 프로세서는 이미 A13 Bionic에서 싱글쓰레드 성능상 x86의 인텔 커피레이크 9세대 최상급 프로세서들과도 동급을 달성하였고, A14 Bionic부터는 엄청나게 확장된 아키텍쳐를 들고나오면서 훨씬 낮은 클럭으로도 싱글쓰레드에서 인텔 코멧레이크 10세대를 정수연산 및 부동소수점 연산, 리오더 버퍼, 처리 쓰루풋 등 거의 모든 항목에서 뛰어넘어버렸다. 그러나 이걸 보고 ARM 전체의 영광이라고 보기 어려운 점이, 다른 경쟁사들의 ARM 프로세서는 아직도 갈 길이 멀다. 코어를 많이 때려박아서 멀티쓰레드 성능은 괜찮지만 싱글쓰레드 성능에서는 퀄컴도 겨우 스냅드래곤 865, 긱벤치 기준으로 인텔의 8~9년 전 프로세서인 아이비브릿지나 하스웰과 비슷한 수준이다. 실상 많은 자료에서 x86 vs ARM이 다루어지고 있는 모습을 보면, 사실상 ARM진영에서는 Apple을 기준으로 성능을 비교하고 있는 경우가 대부분이다. 다른 ARM 회사의 프로세서들의 성능은 아직 x86을 넘니마니 하는 수준에 명백히 미치지 못하고 있기 때문이다. 특히 Apple은 자사 칩을 뿌리지 않고 철저히 자사 플랫폼에만 전용하므로 Apple 혼자 잘나봐야 ARM 전체의 위세엔 별 영향을 못 끼친다. 물론 ARM의 표준 코어도 2020년에 발표된 Cortex-X1 등 고성능을 지향한 ARM Cortex-X 시리즈 프로세서들이 나오고 있기는 하다.
참고로 Apple Silicon 칩의 성능이 타 메이커 대비 압도적이라서 Apple만이 독보적인 기술력을 가진 것으로 착각하기 쉬운데, 실제로는 Apple Silicon의 고성능은 OS와 칩을 모두 설계하는 Apple이란 메이커의 특징에서 기반하는 것으로, 레거시 지원 중단이라는 소비자로서는 받아들이기 힘든 선택을 통해 성능을 극대화한 것이다. 비유를 하자면 승용차에서 시트를 2개만 달고, 승차감을 포기한 초경량 휠/타이어 사용, 트렁크 삭제와 같이 극단적으로 차체를 가볍게 만드는 방법으로 연비와 최고 시속을 끌어올린 것이라고 보면 된다. AMD는 자사 APU에서 CPU/GPU 간 자원에 대한 상호 접근성을 개선해서 성능을 극대화시키는 HSA 기술을 선보인 적이 있는데, 특정 성능 한정이지만 동급 인텔 칩 대비 5배의 성능을 보인 적이 있다.[29] 문제는 이런 신기술은 기존 x86 레거시와 호환이 안되기 때문에 대중화되지 못했다. 즉, 타 메이커의 기술력이 떨어지는 것이 아니라 레거시를 지원하면서 성능을 높이기가 어려운 것이며, Apple이 독보적인 기술력을 가지고 있기 때문이 아니라는 것이다.[30]
  • 운영체제 및 소프트웨어
위 문제들로 인해 종합적으로 ARM진영에 가장 큰 문제가 바로 운영체제 및 소프트웨어로 지금까지 이렇다할 ARM기반 운영체제와 소프트웨어가 없는 이유이다. 애플은 하드웨어와 소프트웨어, 심지어 운영체제까지 스스로 만들 수 있는 유일무이한 회사라 AMD64에서 ARM으로 완전히 이주할 수 있는 능력이 있지만 타회사는 전혀 그렇지 않는 상황이다.[31] 제일 중요한 운영체제부터 확보조차 못하는 상황인데 소프트웨어가 있을리가... 현재 소비자용 컴퓨터 운영체제는 크게 3개 존재하며 리눅스, macOS, 그리고 윈도우가 존재한다. 리눅스는 애초에 일반 컴퓨터 시장에선 잘 안쓰이므로 결국 윈도우와 macOS만 남는데 사실상 이렇다할 운영체제는 윈도우밖에 없다는 얘기가 된다.[32] 근데 Microsoft가 ARM기반 윈도우를 제대로 만들지 않고 방치중인 상황이라 당연하게도 타회사들이 ARM으로 넘어올만한 상황이 아니다.[33] 위 서술중 레거시를 지원하지 않아서 문제라는 언급이 있는데 애초에 아키텍쳐가 전혀 달라서 호환성이 전혀 없을 수 밖에 없는 처지라 애플처럼 완전히 새롭게 만드는게 훨씬 나은 상황이다. 에뮬로 호환성을 어느정도 유지할 수 있겠지만 결국 성능으로 인해 네이티브앱 및 시스템이 절실할 수 밖에 없고 에뮬에 의지하는건 ARM의 장점을 그대로 가져가기 힘들다. 고로 애플외엔 과감하게 레거시를 모두 버리고 새롭게 ARM 생태계를 구축하기엔 리스크가 매우 높고 이미 AMD64의 기반이 탄탄해서 계속해서 비교될 수 밖에 없는데 이렇다할 ARM기반 운영체제마저 없기에 더더욱 주저할 수 밖에 없는게 현실이다. 이 때문에 애플이 먼저 ARM기반 소비자용 컴퓨터 시장을 선점하면서도 Microsoft를 벌써 따돌리는 상황이 생긴것이다.[34] ARM기반 운영체제부터 macOS외엔 사실상 존재하지 않는데 어느누구도 ARM 시장에 뛰어들고 싶지 않을것이다. 아무리 하드웨어가 준비되어도 소프트웨어와 운영체제가 없으면 무용지물이며 애플이 먼저 선점하고 있는 상황에서 Microsoft가 큰 관심이 없다면 ARM진영이 아니라 오로지 애플만 이득을 받을 수 밖에 없다.[35] 그렇다고 운영체제를 만들 수 있는 회사도 극단적으로 적다는 점도 한몫한다.
그렇지 않아도 ARM 특성상 파편화와 커스텀화가 심해서 기존 AMD64처럼 여러회사들이 한개의 운영체제를 쓰는것과 개발하는것 둘다 쉽지 않다는 단점도 있다. 애플은 오로지 독자적인 하드웨어와 소프트웨어를 자사에서만 쓰기 때문에 큰 문제는 아니지만 타회사는 그게 힘들다. 이미 한개의 운영체제에 여러 회사들이 쓰는 안드로이드만 봐도 말 다한셈인데 지금조차 하드웨어 및 소프트웨어 파편화 및 최적화가 무척 심각한 편이다.[36] Microsoft가 제대로된 ARM기반 윈도우를 만들어도 타회사의 ARM칩까지 지원해줄지 의문이고 ARM 그자체의 문제로 인해 가능성이 있을련지도 모른다. 결국 Microsoft가 언제 제대로된 ARM기반 윈도우를 내놓냐에 따라 여러 회사들이 ARM진영에 참여하는걸 결정할듯한데 늦게 나오거나 아니면 오로지 Microsoft 제품에만 한정된다면 ARM진영은 곧바로 몰락할 수 밖에 없는 처지이며 아니면 구글같이 타회사가 ARM기반 운영체제를 따로 내놓을 가능성도 있다.[37]
즉, ARM 프로세서는 여전히 x86 프로세서와 비교해서 커다란 열세에 있다. 이미 ARM 프로세서로 리눅스가 포팅되어있지만 정작 ARM 서버를 시장에서 찾아 볼 수 없는 이유이다. ARM 네이티브 프로그램이 없어서가 아니라는 것이다. 가령 2019년 10월 발매한 Microsoft Surface Pro X는 ARM 프로세서를 탑재했지만, 비싸고, 저전력도 아니고, 성능도 뒤쳐지고, 앱 호환성은 떨어지는 어중간한 Windows 태블릿이 된 상황이다. 이는 Apple도 마찬가지라서 어도비 포토샵 iPad 버전도 기대와는 달리 PC나 Mac 버전에 비해서 간략화된 기능만을 제공하며, 인텔 CPU를 사용하는 MacBook조차도 Boot Camp와 패러렐즈의 힘을 빌었는데도 여전히 Windows 노트북 시장을 잠식하지 못하고 있다. ARM(CPU)의 와트당 성능비가 어떻든 간에 노트북 시장 이상으로 영역을 확대하는 것은 불가능에 가깝다. 다시 말해 ''''ARM(CPU)도 범용 마이크로아키텍처이다'라는 전제 자체가 잘못'''된 것이다.
반도체의 전력당 성능비를 높이는 가장 좋은 방법은 전용 IC(집적 회로)를 만드는 것이다. 문제는 전용 IC는 말 그대로 특정 기능에 특화되어있기 때문에 소프트웨어의 힘을 빌어서 뭔가 다른 것을 처리하는 것이 매우 힘들며, 어떻게 구현한다고 쳐도 매우 고난도의 프로그래밍 능력을 필요로 한다. 따라서 아무리 고성능이더라도 활용하기가 여려워서 외면받게 되는 경우가 많다. 싱글코어, 멀티코어, 매니코어 프로그래밍을 비교해보면 그 난이도를 쉽게 알 수 있는데, 매니코어 프로그래밍의 난이도는 그야말로 상상을 초월한다.
참고로 전력대 성능비를 보면 전용 IC > GPU > CPU 순서이다. 인텔 동영상 디코딩/인코딩 유닛인 QSV가 전력당 성능비가 좋은 이유도 동영상을 처리하기 위한 기능을 하드웨어적으로 내장했기 때문이다. x86 아키텍쳐는 한없이 CPU에 가까운 구조이고, ARM 아키텍쳐는 전용 IC와 GPU 중간쯤 되며, 범용 유닛과는 거리가 멀다. 애초에 ARM 아키텍쳐는 목표 전력을 먼저 설정해놓고 기능을 구현하는 형태이며, 부족한 성능을 전용하드웨어 유닛을 추가하여 보완하는 구조이기 때문이다. ARM 아키텍쳐의 변천사를 보면 저전력을 기본으로 시장에서 요구되는 여러가지 기능들을 지속적으로 추가시켜 온 것을 알 수 있다.
ARM(CPU)는 전력당 성능비를 앞세워서 영역을 넓혀오다가, 주류 시장 진입을 노리면서 비순차 명령어처리나 L2 캐시 같은 성능 중시 기술을 도입한 것이다. 엄밀히 말하면 ARM 아키텍쳐는 범용 아키텍쳐가 아니며, 전용 IC에 가까운 형태였던 CPU가 여러가지 기능을 추가하고, 시장을 넓히면서 점차 범용 아키텍쳐화 되고 있는 것이다. 그리고 그 결과의 산물이 Cortex-A15인데 범용 마이크로아키텍처화되면서 저전력이란 장점을 잃어버렸다.
착각하면 안되는 것이 ARM이든 x86이든 ISA와 상관없이 현대의 반도체 및 마이크로아키텍처 기술력의 수준은 유사하다.[38] 뭔가 하나를 선택한다면 다른 하나를 포기해야만 한다. 레거시 호환성을 유지함으로써 유연성을 확보한 것이 x86의 후계자인 AMD64인 것이고, 불필요한 기능을 쳐내버리고 전력당 성능비를 선택한 것이 ARM이다. 애초에 둘의 영역이 서로 다른 것이다. 산업계에서는 장시간에 걸쳐서 안정성이 검증된 레거시 호환성은 결코 포기할 수 없는 요소이고, 전력당 성능비고 뭐고 ARM이 어떻게 할 수 있는 영역이 아니다. 99% 레거시 호환성이 보장되는 AMD EPYC 프로세서가 동일한 가격에 2배나 많은 코어를 제공함에도 불구하고 업계 관계자들은 서버 시장에 도입을 주저할 정도인데, 구조가 완전히 다른 ARM(CPU)는 말할 것도 없다. 당장 ARM(CPU) 서버 CPU들을 보면 이미 2016년에 64코어 CPU#, 2020년엔 128코어 CPU도 나왔지만# 일부 슈퍼컴퓨터에서나 쓰이고 지지부진한 이유다.

[1] 단적인 예가 삼성의 갤럭시 S3과 후속인 S4인데 S4의 경우 자사 엑시노스를 채용한 제품 개발에 문제가 생기자 바로 퀄컴으로 주 거래를 변경할 수 있었고 S3에서는 퀄컴의 칩셋 공급이 타이트해지자 엑시노스의 비중을 높이는 조치가 가능했다.[2] 이런 심각한 파편화 때문에 시중엔 v8.4, v8.5, v8.6 를 사용한 ARM CPU는 출시도 안됐지만 v9까지 발표되었다. 이 때문에 ARM Holdings에선 v9에 v8.6 까지의 명령어를 구현하겠다고 선언한 상태다.[3] Power Struggles: Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures[4] 2002년부터 2005년까지 ARM 아키텍쳐를 쓰는 xscale을 잠시 내기도 했으나, 2006년에 라이선스를 마벨에 매각.[5] 게다가 AMD 튜리온 시리즈는 2011년부터 생산 중단, 임베디드용이고 멀티미디어에 약하지만 UMPC에선 좀 쓰인 AMD 지오드 시리즈는 2010년 기준으로 거의 생산을 하지 않고 있으며, 모바일쪽 남은것도 스마트폰이 아니라 노트북 컴퓨터태블릿 PC용.[6] ARM 프로세서는 전력 대비 성능비가 우수한 것이 최대 강점인데, 대부분의 앱을 에뮬레이션으로 돌리다보니 배터리 수명이 기대치에 미치지 못한다. 그것도 일부만 작동하므로 호환성도 나쁘고, 다른 태블릿이나 울트라북에 비해서 값이 상당히 비싸며, ARM 네이티브 앱에서조차 성능이 뛰어나다고 보긴 어려운 수준이다. 물론 Surface RT가 출시되었던 때와는 상황이 달라진 것은 맞지만, 현 시점에서는 Surface RT의 재림이 될 가능성이 높다.[7] 게다가 2019년 8월 플레이 스토어에서 64비트 지원이 의무화되면서, 유니티 엔진의 x86_64 미지원 여파로 x86을 통째로 미지원하게 된 경우가 많다. 사례 (구글 플레이 스토어 정책상 64비트 APK를 의무화해야 하지만, (유니티 엔진을 사용한 해당 게임이 개발된) 엔진의 경우 x86_64비트 APK 버전을 지원하지 않아 부득이하게 중단되었습니다.)[8] Mac mini의 폼팩터를 사용하였으며, 반납조건으로 499달러에 개발자들에게 대여할 예정이라고 한다.[9] 슈퍼컴퓨터는 근본적으로 돈을 얼마나 퍼붓느냐의 경쟁에 가깝긴 하다.[10] 즉 보통 긱벤치가 x86 진영에게 까일 때 나오는 레퍼토리인 "ARM이 점수가 뻥튀기된다." 라는 말이 전혀 통하지 않는 벤치마크다. 말 그대로 x86으로 돌렸으니까.[11] 실제로 여러 대기업들이 M1칩 이후로 독자적인 ARM칩을 개발한다고 선언하였으며 인텔과 AMD마저 대놓고 해당칩을 언급할 정도로 컴퓨터 시장에 큰 영향을 주었다고 부정할 수 없게 되었다.[12] 인텔이 얼마나 무능하고 뒤쳐졌는지 알 수 있으며 애플과 Microsoft 둘다 인텔에서 벗어날려고 노력중이니...[13] 아키텍쳐가 전혀 달라서 호환성이 꽝이며 애플처럼 새롭게 개발해야한다. 당연하지만 레거시 호환성도 전혀 없으므로 보수적인 시장에선 부정적일 수 밖에...[14] 서피스 프로 X (2020)과 M1 둘다 비슷한 시기에 나왔다.[15] 애플이 후발주자이고 이마저도 칩 전문회사도 아닌데 인텔이 뒤쳐졌다고 한탄한 셈이다. 하지만 굳이 라이프 스타일회사라고 비아냥거릴 필요가 있었는지는 의문.[16] 인텔은 서버와 모바일 시장이 주력인데 서버쪽은 구글, 아마존, Microsoft가 독자적인 칩을 개발하고 있고 모바일쪽은 애플, 퀄컴, 삼성, 구글, 그리고 Microsoft가 따로 개발중이니 ARM 생태계가 성장 및 확장된다면 많은 경쟁자들은 물론이고 고객들을 점점 더 잃을 수 밖에 없는 처지다.[17] 이미 자사 노트북중에서 라이젠을 탑재한 제품이 존재한다.[18] 당장 해당 자료에서 쓰인 모바일 CPU는 TDP 28W급인 1185G7을 썼고 발열이나 전력소모량에 대해선 아무런 언급조차 안했다. M1칩은 인텔 모바일 CPU Y 시리즈보다 더 낮은 발열량과 전력소모량을 가지고 있기에 애초에 비교자체가 이상한것이다.[19] 물론 초저전력 제품군에서의 나쁜 전력 관리 등은 당시에도 x86 기반이 아닌 ARM이 모바일 시장을 차지할 수 있었던 이유기도 하다.[20] 현대의 CPU는 충분히 빠르기 때문에 이쪽이 체감되는 경우가 많은 것은 사실이다. 그러나 그렇다면 왜 연산 성능을 개선해야 할까? 왜 x86 CPU의 코어는 늘어나고 있을까?[21] 이는 Apple A13과 A14의 성능향상폭인 21%보다 더 크다![22] 뛰어나다는 프로그래머의 수동 최적화도 컴파일러의 최적화에 밀리는 것이 현실이다. 다만 컴파일러가 자동으로 해 주는 SIMD와 같은 벡터 명령어 최적화 수준은 한참 멀었다. 이 부분은 아예 수십년간 쌓여온 x86의 수동 최적화 노하우와 자산 자체가 x86 진영의 막대한 이점이라 할 수 있겠다. 최적화를 더 열심히 하면 이론적으로 성능이 더 좋을 수 있다고 해도 그걸 하는 시간소모도 결국 효율낭비다.[23] 경제학에서 불가능의 삼각정리와 유사하다. 불가능의 삼각정리란 환율의 안정, 통화정책의 독립성, 자본이동의 자유화 등 개방경제의 3가지 목표는 동시에 모두 달성하는 것은 불가능하며 따라서 이 3가지 목표 중에서 적어도 어느 하나는 포기해야 하는 현상을 말한다.[24] ARM 빅리틀은 저전력 4코어+고성능 8코어 조합이다. 인텔 레이크필드도 저전력 4코어+고성능 1코어 조합을 채택했다.[25] 종합 성능에서는 IBM POWER(마이크로프로세서)보다 많이 뒤쳐지며, 특정 연산 성능 한정이라면 GPU에게 추월당한지 오래됐다.[26] ARM 프로세서에 모바일 시장을 뺏긴 이유이다.[27] 프로그래머는 일반적인 이미지와는 달리 열악한 대우로 인해 매우 단순하게 업무를 처리한다. 대표적인 것이 ActiveX 사례인데, 정부에서 ActiveX 사용을 금지시켰더니 ActiveX를 exe 실행파일로 형태만 바꿔서 그대로 사용하는 작태를 저지르고 있다. 프로그래머는 이처럼 최선의 방법보다는 자신에게 가장 쉬운 방법을 고르는 경향이 있으며, 생소한 프로그래밍을 새롭게 적용하는 경우는 매우 극단적으로 드물다.[28] 다만 토발즈가 ARM 자체를 싫어하는 건 아니다. 그는 항상 노트북급 성능을 가지는 ARM 시피유가 있었으면 좋겠다고 했으며, 실재로 Apple에서 x86대신 ARM을 넣은 맥을 발표하자, 해당 소식에 기뻐했다. #[29] 포토샵 특정 플러그인 기준[30] Apple은 macOS Catalina에서 32bit 앱의 작동을 막았고, OpenGL과 Vulkan, CUDA도 지원을 중단했다. Rosetta 2를 통해서 당분간 기존 인텔 Mac을 지원하겠지만, 향후에는 지원을 끊을 것이다. 이런 식으로 속도 향상에 발목을 잡는 레거시 지원을 포기해버리면 인텔/AMD/퀄컴/삼성 등 현재 칩 설계 메이커들도 성능을 대폭 향상 시킬 수 있다. 레거시 지원을 포기했었던 인텔 아이태니엄의 실패 사례에서 볼 수 있듯이 못하는 것이 아니라 안하는 것인데 사실상 x86코드보다 AMD64 모드만을 실행시키는 경우가 더 많은 2020년에 출시된 라이젠 5000 프로세서도 16비트 코드 환경인 8086모드와 보호 모드같은 1980년대의 코드를 여전히 지원한다.[31] 애플외에 ARM칩을 개발하는 회사 모두 애플처럼 완전히 이주할 생각은 전혀 없다.[32] 당연하지만 macOS는 오로지 애플 컴퓨터에서만 쓰인다.[33] 심지어 대부분 에뮬에 의지하며 결정적으로 레거시 호환성으로 인해 발목이 잡히고 있다.[34] 실제로 첫 애플 실리콘 혹은 ARM기반 맥이 나옴에 따라 지원되는 소프트웨어들이 몇달만에 ARM 윈도우보다 훨씬 더 많아졌고 특히 어도비같은 메이저 회사들이 macOS에 먼저 지원하기 시작했다.[35] 단 Microsoft가 공식적으로 독자적인 ARM칩을 개발한다고 선언했으니 얘기가 달라질듯 하다. 하지만 Microsoft조차 레거시 호환성을 무척 중요하게 여기는 바람에 애플처럼 완전히 새롭게 만들련지 의문이다. B2B 사업이 큰 Microsoft 특성상 무작정 시장이 큰 x86 호환성을 버릴 수 없는데 ARM기반 컴퓨터를 제대로 만들려면 호환성을 버려야한다.[36] 반대로 iOS는 하드웨어와 소프트웨어 둘다 만들기에 최적화 수준이 훨씬 좋다.[37] 빈약하지만 이미 크롬OS가 있다.[38] ARM 아키텍쳐 선두주자인 Apple M1 칩은 ''''5나노 공정''''이고, AMD64 아키텍쳐는 라이젠 5000씨리즈조차 ''''7나노 공정''''이다. 즉, M1 칩의 저발열 /고성능은 ARM 아키텍쳐의 저전력과 최신 미세공정 기술이 복합적으로 적용한 결과이다.