"M1은 효율을 배운 맥 칩이 아니야. 맥이 되는 법을 배운 아이폰 칩이지."
네 손에 있는 게 뭔지
2020년 말 이후에 팔린 맥을 열어 보면, PC 세계가 쓰는 뜻의 CPU는 없어. 대신 시스템 온 칩이 있어. CPU 코어, GPU 코어, 뉴럴 엔진, 비디오 인코더와 디코더, Secure Enclave, 메모리 컨트롤러, 그리고 이걸 다 묶는 패브릭이 실리콘 한 조각 위에 올라가 있어(Ultra랑 M5 Pro/Max는 한 패키지 안에서 두 조각 또는 네 조각을 이어 붙인 건데, 그 얘기는 네 번째 레슨에서). 그 실리콘 바로 옆, 같은 패키지 기판 위에 메모리 칩이 앉아 있고. 애플이 M1 발표 날 쓴 문장이 정확해. "고대역폭, 저지연 메모리를 커스텀 패키지 안의 단일 풀로 모은 통합 메모리 아키텍처".
이 배치는 데스크톱에서 나온 발상이 아니야. 아이폰 거야. 폰엔 소켓에 꽂는 CPU, 자기 메모리를 따로 가진 그래픽 카드, 그 둘 사이의 버스를 넣을 자리가 없어. 있는 건 배터리, 몇 와트짜리 열 예산, 껌 한 통만 한 기판이지. M 시리즈를 M 시리즈답게 만드는 설계 결정 전부, 그러니까 패키지 위의 메모리, 모든 프로세서가 나눠 쓰는 풀 하나, 첫 번째 지표로서의 와트당 성능, 범용 코어가 못하는 일을 맡는 고정 기능 블록, 이게 다 10년 넘게 폰을 위해 먼저 내려진 결정이고, 그걸 키운 거야.
계보, 짧게
- A4 (2010) — 애플이 처음 설계한 SoC. 첫 아이패드랑 아이폰 4에 들어갔어. 코어는 Arm 라이선스, 통합은 애플.
- A6 (2012)와 A7 (2013) — 애플이 직접 설계한 첫 CPU 코어, 그리고 폰에 들어간 첫 64비트 Arm 코어. 모바일 업계 나머지보다 앞섰지. 여기서부터 코어는 Arm 명령어 집합 위에 올린 애플의 설계야.
- A12X / A12Z (2018–2020) — 맥 전환을 믿을 만하게 만든 아이패드 프로 칩. 개발자 전환 키트는 A12Z를 넣은 Mac mini였어.
- M1 (2020년 11월) — 폰 계보가 더 넓은 메모리 버스, 더 많은 코어, 그리고 똑같은 한 풀 메모리 배치를 들고 맥에 도착했어.
- M1 Pro / Max (2021), M1 Ultra (2022) — 티어가 등장해. 더 넓은 버스, 더 많은 GPU, 그리고 Ultra는 Max 다이 두 개를 한 패키지에 이어 붙였어.
상속의 방향이 이 뒤의 모든 걸 좌우해. 맥은 서버 칩을 줄인 걸 받은 게 아니라 폰 칩을 키운 걸 받았어. 이 퀘스트 뒤에서 제약을 만나면, 예를 들어 살 때 정해지는 용량, 없는 외장 GPU, 운영체제가 정하는 GPU 메모리 한도 같은 걸 만나면, 먼저 물어봐. 이거 폰 제약이 따라온 거 아니야?
네 칩 읽기
macOS는 SoC를 sysctl로 보여줘. 코드 블록의 스크립트는 칩 이름, 성능 레벨별 코어 배치, 물리 메모리, 페이지 크기를 찍어(애플 실리콘은 16 KB인데, Rosetta에서 튀어나오는 폰 습관 중 하나야. CPU 트랙 세 번째 레슨에서 봐). 네가 가진 아무 맥에서나 돌려봐. 이 퀘스트 내내 들고 다닐 카드의 첫 줄이야.
출력에서 두 가지를 봐. hw.perflevelN.name이 CPU 클러스터마다 이름을 붙이는데, 그 이름은 세대 따라 움직여. 집의 M3들은 전부 Performance와 Efficiency고, M5 Max는 Super와 Performance야. 카드가 자리를 가정하지 않고 이름을 읽는 이유지. macOS는 이 클러스터들 사이에서 서비스 품질 기준으로 스케줄링해. 백그라운드 작업이랑 포그라운드 앱이 같은 다이 위에서 안 싸우고 공존하는 이유지. 그리고 hw.memsize는 풀 전체야. '그래픽 메모리'라는 별도 숫자는 없어. 별도 메모리가 없으니까.