Apple M1 Chipset이 다른 CPU 제조사의 CPU 보다 빠른 이유?

 


Apple은 M1 Chipset을 사용하는 맥북을 출시하였고, 시장의 반응은 상당히 뜨거웠습니다. 성능이 매우 뛰어났기 때문입니다. 기존 intel CPU를 사용하는 고성능 PRO 제품군과 견줘도 손색이 없을 정도로 M1 Chipset은 Benchmark 성능에서 뛰어남을 보여주었습니다. 이런 조건에서 발열 조건을 살펴보아도 다른 제품군보다 훨씬 우수했습니다. 이러한 Apple Chispet의 성능의 이유는 무엇일까요?

1. M1 세부 스펙

항목 세부스펙
파트넘버 APL1102
CPU Apple Firestorm MP4 0.6 ~ 3.2 GHz + Apple Icestorm MP4 0.6 ~ 2.1 GHz 192 KB 명령캐시 + 128 KB 데이터캐시 L1 Cache // 공유 12MB L2 Cache[49] + 128 KB 명령캐시 + 64 KB 데이터캐시 L1 Cache // 공유 4MB L2 Cache[50]
GPU 자체 디자인 아키텍처 MP7/8 -.- GHz 128EU, 2.6 TFLOPS(FP32), 82GTex/s(TMU), 41GPix/s(ROP)
NPU 자체 디자인 아키텍처 MP16
메모리 LPDDR4X 8/16GB 4266 MT/s
생산 공정 TSMC 5nm FinFET (EUV) 다이 사이즈 : 120 mm², 트랜지스터 갯수 : 16B
내장 모뎀 없음
주요 사용 기기 MacBook Air, 13형 MacBook Pro, Mac mini

2. 성능이 빠른 이유

2.1. 모든 것이 들어가있는 SoC 구조

M1 칩은 단순히 CPU로만 구성되어 있는 것이 아니라, CPU, GPU, 메인메모리와 같은 다양한 요소들이 M1 칩 내부에 모두 들어가 있는 SoC(System on Chip) 입니다. 이러한 구성이 상대적으로 우월한 성능을 낼 수 있게 하는 요소입니다. 이러한 구조 덕분에 원하는 파트의 부품을 구매하여 전체적인 성능 향상을 기대하기는 어려워졌다는 건 아쉬운 요소입니다.

2.2. 특정 작업에 특화된 칩셋 사용

종류 역할
CPU 운영체제 및 기본적인 프로그램 실행
GPU 그래픽 작업을 수행
ISP(Image Processing Unit) 이미지 프로세싱 속도 증가
DSP(Digital Signal Processor) CPU보다 수학 연산이 많이 필요한 기능을 수행 (ex.음악 파일 압축 해제)
NPU(Neural Processing Unit) 머신러닝, 음성인식과 같은 인공지능에 특화된 연산처리
Video Encoder/Decoder 비디오 파일 인코딩&디코딩
Secure Enclave 암호화, 인증, 보안
UMA(Unified Memory Architecture) CPU, GPU 및 다른 코어들이 빠르게 정보 교환을 할 수 있는 구조

기존에는 범용 CPU, GPU가 모든 작업을 처리했습니다. 작업마다 동작이 다르기 때문에, 범용 작업 처리는 불리한 점이 있었습니다. 하지만, M1 칩에서는 여러 가지 칩들을 사용하여 특정 작업에 해당하는 역할을 따로따로 수행하게 하였고, 이는 성능 향상에 큰 도움이 되었습니다.

2.3. M1 칩의 빠른 범용 CPU 코어 Firestorm

M1 칩에서는 위에서 말한 것처럼 여러 가지 특화된 칩을 사용한다고 하였습니다. 그 중에서도 성능에 큰 기여를 하는 것은 빠른 범용 CPU 코어인 Firestorm 이라고 합니다. 명령어를 더 많이 수행하기 위해서는 클록 주파수를 높혀 동일 시간 내에 더 많은 명령어를 실행하게 하거나, 병렬 작업을 수행해야 합니다. 주파수를 높히는 방법은 한계점에 다다르게 되었고, 발열이 많이 생기기 때문에 추가적으로 수행하기 어려웠습니다.

이러한 문제를 해결하기 위하여 병렬 작업에 대한 효율성을 높혀야 하는데, 비순차 실행(Out-Of-Order Execution)이 중요하게 됩니다. Out-Of-Order Execution 를 해주지 않는 CPU의 경우에는 명령어들이 순서대로 들어올 때, 중간에 끼어 있는 한 명령어를 수행하는데 오랜 시간이 걸리면 그 동안 CPU 가 놀고 있어야 합니다. 하지만, Out-Of-Order Execution 이 잘 적용된 CPU의 경우에는 실행 순서가 상관 없는 명령어(이를 의존성이 없다고 말합니다) 같은 경우 대기만 하는게 아니라 원래 대기해야 할 명령어를 수행하여 동일 시간에 더 많은 명령어를 병렬 수행 가능합니다. Apple의 Firestorm 은 이를 매우 잘 적용시킨 코어라고 합니다.

이는 RISC 구조로 이루어진 ARM Cpu의 구조 덕분이기도 한데, AMD/intel 이 사용하는 x86-64 Micro Architecture 는 CISC를 구조를 사용하여 명령어의 길이가 모두 상이합니다. 따라서 구조가 매우 단순하며, 이를 해석하는 디코더를 AMD/intel이 4개 정도만 넣은 것과 대비하여 8개나 넣을 수 있어 병렬 작업에 더 특화된 것입니다.

2.4. Unified Memory Architecture(UMA) 사용으로 인한 성능 향상

M1 칩은 다른 Chipset 제조사인 intel, AMD와 다르게 Unified Memory Architecture(UMA) 라는 구조를 사용합니다. 이전에 intel, AMD가 사용하던 CPU 구조에서는 APU 라고 불리우는 CPU + GPU 구조의 GPU 도 지원할 수 있게 만들었습니다. 하지만 이 구조 속에서는 APU 안의 CPU, GPU 가 같은 데이터를 사용한다고 하더라도 서로 다른 메모리 영역을 사용하고 있어, 데이터를 복사해서 전달해야하는 버든(Burden)이 존재했습니다. Apple은 UMA 사용으로 데이터 위치만 알고 있으면, CPU든 GPU든 동일한 데이터를 사용할 수 있습니다. 버든을 줄여 성능 향상에 기했다고 볼 수 있습니다.

3. 결론

Apple의 이런 성능을 뽑아낸 CPU의 제작은 놀랍다고 할 수 있겠습니다. 만들고 있다는 사실은 알았지만, 애플이 이러한 정도의 성능을 뽑아내는 제품을 만들 것이라고는 짐작하지 못했습니다. 이제 x86-64 Micro Architecture 는 기울어가고, ARM의 구조가 대세로 자리잡아가고 있는 것 같습니다. 향후 MS와 같은 회사들도 ARM 기반으로 CPU를 자체제작 하겠다고 밝히고, 다양한 회사들이 자체 설계하여 TSMC나 삼성전자 같은 파운더리 기업에 위탁생산하고 있습니다. intel/AMD이 기존의 제품만 가지고 싸우기에는 비지니스 적으로 어려울 것 같으며, 추후 성능적으로 어떤 개선안을 보여줄지 기대됩니다.


reference

  • https://namu.wiki/w/Apple%20Silicon#s-4.2
  • https://skuld2000.tistory.com/172
  • https://news.hada.io/topic?id=3315