Apple Silicon - M1 Soc

Page content

역사는 반복된다.

2005년 PowerPC processor에서 Intel CPU로의 전환 발표 후 2006년 첫 제품을 내 놓은 후 다시 15년 만에 이번에는 ARM 기반 자체 CPU인 Apple Silicon으로의 전환을 발표하고, 11월 제품 발표회에서 첫번째 Apple Silicon인 M1 칩 기반의 Apple Macbook Air, Macbook Pro 그리고 Mac mini 제품을 출시했다.

대학 다닐 때 Apple이 자사 제품에 사용하던 processor를 기존 Motorola 68xxx 시리즈에서 Apple, IBM 그리고 Motorola(나중에 processor division만 분리해서 Freescale로 분사)가 합작해서 만든 RISC 기반의 PowerPC processor로 전환해서 제품 경쟁력 강화를 꾀했던 게 기억난다. 아쉽지만 그렇게 만들어진 PowerPC는 시장에서 이미 시장에서 절대 강자로 굴림하던 x86 호환 제품에 비해 시장성이 높지 않았다. 대부분의 컴퓨터 사용자는 MS-DOS를 사용하고, 새로 출시된 MS Windows로 넘어가고 있던 상황이라 x86 instruction set을 지원하지 않는 다른 architecture 기반의 processor는 시장에서 그다지 환영받지 못했다. 기존에 Motolora processor + Apple 혹은 IBM 메인프레임등에서 동작하던 SW 사용자 정도가 새로 나온 PowerPC 기반의 제품을 사용했다.

Steve Job가 Apple로 돌아온 후에도 한동안 PowerPC processor를 사용하다 결국 processor가 제품 경쟁력의 발목을 잡는 상황을 타개하기 위해 오랫동안 사용해 온 RISC 기반의 processor 사용을 포기하고 CISC 기반의 x86 으로 이전하는 모험을 하게 된다. 상대적으로 폐쇄적인 HW platform을 통제할 수 있었던 애플이기에, 그리고 OS를 직접 만드는 업체이기에 가능했을 것이다. 기존 PowerPC용으로 개발된 SW를 x86 기반 시스템에서 실행할 수 있도록 Rosseta라는 emulation SW를 제공하는 등 많은 준비를 한 덕에 생각보다 부드럽게 CPU architecture를 바꾸는 이사가 큰 무리없이 완료되었다. 사실 이미 당시에도 애플 컴퓨터를 사용하는 사람들도 당시만 해도 매년 더 좋은 성능의 processor를 시장에서 만날 수 있는 x86을 부러워했기에 사용자 입장에서도 치러야 하는 비용이 있는 이 이전을 박수로 환영하는 분위기였다.
(아마도 아쉬움을 토로한 사람은 이런 줄 모르고 마지막 세대의 PowerPC 기반 맥을 산 사람이 아닐까 싶다. 바로 나…. 이렇게 될 줄도 모르고, 난생 처음 노트북을 구입한 것이 이제는 역사에 남아 버린 Powerbook 15인치 마지막 세대. 지금도 책장에 있는데..)

그 후 15년 가량을 Intel Processor의 성장에 올라탄 애플 맥은 다양한 형태의 제품을 만들어낸다. 인텔의 Core 2 Duo architecture 기반 CPU등을 활용해서 Macbook Air와 같이 누구도 만들지 못한 두께를 가진 노트북도 만들었고, Macbook Pro와 같이가장 강력한 성능의 Windows PC로 불린 제품도 만들었다.

하지만 Intel processor를 사용하는 MacPro 제품에서 보인 것처럼 High-end 제품의 경우 성능 제약이나 발열에 대한불만이 많았다. 특히 발열 측면에서 취약점을 가졌던 Intel Processor 였기에 쿨링에 제약이 많았던 랩탑 제품에서는 애플 입장에서 아쉬움이많았을 것이다. 더군다나 최근 몇 년 간은 Intel의 processor가 예전과 같은 성능 향상을 보이지 못하고 특히 PC용 시장보다는 상대적으로 고수익을 낼 수 있는 Data center 용 서버 processor에 집중해서 덩달아 애플의 제품 경쟁력도 떨어지는 문제가 발생했다(이 문제는 같은 Intel processor를 사용하는 PC 경쟁업체들도 같은 상황이었겠지만, 해당 업체들은 대부분 processor를 만들 능력이 없고, OS도 Microsoft에 의존해야 하는 상황이라 달리 대안도 없는 상황이라 상황에 대한 인식이 달랐을 듯 싶다). 특히 올해부터는 PC 시장에서도 AMD에 비해 Intel processor의 제품 경쟁력이 떨어진다는 평을 받아 많은 일반 사용자들이 PC를 조립할 때 AMD CPU를 추천하는 상황이 되어 버렸다(오래전에도 AMD processor를 Intel processor보다 추천하는 사람들이 있었지만 당시에는 대부분 제품의 성능 보다는 가성비만을 기준으로 한 경우였는데 요즘은 성능면에서도 Intel processor보다 뛰어나게 되었으니)

그 와중에 Apple은 이미 iPhone, iPad 등에서 사용하기 위해 ARM기반의 자체 processor를 만들어 매년 성능을 높이며, multimedia, Machine learning 등을 위한 IP를 추가하여 자사 제품의 경쟁력을 높이는 작업을 성공적으로 이루어 내고 있었다.

