지난 6월 열린 WWDC 2020 기간 중 애플은 맥 메인 CPU를 인텔에서 이른바 애플 실리콘(Apple Silicon)으로 전환하겠다고 발표했다.
API를 공개하고 타사 응용 프로그램 개발을 가능하게 하는 PC가 CPU 제조업체나 계통을 크게 바꾸는 데에는 크게 2가지 이유가 있다. 하나는 기술적인 것. 다른 하나는 정치적인 것이다. WWDC 키노트에선 당연히 정치적 목적에 대해선 아무 말도 하지 않았다. 물론 기술적 이점이 없다면 정치적 이유만으로 CPU를 바꾸는 일은 생각하기 어렵다. 하지만 이미 성숙한 제품이 된 맥이 지금 와서 변경을 단행한 이상 정치적 혜택은 나름 크다고 할 수 있다.
애플은 앞으로 CPU 선택과 설계, 비용, 납기 등 모든 면을 직접 제어할 수 있게 된다. 모두 자신의 책임이 되지만 여기에서 생기는 장점은 절대적인 것이다. 하지만 이는 어디까지나 애플 입장에서의 장점이다. 개발자와 사용자는 성능이나 기능, 가격 등에서 대신할 수 있는 장점이 없다면 맥 CPU 변경은 귀찮은 일이 하나 늘어날 뿐이니 멈추라고 말하고 싶을 것이다.
물론 맥 CPU가 아이폰, 아이패드 등 모바일 디바이스와 같은 계통이 되는 건 큰 장점이다. 모든 애플 제품의 앱 기반이 일반화되어 수많은 아이폰과 아이패드 앱이 그대로 맥에서도 작동하는 꿈같은 환경이 열렸기 때문이다. 하지만 애플 실리콘 채택의 장점은 그 뿐만은 아니다. 키노트에서 CEO인 팀쿡은 직접 애플 실리콘 전환을 밝혔다. 당시 언급했던 동기는 명분으로 참 좋은 것이었다. 요약하자면 애플은 하드웨어와 소프트웨어 통합이 기본이라는 점, 스스로 개발하는 애플 실리콘을 채택해서 이를 더 높은 수준으로 실현하고 더 나은 제품을 제공할 수 있게 된다는 것이다.
조니 스루지(Johny Srouji) 애플 하드웨어 기술 담당 수석 부사장 역시 키노트에서 기술적으로 구체적인 얘기는 하지 않았다. 다만 애플 실리콘은 성능과 소비전력간 균형이 뛰어난 단일 아키텍처로 애플워치에서 맥 프로까지 커버할 만한 확장성을 갖추고 있다는 점을 강조했다.
당연히 납득이 가는 얘기지만 애플 실리콘을 채택해야 할 이유로 설득력이 부족할 수도 있다. 현재 소비자 기기용 CPU라면 역점을 두는 분야에는 조금 차이가 있겠지만 어떤 제조사 제품에서도 높은 성능과 낮은 소비 전력 양립을 목표로 하고 있기 때문이다.
세션에서 언급된 애플 실리콘의 기술적 장점은 비약적인 속도 향상, 그래픽 성능, 소비 전력, 보안 4가지로 요약할 수 있다. 이런 이점에 대해 일부 응용 프로그램 데모를 보여주며 이미 실제로 애플 실리콘에서 맥 소프트웨어가 동작하고 고성능이라는 점을 강조했다.
애플 실리콘에 대해 기술적으로 한 걸음 더 들어간 얘기가 등장한 한 세션(Explore the new system architecture of Apple Silicon Mac)에선 코어OS 그룹 담당자인 개빈 베어클로(Gavin Barraclough)가 설명을 했다.
먼저 현재 인텔 기반 맥의 기본 아키텍처를 보면 별도 GPU를 가진 시스템에선 인텔 CPU와 AMD GPU를 그리고 주로 보안 컨틀롤러로 작동하는 애플 T2 칩을 갖춘다. 이 경우 CPU와 GPU는 별도 메모리를 이용해 작동한다. 이는 장점이 될 수 있지만 두 메모리간 데이터 전송은 PCI 버스를 이용해 대량 데이터를 처리하기에는 효율이 나빠진다.
이에 비해 애플 실리콘에선 SoC(System on a Chip) 하나로 CPU와 GPU 보안 관련 기능은 물론 비디오 인코더와 디코더, 기계학습 관련 처리를 하드웨어에서 실행하는 신경 엔진 기계학습 가속기를 담았다. 이처럼 다양한 기능을 칩 하나에 통합한 건 아이폰과 아이패드용 SoC로 축적한 설계 기술의 성과라고 할 수 있다.
이 구성은 CPU와 GPU가 메모리 하나를 공유하게 되어 이미지와 질감, 형상 등 데이터 전송 효율이 높아진다. 애플은 이를 통합 메모리 아키텍처(Unified memory architecture)라고 부른다.
또 애플 실리콘은 지금까지 사용하던 인텔 CPU에는 없는 큰 특징이 있다. 내장 멀티코어 처리 능력이 모두 동일하지 않다는 것이다. 애플은 이를 비대칭 멀티 프로세싱(Asymmetric multiprocessing), 줄여서 AMP라고 부른다. 예를 들어 사용자에 의한 조작 등 가벼운 처리는 낮은 능력 코어로 실행하고 로드가 많은 고급 연산은 고성능 코어를 실행해 전반적인 코어 이용 효율을 높일 수 있다. 앱 개발자는 프로세스 우선순위를 적절하게 추정, 설정하고 효율적인 처리가 되도록 추구할 필요가 있다. 하지만 일반 멀티태스킹은 지금까지처럼 GCD(Grand Central Dispatch)를 이용해 개별 작업이 제대로 스레드에 할당되도록 하는 게 바람직하다.
응용 프로그램으로 이런 애플 실리콘 능력을 이용하기 위해 새로운 API를 도입할 필요는 없다. 예를 들어 GPU 처리에 관해선 지금까지대로 메탈(Metal)을 이용하면 자동으로 최대한 성능이 발휘된다. 영상 관련(AVFoundation, VideoToolbox), 기계학습 관련(CoreML) 등 친숙한 프레임워크를 이용하면 최적의 처리가 실행된다. 기계학습 관련 내용은 액셀러레이트(Accelerate) 프레임워크를 이용해 하드웨어를 더 효율적으로 이용하는 것도 가능하다.
맥에 탑재되는 애플 실리콘은 지금까지 아이폰과 아이패드 같은 모바일 기기에 사용되어 온 애플 SoC와는 다른 부분도 있다. 맥이 데스크톱 컴퓨터라는 점과 관련된 기능이다. 다시 말해 맥에 탑재되는 애플 실리콘은 단순히 아이폰과 아이패드에 이미 탑재된 걸 그대로 혹은 성능만 강화해 가져오는 게 아니라 맥 특유 기능도 포함하는 것이다.
우선 시작 프로세스. 애플 실리콘을 탑재한 맥에선 아이폰이나 아이패드 같은 시작할 때 보안을 유지하면서 외부 디스크를 포함해 여러 볼륨에서 선택적으로 실행하는 기능을 제공한다. 여러 볼륨에 다른 버전 맥OS가 설치되어 있을 수도 있다. 따라서 새로운 부트로더는 이전 버전을 포함해 애플에 의해 서명된 모든 버전 맥OS에서 시작된다.
새로운 복구 기능도 포함된다. 새로운 세대 맥의 큰 장점 중 하나로 꼽히는 것. 전용 인터페이스(Startup Options UI)를 포함해 모든 맥에서 일반 작업을 통해 액세스할 수 있다. 맥북 시리즈에선 터치ID 버튼은 바탕화면에서 전원 버튼을 길게 하면 이 UI를 시작할 수 있다.
여기에서 시동 디스크 선택 뿐 아니라 새로 탑재된 시작 관리자(Startup Manager), 맥 공유모드(Mac Sharing Mode)를 시작하는 것도 가능하다. 후자의 경우 지금까지 있던 디스크 모드를 대체한다. 이를 통해 SMB를 이용한 파일 공유 기능을 통해 외부에서 사용자 데이터에 액세스하는 걸 허용한다. 당연히 맥 내부 디스크에 액세스하려면 유효 사용자 인증이 필요하다.
시동 디스크 선택도 지금까지 없던 섬세한 설정이 가능해진다. 시동 볼륨마다 독립적으로 보안 정책을 선택할 수 있다. 맥을 어떤 업무에 사용하느냐에 따라 아이폰처럼 항상 최고 보안 정책을 적용하고 시작할 수 있다. 하지만 취미용이라면 보안성을 낮추는 모드도 준비되어 있다.
보안 정책은 지금까지처럼 명령(csrutil)으로 설정할 수 있다. 하지만 인텔 기반 맥에선 설정한 보안 정책은 시스템 전체에 사용하는 것이었다. 따라서 볼륨 하나 보안을 줄이고 싶다면 다른 볼륨 보안까지 희생시켜야 했다. 애플 실리콘을 탑재한 맥에선 시동 볼륨마다 독립적으로 보안 정책을 설정할 수 있기 때문에 다른 부분 보안을 견고하게 유지하면서 원하는 볼륨만 저감시킬 수 있다.
복구 기능도 강화한다. 맥OS에는 일반 볼륨에서 부팅할 수 없게 될 경우에 대비해 복구 볼륨이 준비되어 있다. 여기에서 시작하면 보통 볼륨을 복구하거나 재설치할 수 있게 된다. 지금까지 인텔 기반 맥과 애플 실리콘 맥에서도 마찬가지다. 복구 볼륨 자체도 시작할 수 없는 경우 인텔 기반 맥에선 인터넷 복구 기능을 통해 서버에 있는 최소한 OS를 부팅할 수 있게 한다. 애플 실리콘 맥에서도 최소한 OS를 유지하는 숨겨진 컨테이너(System Recovery)를 내장했다. 만일의 경우 여기에서 시작해 복구 볼륨이나 일반 맥OS 볼륨을 복구하거나 재설치하는 게 가능하다.
현재 공개된 애플 실리콘은 아직 극히 일부라고 할 수 있다. 하지만 애플 실리콘이 단순히 높은 성능과 낮은 소비전력 양립만 겨냥한 게 아니라는 건 분명하다.