지난해 11월 10일 애플이 새롭게 발표한 애플 실리콘 M1칩은 엄청난 성능과 가능성을 보여주면서 애플이 향후 PC업계를 뒤흔들 준비를 하고 있다는 것을 보여주었다. 오늘은 그 놀라운 M1칩에 대해서 알아본다.
M1칩은 앞서 서술했다시피 SoC으로, 대형 패키지에 여러가지 칩들을 탑재한 시스템이다. 또한 UMA(Unified Memory Architecture)를 통해 메모리를 공유하면서 여러가지 칩들이 메모리를 복사 없이 사용할 수 있게 되면서 성능과 전력 효율이 비약적으로 상승하게 된다.
다른 제조사들이 SoC방식을 채택하기 어려운 이유는, 각각 제조사들이 특화된 칩들을 따로따로 제작하기 때문에 회사를 합병하거나 하지 않는 이상 이해관계의 충돌이 필연적으로 발생하게 된다. 하지만 애플은 그들이 모든 걸 다 만드므로 그런 걱정을 할 필요가 없다.
또한 M1은 CPU의 속도를 비약적으로 향상시켰는데, 일반적으로 CPU의 속도를 향상시키는 방식에는 두가지가 있다. 순차적으로 더 빠르게 실행시키는 것과, 더 많은 명령을 병렬로 실행하는 방법. 하지만 전자의 경우 클럭 주파수를 더 이상 높이기 어렵게 되어 사실상 현재로서는 불가능하고, 후자를 더 발전시킴으로써 속도를 향상시킬 수 있다.
이러한 병렬실행은 더 많은 CPU코어를 넣거나, 비순차 실행 (Out-of-Order Execution)을 통해 명령을 실행함으로써 속도를 향상시킬 수 있다. 비순차 실행은 여러개의 명령어들을 분석해서 서로간에 의존성이 있는지를 알아냄으로써, 의존성이 없는 명령들을 병렬로 실행할 수 있는데, M1칩은 이러한 OoO 실행을 통해 엄청난 속도를 자랑한다.
M1칩이 다른 회사들의 OoO 실행보다 뛰어난 이유는, 기본적으로 인텔/AMD 코어의 4개의 코드 디코더보다 훨씬 빠른 8개의 디코더가 장착되어 있고, 명령어를 사용하는 방식또한 다르다. 인텔/AMD는 x86을 사용하여, 명령어의 길이가 1~15바이트로 유동적인 반면, 애플의 경우 고정 사이즈인 RISC를 사용한다. 따라서 x86은 디코딩을 할 때 실제로 명령어를 분석 한 후에 잘라서 디코더로 넘겨야 하지만, RISC는 분석을 건너뛰고 잘라서 디코더로 넘기면 된다. 따라서 애플은 디코더를 추가하기도 쉽고, 처리과정 또한 훨씬 더 효율적이다.