M1칩이 빠른 이유

컴퓨터과학 2021년 05월 27일
그림 1 - M1 Chip (Source: apple.com)

1. CPU에 대한 간단한 설명

CPU는 기계에 있어서 인간의 뇌와 같은 역할을 한다. 센서 등으로부터 정보를 입력받고, 이에 대한 모든 연산이 이루어지는 공간이다. 크게는 임시 메모리인 레지스터와, 산술 논리 장치인 ALU(Arithmetic Logic Unit) 등에 의해 구성되며, 이러한 CPU는 기계어를 변환하는 명령어의 구조인 ISA(Instruction Set Architecture)에 따라 명령어의 길이가 고정된 RISC(Reduced Instruction Set Computer와 가변인 CISC(Complex Instruction Set Computer)로 구분된다.

2. M1칩의 등장

그림 2 - Apple M1 Chip Summary (Source: Apple 2020-11 Special Event)

2020년 애플은 CPU, GPU등이 들어있는 SoC(System on Chip)인 M1을 맥북 신제품과 함께 발표한다. 애플은 그동안 아이폰, 아이패드에 들어가는 자체 설계 CPU를 A1, A2의 방식으로 이름 붙여왔는데, 이제는 맥에 탑재된다 하여 맥의 첫 글자인 M에 첫번째인 1을 합친 M1의 이름을 가지게 된 것이다. 이 칩은, ARM 아키텍처의 개인용 컴퓨터에서의 가능성을 보여주고, 맥 점유율 상승에 기여했다고 평가받고 있다.

3. ARM, Intel & AMD

그럼 ARM 아키텍처는 또 무엇인가? CPU를 만드는 한 영국 회사인 ARM 홀딩스는 저전력 저발열의 특징을 가지는 ARM 칩을 설계한다.

그림 3 - ARM Holdings (Source: https://www.archdaily.com)

이 밖에도 인텔과 AMD등의 회사가 CPU를 생산하는데, 각 회사들이 내놓는 장치들은 서로 ISA와 마이크로 아키텍처가 다르다. 여기서 마이크로 아키텍처는 명령어를 반도체에 가져와 실행하고 저장하는 방식을 말한다. 따라서 각 회사의 CPU는 처리 속도나 성능에 차이가 있어 사용되는 기기가 달랐다. 아이폰을 시작으로 한 스마트폰은 저전력, 저발열의 특징을 가진 ARM칩이 사용되었다. 고성능을 요구하고 전력과 발열에서 자유로운 컴퓨터에서는 인텔이나 AMD와 같은 회사가 생산한 CPU가 탑재되었다. 그러나 ARM칩의 기술이 계속 성장하면서 저전력, 저발열의 조건에서도 고성능 출력을 낼 수 있게 되자, 애플은 통상적으로 컴퓨터에 적합하지 않다고 인식되었던 이 ARM 아키텍처가 적용된 새로운 칩, M1 을 설계하게 된다.

4. 더욱 빠른 CPU의 개발

데이터가 많아지고, 복잡한 연산이 필요해지면서, CPU 제조사들은 자사의 칩의 속도를 높여야 했는데, 여기에는 크게 두 가지 방법이 존재한다. 첫번째는 CPU의 클럭 속도(컴퓨터가 1초에 수행하는 전기적 신호(0 또는 1)의 횟수, 2.4GHz와 같이 표기)를 높이는 것인데, 컴퓨터가 개발되던 초기와 달리 지금은 거의 기술적 한계에 도달한 상태이다. 두번째 방법은 한개의 CPU가 동시에 여러 작업을 수행할 수 있도록 하는 것이다. 여기에는 한개의 작업을 병렬적으로 수행할 수 있는 CPU의 단위인 코어의 수를 늘리거나 한개의 코어가 동시에 여러 작업을 수행할 수 있도록 하는 방법이 존재한다. 하지만 코어 수를 무한정 늘리는 것은 클라우드 서버용 컴퓨터가 아닌 이상 낭비에 가깝다. 코어의 개수에 따라 개발자들은 다른 코드를 작성해주어야 하기 때문이다. 따라서 일반적으로 컴퓨터 회사들은 적지만 강력한 코어를 탑재하기 위한 연구를 진행하고 있다. 이때 등장하는 개념이 비순차적 실행, OoOE(Out-of-Order Execution)이다.

5. 비순차적 실행(OoOE)과 RISC

일반적으로 코드를 순차적으로 실행하는 고전적 방식과 달리 OoOE는 코드의 의존성을 파악하여 다른 순서로 코드를 실행한다. 각 코드가 실행되는데 필요한 시간이 다르기 때문에, 오래 걸리지만 독립적으로 실행될 수 있는 코드를 CPU가 자체적으로 판단하여 병렬로 실행하는 것이다. 조금 더 구체적으로는, CPU 내에는 정수의 덧셈 뺄셈을 수행하는 ALU와 정수의 곱셈을 실행하는 Integer Multiplier/Divider Unit, 실수 연산을 수행하는 FPU, 메모리를 불러오는 LSU 등의 부분으로 나뉘는데, 덧셈을 통해 ALU를 작동시킴과 동시에 LSU에서 메모리를 불러오는 식으로 병렬 연산이 가능한 것이다. 또, 비순차적 실행은 가상의 레지스터를 할당하여 미리 연산된 코드를 저장하고 Micro-Op을 통해 기록한 뒤, 정상적 차례가 되었을 때 가상 레지스터의 값을 pop 해준다. 따라서 비순차적 실행은 많은 트랜지스터를 지닌 큰 RISC 칩에서만 수월하게 실행된다. 여기서 문제가 생기는데, 비순차적 실행을 하며 micro-op들을 저장하다보면 버퍼가 발생하게 된다. 이는 처리 순서에 지연을 가지고 오는데,  이를 해결하기 위해 CPU는 decoder을 탑재하고 있다. 애플의 M1 칩에 포함된 firestorm CPU는 AMD, INTEL 칩과 비교시 월등히 많은 수의 Micro-Op decoder을 가지고 있기 때문에 월등히 빠른 속도를 낼 수 있게 된다. 여기에는 ARM 기반 CPU가 RISC 구조를 가지기 때문에 CISC CPU에 비해 적은 경우의 수를 생각하면 되기 때문도 있다.

6. SoC(System on Chip)과 UMA

그림 4 - SoC (Source: Apple 2020-11 Special Event)

M1칩은 하나의 칩이지만, CPU와 GPU, 사진 보정 등에 사용되는 인공지능이 구동되는 뉴렬 엔진 등이 합쳐진 SoC라고 불리는 개념이 적용된 칩이다. 특정한 기능을 가지는 칩 여러 개를 모아, 높은 작업 효율을 지닌 하나의 칩을 설계한 것이다. 이전에는 각기 다른 회사에서 제작한 GPU, CPU 등이 메인보드 전체에 걸쳐 장착되었지만, 애플은 이 모든 장치를 한가지 칩으로 통합함으로써 처리 속도를 높일 수 있었다.

그림 5 - UMA (Source: Apple 2020-11 Special Event)

SoC를 구현함과 동시에 애플은 UMA(United Memory Architecture)를 도입한다. 먼저 메모리(Memory)는 주 저장 장치인 SSD나 HDD와 별개로 존재하는 임시 저장소인데, CPU나 GPU가 SSD와 같은 저장 장치에 접근하여 데이터를 가져오는데 걸리는 시간을 절약하기 위해 쉽고 빠르게 당장 필요한 데이터들을 저장해 놓는 임시 저장소이다. 컴퓨터 메인보드에 탑재되는 메모리는 4GB, 8GB, 16GB와 같이 한정된 공간을 가지는데, CPU와 GPU는 서로 메모리 공간을 공유하지 못해서 한정된 메모리 공간을 나누어 사용한다. 지속적으로 데이터를 복사해주어야 하기 때문에 많은 메모리 용량이 낭비되는 문제가 발생했고, 이는 속도의 지연으로 이어졌다. M1 칩은 이 두 가지 메모리의 경계를 없애고 합침으로써 CPU와 GPU 할당 메모리 사이 데이터 복사가 필요 없고, 지연이 적어 빠른 통합 메모리를 만들었다.

7. CPU의 미래

컴퓨터 칩은 계속 진화하며 변화하고 있다. 무어의 법칙이 점차 한계에 도달하고 있는 시점에서, SoC로 전환하는 트랜드는 앞으로도 계속될 것으로 보인다. 앞으로 애플과 같은 컴퓨터 제조사들은 IP를 구매하여 조합하고, 이를 TSMC와 같은 파운더리 업체에 맡김으로써 칩을 설계할 것이다. 더욱 많은 회사들이 자체 칩을 설계할 것인데, 무한 설계 경쟁에서 웃는 기업은 누가 될지 지켜보는 것도 재미있을 것이라고 생각한다.

참고 문헌

정윤재

하나고등학교 12기

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.