그리고 이제는 충분이 때가 되었다는 판단에서 인지 자체 processor를 이용해서 Mac을 만들겠다는 발표를 하기에 이러렀다. 더 이상 자사 제품의 경쟁력을 발목잡는 외부 요인을 두지 않겠다는 의지의 표명인지… 아마도 이건 SOC를 만들기 위한 chip 설계 능력부터, 해당 chip을 제대로 사용하기 위한 OS, compiler 등을 확보하고 있어 가능한 점일 것이다. Apple은 SW 회사가 아니라 HW 회사라고 부르는 경우도 많지만, 이런 transision을 이렇게 전격적으로 할 수 있는 것 역시 chip 설계 능력 외에 OS를 만들 수 있는 SW 능력과, SW 개발을 위한 compiler를 개발할 수 있는 능력을 가졌기에 가능한 것이다. 이런 회사를 단순히 HW회사가 아니라 충분한 SW 능력과 HW 개발 능력을 모두 가지고 거기에 Service 개발 운영 능력까지 보유한 회사로 보는 것이 맞아 보인다.

이번 제품 발표회에서 인상 깊었던 몇 가지

CPU, GPU, ML processor 외에 LPDDR5 스펙의 메모리도 함께 SoC에 패키징했다고 한다(memory도 chip에 넣었다는 이야기가 있었는데 그건 아니고, 패키징만 같이 한 거라고)

덕분에 통상 메모리가 망가지면 어떻게 하나, 메모리의 수명이 processor보다 짧은 건 아닌지 하는질문이 나오기도 했는데.
하긴 PC 조립하다 보면 메모리 불량으로 문제가 되기도 했는데 이런 경우는 어떻게 되는 걸까? 특히 보증기간이 지난 후에 메모리에 불량이 생길 수는 없는 걸까 라는 생각이 들기도. 그런데 생각해 보면 지금도 요 근래 나오는 애플 랩탑은 메모리를 보드에 부착하는 형태(soldering)로 나오고 있어 A/S 측면에서는 별반 차이가 없겠다는 생각이 들기도 한다. 즉 A/S는 생각하지 말아야 할 것 같은

GPU의 스펙은 아래 그림.
요즘 NVIDIA GPU 구조를 보다 보니 spec 차이가 궁금하다. 어떤 기준으로 측정하는 지에 따라 다르겠지만, NVIDIA의 V100(2018년 출시) 제품은 Tensor performance는 100 TFLOPS를 넘는다고

또 하나 특이한 점은 Unified Memory Architecture. CPU, GPU 그리고 메모리가 모두 SoC 안에 함께 있다 보니 CPU와 GPU간 데이터를 복사할 필요가 없다고 한다. NVIDIA도 유사한 UVA(Unified Virtual Addressing) 혹은 Unified Memory라는 개념을 사용하긴 하지만, Addressing만을 하나로 보게 해서 SW coding할 때 편리하지만 실제 동작에서는 필요한 경우 데이터 복사가 이루어지는 걸로 알고 있다. 아무래도 CPU, CPU Host memory 그리고 GPU, GPU device memory가 모두 별도의 부품이라 이렇게 내부적으로 복사가 필요한 것으로 이해된다. 그런 면에서 CPU, GPU 그리고 Memory가 모두 함께 있는 통합 구조는 성능 면에서 큰 장점을 가질 듯 하다.

대신 궁금한 것은 이번에 발표한 모든 제품은 8G 혹은 16GB 메모리를 가진 제품이던데 이미 Intel processor 기반의 Macbook Pro 16 인치는 64GB의 메모리를 갖는 구성도 가능한데 이렇게 높은 용량의 메모리는 어떻게 제공할 까? 그리고 이번에 출시한 모든 low-end 제품군 외에 더 많은 core를 가진 iMac이나 Mac Pro 그리고 Macbook Pro 상위 모델은 어떻게 구성할 까 궁금하다. 일반적인 computer architecture에서는 processor들과 memory가 각각 독립적인 부품이라 어느 정도까지는 각자 용량을 늘이는 것이 가능했는데, Apple Silicon도 이 이슈를 NUMA와 같은 방식으로 해결할까? 다음 제품이 궁금해진다.

이벤트 전까지는 전혀 관심이 없었는데 이렇게 내부 구조를 듣고 나니 괜스리 관심이 간다. 마침 오늘 맛이 간 Mac mini 2011랑 같은 모양을 가진 M1 칩 사용 Mac mini는 $899 (16GB Unified memory, 256G SSD 기준)

https://www.apple.com/shop/buy-mac/mac-mini/apple-m1-chip-with-8-core-cpu-and-8-core-gpu-256gb#

하지만 당장은 docker가 동작하지 않는다는 이슈도 있고, 첫 세대는 믿고 걸러야 한다는 말도 있고 하니. 만일 지금 사용하는 맥북프로가 없었으면 모를까…

몇 개의 기사글 Source : How Apple’s M1 uses high-bandwidth memory to run like the clappers

High-bandwidth memory (HBM) avoids the traditional CPU socket-memory channel design by pooling memory connected to a processor via an interposer layer. HBM combines memory chips and gives them closer and faster access to the CPU as the distance to the processor is only a few micrometer units. This on its own speeds data transfers.

Interposer layer

The SoC has access to 16GB of unified memory. This uses 4266 MT/s LPDDR4X SDRAM (synchronous DRAM) and is mounted with the SoC using a system-in-package (SiP) design. A SoC is built from a single semiconductor die whereas a SiP connects two or more semiconductor dies.

In other words, this memory is shared between the three different compute engines and their cores. The three don’t have their own individual memory resources, which would need data moved into them. This would happen when, for example, an app executing in the CPU needs graphics processing – meaning the GPU swings into action, using data in its memory