-
시장의 판도를 바꾸는 Apple silicon M1개발 2022. 8. 11. 09:24
사진만으로 아름답고 영롱하다.
애플은 M1으로 전력 효율이 좋고, 배터리도 오래가고, 발열도 적고, 소음도 안 나는 최고의 노트북을 완성하였다.
나는 삼성페이를 못 잃기 때문에 아이폰을 사용하지 않고, 맥에서 금융 관련 작업, 학교 증명서 출력 등등 못하는 게 많기 때문에 애플 제품들을 그다지 선호하지는 않는다.
하지만 애플은 제품을 참 쿨하게 잘 만든다는 점은 인정할 수 밖에 없다.
그리고 대망의 m1 맥북을 사용해 본 뒤로 더 이상 코딩을 할 때 m1을 쓰지 않는 컴퓨터에서 작업을 못하는 몸이 되어 버렸다.
미니맥도 써본 적이 있고, 인텔 맥북도 써본 적이 있었는데, 미니맥은 딱히 좋은 감정도 싫은 감정도 없었다.
하지만 연구실에서 주어졌었기 때문에 쓴 것이지 그 가격을 생각하면 내 돈으로는 못 살 것 같다.
인텔 맥북은 발열과 소음이 엄청났다.
'랩'탑인데 lap에 올려두면 큰 일 날 것 같았다.
그런데 m1은 다르다.
m1은 애플 주식을 사게 만든다.
추천주 아닙니다. 모든 투자의 책임은 본인에게!그램 노트북에서 테스트 코드를 한 번 돌리는데 15분 정도 걸렸었는데, (이 테스트들은 하루 안에도 몇 번씩 돌려봐야 했다.) 다른 사람들도 다 겪는 문제인 줄 알고 계속 쓰다가 회사에서 m1 맥북을 받아서 맥북에서 돌렸더니 1분도 안 걸리는 걸 보고 허송세월한 시간이 너무 아까웠던 경험이 있다.
개발을 한다면 웬만하면 m1칩, 혹은 m2를 쓰기를 추천한다. (아직 m1보다 인텔에서 더 잘 돌아가는 프로그램들도 있지만, 그 프로그램들도 애플 생태계에 점점 최적화가 될 것이다.)
M1 칩은 신세계다.
그렇다면 도대체 무엇이 그렇게 특별하길래 이렇게 큰 차이를 만든 것인지 알아보도록 하자.
내 생각에 애플은 m1에 할 수 있는 거의 모든 것을 다 갈아서 넣은 것 같다.
M1은 ARM프로세서 방식을 채택했고, 이게 혁신의 시작이라고 볼 수 있다.
ARM 프로세서 방식의 장점들은 이미 알려져 있었다.
m1은 이때까지의 대세인 x86이 아닌 ARM 프로세서 방식을 사용하는데,
사실 이전에도 ARM프로세서 방식으로 노트북이 출시가 된 적이 있었지만 망했기 때문에
m1이 나오기 전까지는 x86 방식이 계속 많이 사용되어 왔다.
그런데 ARM프로세서 방식으로 성공적인 제품을 만드는 것을 애플이 해냈다.
나는 애플이라서 가능했다고 생각한다.
따라서 애플이라는 회사에 대해 먼저 분석해보자.
애플은 조금 특별한 회사이다.
mac OS라는 운영체제부터 소프트웨어, 하드웨어 모두 다룬다.
그리고 특유의 폐쇄성 때문에 사용자 입장에서는 불편한 점도 있지만 ARM 프로세서 방식을 노트북에 적용시키는 데 있어서 폐쇄성은 아주 큰 역할을 했다고 볼 수 있다.
x86과 ARM은 완전히 다른 생태계이기 때문에 이미 대세인 x86생태계에 ARM이라는 생태계가 끼어들기 매우 어려웠다.
ARM방식의 노트북이 처음 나왔을 때 x86에서 돌아가는 프로그램들이 ARM에서 안 돌아갔기 때문에 사용자들은 당연히 x86을 선택했다.
아무리 성능이 좋아도 유튜브도 안 되는 컴퓨터를 살 이유는 당연히 없었을 것이다.
그리고 그대로 ARM은 영원히 사라지는 듯 했으나 애플의 CPU를 만들어줬던 인텔에 대한 애플의 불만이 쌓여가면서 애플은 스스로 칩을 설계하기로 마음을 먹는다.
또한 애플 고객들은 애플에 충성도가 높다.
애플만큼 충성도가 높은 사용자들이 많은 회사가 잘 없다.
애플 제품을 사용하는 사람들은 보통 모든 기기를 다 애플 것을 쓴다.
이미 폐쇄적인 생태계에 들어왔기 때문에 다른 곳으로 나가기 힘들 뿐만 아니라
애플은 마케팅도 잘 하고 애플을 사랑하는 사람들의 욕구를 잘 충족시켜주기 때문에 애플의 결정을 전적으로 밀어줄 준비가 되어 있는 사람들이 엄청 많다.
반면에 이전에 마이크로소프트에서 ARM 프로세서 노트북을 출시했을 때 개발자들은 ARM 프로세서에 적합한 프로그램을 열정적으로 만들려고 하지 않았다.
그래서 성능은 좋지만 그 좋은 성능을 쓸 데가 없는 노트북이 탄생했고,
그리고 그렇게 역사 속으로 사라졌다.
하지만 애플은 이 한계를 극복하기 위해 x86프로그램이 돌아갈 수 있게 로제타2라는 최적화가 잘 된 애뮬레이터를 만들어두어서 1차적으로 문제를 해결했다.
그리고 충성적인 애플 고객들은 ARM에 최적화된 프로그램을 만들기 위해 지금도 열심히 개발 중이다.
'도커' 라는 개발자들이 많이 사용하는 프로그램도 얼마 전에 깔았을 때만 해도 로제타2를 깔았어야 했는데 이제는 더 이상 그럴 필요가 없어졌다. (물론 아직 과도기라서 깔면 더 좋다고 쓰여 있긴 하다.)
따라서 애플은 전폭적으로 지원해 줄 자신의 고객들을 믿고 원하는 대로 할 수 있는 걸 다~ 했다.
ARM프로세서의 가장 중요한 특징은 전력효율이 좋다는 것과 소형화가 가능하다는 것이다.
M1칩은 CPU가 아니다.
M1칩 위에는 거의 모든 부품(CPU, GPU, 메모리 등등)이 다 올라가 있다.
이를 SoC(system on chip)라고 한다.
원래는 부품들이 다 떨어져 있었는데 한데 묶었기 때문에 전력 효율이 높고, 전력효율이 높기 때문에 발열이 적을 수 밖에 없고, 전력효율이 좋다는 말은 적은 배터리로도 오래간다는 말이고, 성능도 좋을 수밖에 없다.
M1 맥북은 쿨링 팬이 없다.
쿨링 기능이 없는 노트북이라니 이게 과연 가능할 것인가 싶지만
ARM프로세서를 사용하면 가능하다.
핸드폰에는 쿨링 팬이 없다.
물론 겨울에 고사양 게임을 돌리면 손난로로 사용할 수 있을 정도이지만 휴대성이 중요한 핸드폰에 쿨링 기능까지 넣을 수는 없다.
애플은 노트북에도 똑같이 적용했다.
ARM프로세서는 휴대용으로 적합하다.
애플은 이미 아이폰과 아이패드에 ARM프로세서를 적용한 경험이 있었다.
그렇기 때문에 노트북에도 적용하면서 인텔에 안녕을 고할 수 있었고,
전력 효율이 좋아서 배터리도 오래가고 발열도 적고, 쿨링 팬이 없으니 소리도 안 나는 최고의 노트북을 완성하였다.
애플은 할 수 있는 거의 모든 것을 다 했다.
Unified Memory Architecture(UMA)를 이용해서 메모리 속도를 매우 향상시켰다.
UMA는 프로세서의 모든 부분에서 하나의 메모리에 접근하는 방식이다.
M1은 빠르고 대량의 데이터를 제공하는 메모리를 사용하고, 유동적으로 메모리가 필요한 부분에 더 많은 메모리를 할당할 수 있다.
기존의 x86방식에서는 각 부분에서 메모리를 분할해서 사용했기 때문에 같은 데이터를 사용하더라도 여러 메모리 풀 간에 데이터를 복사하는 과정이 필요했는데 동일한 메모리 주소에서 한 데이터에 접근할 수 있는 UMA방식에서는 그럴 필요가 없어졌고, 따라서 성능이 매우 향상되었다.
또한 ARM프로세서에서는 RISC방식을 사용한다.
CPU는 크게 RISC방식과 CISC방식 중 한 가지를 사용하는데, x86은 주로 CISC를 사용했고, ARM에서는 주로 RISC 방식을 사용한다.
RISC와 CISC의 차이는 명령의 길이가 고정되어 있는지 그렇지 않은지이다.
RISC는 각 명령어들의 길이를 고정해두었다.
엄청 길고 복잡한 명령어를 CISC에서는 그냥 내렸다면, RISC는 그 명령어를 간단하게 쪼개서 각 명령어의 길이가 모두 같게 내리는 방식이다.
RISC방식에서는 명령의 길이를 명확히 알고 있기 때문에 어떤 명령이 언제 끝날지 모르는 CISC방식에 비해 예측하기가 편하고, CPU의 자원을 최대로 활용할 수 있어서 빠른 처리가 가능하다.
예를 들어 손 씻는 곳, 양치하는 곳, 가글하는 곳이 각각 한 개 씩인 유치원에서 10명의 아이들에게 명령을 내린다고 했을 때
CISC: 손 씻고, 양치하고, 가글해.
RISC: 30초 동안 손 씻어. 30초 동안 양치해. 30초 동안 가글해.
와 같이 명령을 내리면, CISC방식에서는 각각의 명령이 한 학생 당 얼마나 걸릴 지 모르기 때문에 양치를 오래 하고 있는 학생이 있으면 다른 친구들은 양치를 못하고 양치를 못해서 계속 양치하려고 기다리고 있고, 가글하는 곳은 사람이 없어 놀고 있을 것이다.
반면 RISC방식에서는 손 씻는 곳, 양치하는 곳, 가글하는 곳에서 머무는 시간이 일정하기 때문에 노는 공간 없이 컨베이어 벨트처럼 챡챡 아이들을 가글까지 빠르게 완료시킬 수 있다.
노는 장소 없이 효율적으로 아이들을 이동시키는 것이 얼마나 빠르게 완료를 하는지에 큰 영향을 미친다.
물론 손 씻는 시간, 양치하는 시간, 가글하는 시간을 줄이는 것도 빨리 끝내는 데에 도움이 되지만, 줄일 수 있는 한계가 있다.
따라서 각각의 처리 시간을 그대로 두면서 (클럭은 그대로면서) 병렬 처리를 효율적으로 해야 한다.
이처럼 CPU가 빨리 연산을 하려면 노는 장소 없이 instruction buffer를 빨리 채우는 게 핵심이라고 볼 수 있다.
이 일을 decoder가 하는데, M1은 decoder가 기존 CPU의 두 배가 들어 있고, buffer 자체도 기존 CPU의 몇 배에 해당 하는 크기를 갖고 있어서 클럭(처리 속도)이 동일해도 훨씬 많은 명령어를 처리할 수 있다.
그리고 그래픽 처리를 도와주는 이미지 프로세싱 유닛과
작업 배분을 효율적으로 해서 CPU를 도와주는 인공지능 연산장치(뉴럴 엔진) 등의 용병을
병목이 생길 수 있는 부분에 투입됐다.
따라서 M1은 기존의 문제점들을 하나하나 없앴기 때문에 좋지 않을래야 좋지 않을 수가 없다.
하지만 이 좋은 칩에도 단점이 없을 수는 없다.
한 칩에 부품들이 다 올라가 있기 때문에 커스터마이징이 어렵고, 따라서 RAM 업그레이드가 불가능하다.
만약 RAM을 업그레이드를 하고 싶다면 새로운 맥북을 얻으면 된다!또한 ARM 프로세서는 아직 인텔의 제일 좋은 칩의 성능은 못 따라왔기 때문에
한동안은 고사양용 데스크탑은 x86이 대세를 이끌 것으로 보인다.
요약
m1은 노트북 시장이 돌이킬 수 없는 강을 건너게 했고, m1이 혁신이 될 수 있었던 이유는 한 가지로 설명할 수 없고, 애플만이 할 수 있었던 이유가 있고, 컴퓨터 역사의 한 획이 될 것이기 때문에 꼭 글 전체를 읽는 것을 추천한다.
'개발' 카테고리의 다른 글
[인텔리제이 팁] wildcard * import를 막고 싶을 때 (0) 2022.09.25 화면 가르기 (0) 2022.09.02 백업용 조립컴을 만들어보자! (0) 2022.08.10 iTerm 세팅하기 (0) 2022.08.08 Git과 Github을 파헤쳐보자. (0) 2022.08.08