이번 포스팅에서는 이전까지 배운 지식을 총동원해서 어떻게 애플은 괴물같은 성능의 M1칩을 만들었을까?를 한번 살펴볼 것이다. 작년 9월부터 조금씩 개발을 건드려보기 시작했는데, 기존에 쓰던 게이밍 노트북은 정말 괴물같이 무거웠다. 무겁기만 했으면 다행인게 충전기를 꽂지 않으면 30분만에 강제종료되는 경험(배터리 50퍼 아래로 떨어지면 꺼짐)을 맞이해서 사실상 데스크탑같은 랩탑이었다. 5월에 맥북으로 바꾸고 신세계를 맞이했다. 가방에 넣었는데 아무것도 넣지않은 느낌이었고, 가장 놀라웠던 것은 배터리 효율이었다. 아니 어떻게 절전모드로 한나절을 보냈는데 배터리가 그대로지?! 심지어 예쁘기까지 하다. 어디서든 공부를 하고 싶게 만드는 마성의 맥북을 하나하나 뜯어서 살펴보자. 컴퓨터의 하드웨어 요소들을 배웠으니 순서대로 살펴보자.
맥북의 하드웨어 요소
CPU부터 살펴보려고 조사를 해봤더니 충격적인 사실을 알게되었다. 맥북의 CPU가 곧 M1칩이고 거기에 GPU, RAM.... 모든게 일체형이라고 한다. 아니 어떻게 이게 가능한 것일까? 맥북과 다른 노트북의 하드웨어 구조의 차이점과 적용된 기술을 천천히 살펴보자.

SoC(System on Chip)
맥북의 하드웨어 구조를 표현할 수 있는 단어다. 하나의 칩안에 CPU, GPU, 메모리 등등 여러 기능을 집적시켜서 시스템 장치와 인터페이스 장치들을 제어하고 관리하는 시스템이다. 우리가 사용하는 태블릿이나 스마트폰도 SoC를 이용하여 단일칩으로 시스템을 관리한다. 단일칩을 사용하므로 CPU와 GPU는 같은 메모리를 공유하고, 데이터를 복사하는 시간이 줄어 작업속도도 향상된다. 이러한 시스템 덕분에 맥북은 획기적으로 가볍고, 얇고 예쁜 디자인을 만들 수 있었다. 근데 이런 훌륭한 기술을 왜 다른기업들은 두각을 나타내지 못했을까? 다른기업도 SoC기술에 사활을 걸고 있다. 하지만 SoC에도 치명적인 단점이 있다. 하나의 칩안에 모든 부품들을 넣다보니 발열이 굉장히 심한데 반도체의 발열이 심해지면 냉납이 발생해 메인보드가 사망하기 때문에 오랫동안 SoC기술의 숙제로 남아있었다. 애플은 기존의 Intel과 AMD가 아닌 ARM 프로세서를 활용함으로써 발열이슈를 극복하고 배터리 효율을 획기적으로 늘렸다.
ARM프로세서

ARM이라는 녀석이 어떤 특징이 있길래 발열을 극복하고 배터리효율까지 압도적으로 향상시킬 수 있었을까? 이 정답은 Intel, AMD, ARM 프로세서가 각각 채용하는 아키텍처의 차이에서 발생한다. Intel과 AMD프로세서는 주로 CISC아키텍처를 이용해서 cpu의 명령어를 처리한다. CISC아키텍처는 많은수의 기본명령어를 가지고 있어서 복잡한 명령이 가능하다. 하지만 기본적인 단순 명령이 느리고 복잡한 명령어는 많은 에너지를 사용하여 발열과 배터리소모가 크다. 반면 RISC아키텍처는 적은수의 기본명령어를 가지고 있지만 단순명령을 빠르게 수행하는데 최적화되어있다. 이는 발열을 줄이고 배터리소모를 효율적으로 관리한다.
그렇다면 왜 기존 CPU회사들(Intel, AMD)은 CISC아키텍처를 선택해 프로세서를 만들었을까? 최초의 프로그래밍은 어셈블리언어를 직접 만져야 했고, 한정된 메모리를 가지고 작업해야 했기에 복잡한 명령어를 처리할 수 있는 CISC를 채택하는게 훨씬 현명한 판단이었다. 하지만 컴파일러가 등장하고, 최근 폭발적으로 발전된 메모리를 등에 업고 RISC의 힘이 막강해졌다.(배터리소모가 최우선 과제이기 때문)
따라서 애플의 M1칩의 괴물적인 배터리효율과 발열 제어기능은 컴파일러의 보편화, 발전된 메모리 기술, 시기적절한 ARM프로세서를 바탕으로한 칩 제작이 맞물려 탄생한 역작이다.
하지만 ARM프로세서도 장점만 존재하는 것은 아니다. 보통의 ARM프로세서는 Intel, AMD프로세서에 비해서 배터리효율은 좋지만 성능은 떨어진다는 평가를 받았다. 하지만 애플은 이것을 어떻게 극복했을까?
하드웨어의 커스터마이징

애플은 원래 IT회사(소프트웨어)다. 하지만 아이패드 1부터 A시리즈 칩을 자체제작하면서 하드웨어까지 자체양산이 가능해졌다. ARM프로세서를 IP를 사서 커스터마이징 할 수 있기 때문이다. 이말은 곧 소프트웨어에 맞춰서 하드웨어를 커스터마이징 할 수 있다는 말이다. 애플은 이러한 소프트웨어의 니즈를 엔진이라는 개념으로 만들어 다양한 엔진을 M1칩에 차곡차곡 쌓아놓았다. 머신러닝 작업에 도움을 주는 뉴럴엔진, 비디오 편집시 인코딩, 디코딩에 특화된 미디어 엔진, 인증, 암호화, 보안 분야를 최적화하는 Secure Enclave등 세분화된 수많은 엔진을 가지고 있다. 이를 통해 ARM프로세서의 부족한 성능을 보완해 Intel칩의 성능을 뛰어넘는 역대급 칩을 만들어냈다!
마치며
첫 아이폰 선보이면서 스티브잡스는 다음과 같은 구절을 인용했다.
소프트웨어에 진심인 사람은, 자신만의 하드웨어를 만들어야 한다. - Alan Kay
M1칩은 SoC에서 한번, ARM프로세서에서 한번, 소프트웨어와 하드웨어의 통합에서 한번 총 세번의 혁신을 일으켰다. 이걸 보면서 애플이 계획한 것을 지체없이 구현하는데는 자기가 잘하는 분야만 좇는게 아닌 더 나은 제품을 위해 필요한 모든 분야를 철저히 공략하는데서 나오는 게 아닌가 싶다. 나도 나중에 정체된 개발자가 되지 않으려면 내가 더 나은 가치를 만드는데 필요한 모든 분야를 공부해야 된다는 인사이트를 던져주는 포스팅이었던 것 같다.
'TIL' 카테고리의 다른 글
| 머리 깨지기 (22.07.09TIL) (0) | 2022.07.09 |
|---|---|
| 메타인지와 태도(어떻게 공부할 것인가 독후감2) (0) | 2022.07.07 |
| PC견적 맞추기 (22.07.06 TIL) (0) | 2022.07.06 |
| 컴퓨터 하드웨어 (22.07.06TIL) (0) | 2022.07.06 |
| 컴퓨터의 구조-폰노이만 ~ 현대 컴퓨터 (22.07.05TIL) (0) | 2022.07.05 |