본문 바로가기

Lecture & Column/ict_lec_col

애플의 새로운 모바일 SoC, A9 : 2부. 전력소모, 성능특성, 전망

Author : Jin Hyeop Lee

(Any action violating either copyright laws or CCL policy of the original source is strictly prohibited)

 

 

 


안녕하세요 독자 여러분. 지난 '애플의 새로운 모바일 SoC, A9 : 1부'(링크)에 이어 2부로 다시 찾아뵙게 되었습니다. 예고드렸던대로 2부에서는 현재 ARM 진영에서 A9의 가장 강력한 경쟁자인 Exynos 7420과 x86 진영의 코어M과의 성능 비교를 통해 애플이 A9 CPU를 현재와 같은 형태로 설계한 의도를 짚어보고 더 나아가 A9X, 애플의 차기 칩들에 대한 전망도 알아보도록 하겠습니다. 또 현재 A9과 관련해 가장 뜨거운 이슈인 팹 혼용에 대한 내용 역시 포함하고 있습니다. 그럼 시작해보도록 하겠습니다.


왜 A9의 CPU는 듀얼코어인가?


(모바일 SoC의 모든 것 : Jul, Aug & Sep 2015; 링크)


현재 모바일 시장에서 주로 쓰이는 SoC들 중 듀얼코어 CPU 디자인을 채택한 곳은 애플 뿐입니다. 현재 시장을 이루고 있는 대부분의 SoC들은 쿼드 코어를 지나 헥사, 옥타 코어가 일반화된 모양새입니다. 이런 사항은 비단 플래그쉽 SoC뿐만 아니라 보급형 SoC에도 해당되는 이야기입니다. 그런데 가장 최신에 출시된 애플의 플래그쉽 SoC인 A9은 여전히 듀얼코어를 고수하고 있습니다. 사실 애플 발표회 전 저는 애플의 새 SoC의 성능이 전 세대 아이패드 에어2의 A8X의 그것과 비슷한 수준일 것이라 예상한 바 있습니다. 다만 저는 애플이 그 성능 향상을 듀얼코어로 달성할 것이라 생각지 못했습니다. 하지만 애플은 또 다시 듀얼코어를 채택했고 개별 코어들을 대폭 확장하는 방식으로 또 다시 IPC를 끌어올렸습니다.


big.LITTLE을 기반으로 한 헤테로지니어스 컴퓨팅이 일반화된 현재 모바일 시장에서 애플의 듀얼코어 고수는 어찌보면 고집이라 할 정도입니다. 물론 싱글코어 성능을 엄청나게 향상시킴으로서 총 성능은 안드로이드의 최상위 AP와 비슷한 수준으로 맞출 수 있었지만 애플은 분명히 기존에 가지고 있는 코어를 이용해 멀티코어화 함으로서 손쉽게 성능향상을 꾀할 수 있습니다. 당장 기존의 Typhoon 코어를 이용해 트리플 코어를 구성해 A9 칩을 제작하면 다이 면적, 소비전력 등 어떤 기준에서도 현재의 Twister 코어에 비해 뒤쳐지지 않는 코어를 만들 수 있었습니다. 하지만 애플은 또 한번 개별 코어의 IPC가 대폭 확장된 듀얼 코어를 채택했습니다.


안드로이드 진영에서 쿼드 코어 SoC를 채택한 이후부터 지금까지 모바일 워크로드가 많은 코어 디자인의 이점을 온전히 누릴수 있는가에 대한 논의는 평행선을 달리고 있습니다. 얼마 전 아난드텍이 이에 대해서 분석한 글을 내놓았습니다.(링크) 이 기사가 담고있는 내용은 이런 논란에 종지부를 찍어줄 수 있습니다. 아난드텍은 일상생활에서 사용하는 패턴들을 적용한 20가지 시나리오를 이용해 CPU 클럭, 전력 게이팅, 실행 큐 깊이 등을 추적하여 CPU의 행동을 분석했습니다. 직접적인 실험 대상이 된 SoC는 삼성의 최신 AP인 Exynos 7420이었습니다. 기존 통념과는 다르게 대부분의 시나리오에서 big.LITTLE은 의도한 대로 작동했습니다.(8개의 코어가 고르게 작동했습니다.) 물론 일부 시나리오에서는 부족한 모습도 있었으나 이 정도면 충분히 소기의 목적을 달성할 만하다는 결론에 도달했습니다.


분명히 모바일 워크로드에서 듀얼코어는 빅리틀 구조에 비해 전력소모상에 약점을 가질 수밖에 없는 구조입니다. 하지만 애플은 이번에도 리틀 클러스터를 추가하는 대신 기존에 있던 빅 클러스터를 강화하는 모습을 보여주었습니다. 이는 애플이 듀얼코어로도 빅리틀 구조에 비해서 뒤쳐지지 않는 전력소모량을 확보했다는 의미일 수 있습니다. 저는 이런 가설을 검증하기 위한 모델을 설계했습니다.


아난드텍이 분석한 시나리오 데이터와 삼성 엑시노스 7420을 분석, 작성했던 전력 소모 관련 데이터(링크)를 종합하여 모델을 구성했습니다. 특정 시나리오 하에서 주어진 실행 큐 깊이는 각 시점에 CPU에 할당되어 있는 스레드의 총합입니다.


(사진 출처 : Anandtech)


위 그래프는 크롬 브라우저를 이용해 웹서핑을 하는 중의 리틀 클러스터 실행 큐 깊이 그래프입니다. 범례를 보면 아시겠지만 각 CPU 코어들에 할당된 값들(실선)과 이들을 합쳐놓은 전체 실행 큐 깊이 값(점선)이 표시되어 있습니다. 점선이 4를 넘어가는 구간은(실선이 1을 넘어가는 구간은) 코어가 자신의 연산성능을 넘기는 스레드 리스트를 맡고 있는 부분입니다. 운영체제는 이런 상황에서 선점형 스케쥴링 방식으로 각 스레드들을 돌아가면서 연산하게 합니다. 그리고 우리는 여기서 전체 실행 큐 깊이에 따라 네 개의 코어가 모두 비슷한 수준으로 부하를 나눠서 처리하고 있는 것 역시 볼 수 있습니다.


본격적인 설명을 시작하기 이전에 글을 이해하기 위해 몇 가지를 알려드리고자 합니다.


첫 번째는 멀티코어 활용이 완벽하다고 가정했습니다. 작업이 할당되었을 때 멀티코어 오버헤드 없이 빅 클러스터와 리틀 클러스터가 작업을 나눠 받고 클러스터 내에서도 완벽히 네 개의 코어가 동일하게 작업을 나눠 처리할 수 있습니다. 


두 번째는 CPU 작동 속도를 단순화했습니다. 실제 코어는 수십단계에 걸쳐 클럭을 유동적으로 조절하고 이에 맞춰 전압 역시 조절하게 되며, 각 지점마다 다른 전력소모 특성을 갖습니다. 하지만 Raw Data가 없는 입장에서 분석을 위해서는 이를 단순화 시킬 필요가 있습니다. 저는 CPU의 작동 상태를 다섯 단계로 단순화시켰습니다. 아이들상태, CPU가 1/4 점유되는 구간, 2/4 점유되는 구간, 3/4 점유되는 구간, 풀로드 구간이 바로 그것입니다. 


세 번째는 시스템 전체에 가해지는 부하는 빅 클러스터와 리틀 클러스터에 각각 가해지는 부하의 가중합산 값이라는 것입니다. 빅 클러스터와 리틀 클러스터의 1코어는 각각 연산량이 다르기에 이를 단순히 합산한 값은 전체 시스템 부하로 보기 어렵습니다. 따라서 저는 A57 코어와 A53코어의 IPC와 이들이 1:1로 합산된 경우의 IPC 비율을 구해 각 부분에 가중치를 두어 합산했고 이를 바탕으로 시스템 전체 부하 그래프를 다시 그릴 수 있었습니다.


네 번째는 트위스터 코어가 위와 완전히 동일한 부하를 받는다는 것입니다. A9 SoC가 안드로이드에서 작동한 적도, Exynos 7420이 iOS에서 작동한 적도 없습니다. 또 우리는 iOS가 정확히 어떤 식으로 구동되는지에 대한 자료가 없습니다. 즉, iOS 환경에서의 최적화로 애플쪽 칩이 듀얼코어로도 충분한 전력소모량을 유지할 수 있다고 하는 것은 증명할 수도, 반박할 수도 없는 비과학적인 주장입니다.(비록 이를 뒷받침하는 경험칙이 있더라도 이런 분석에 포함시킬 수는 없음) 즉, 트위스터 코어가 전체 시스템 부하량에 해당하는 부하를 받고 이를 안드로이드와 동일한 환경에서 처리한다는 전제 하에 아래의 모든 분석이 이뤄졌음을 다시 한 번 알려드립니다.


다섯 번째는 동일한 항목에 대한 추정치가 여러 가지로 갈릴 경우 가장 보수적인 값을 선택했습니다. 14nm 공정으로 제조된 A53과 A57의 전력 소모량은 다양한 클럭에서의 그 값이 이미 측정되어 있습니다. 하지만 애플의 트위스터 코어(심지어 사이클론 이후의 모든 애플 커스텀 코어가)의 전력소모량은 알려진 바가 없습니다. 따라서 이를 확인하기 위해서는 추측에 기대는 수밖에 없는데 이런 경우에는 최대한 다양한 방법을 통해서 추측을 했고 그 값들이 공통된 지점을 가리킬 경우 그 값을 취했고 서로 다른 값들이 나오는 경우 애플에 가장 불리한 값을 취했습니다. 이는 이런 방식으로 분석이 행해져야만 그 결과를 해석할 때 의미있는 결론을 내릴 수 있기 때문입니다. 예를 들면 가장 보수적인 예측치에서도 애플의 Twister 코어가 big.LITTLE로 작동하는 Exynos 7420과 비슷하거나 나은 결과를 냈을 때 비로소 그 결과에 의미를 부여할 수 있을 것입니다.


애플 코어의 전력소모량을 추정하기 위해 여러 정보를 참고했습니다.(링크1, 링크2) A8 SoC 전체의 풀로드 전력소모량을 기반으로 CPU, GPU의 면적비교를 통해 전력소모량을 추정했고, 엑시노스 5433의 A53, A57 코어 각각에 대해 역시 면적 비교를 통해 Typhoon에 대한 대략적인 전력소모량을 추측해볼 수 있었습니다. 이렇게 얻어진 전력소모량을 기반으로 교차 검증을 실시하기 위해 각 모델의 소비전력과 모바일 SoC의 모든 것에서 계산한 스로틀링 인덱스와 비교를 통해 어느 정도 범위 내에 전력소모량을 특정할 수 있었습니다. 위에서 언급한 대로 가장 보수적인 값을 선택하기 위해 전력소모량 범위의 가장 상한에 있는 값을 채택해서 적용했습니다.


이제 본격적으로 모델에 대한 설명을 시작하겠습니다. 저는 아난드텍이 실시한 20개의 실험 중 가장 대표성이 있는 세 개의 시나리오를 분석했습니다. 하나는 웹서핑으로 우리가 스마트폰에서 가장 일상적으로 사용하는 시나리오고, 하나는 가장 낮은 평균 부하를 기록한 'Reddit Sync Scrolling' 시나리오였고 마지막 하나는 가장 높은 평균 부하를 기록한 플레이스토어 앱 업데이트 시나리오였습니다. 먼저 총 합산 그래프를 얻기 위해 리틀 클러스터와 빅 클러스터 실행 큐 깊이를 각 그래프로부터 역산하여 이를 가중합산하고 그 데이터로 새로운 그래프를 그립니다. 




위 그래프는 제가 분석한 첫 번째 시나리오인 'S-Browser - Anandtech Article'을 위에 설명드린 방법으로 합산한 그래프입니다. 이제 위 그래프를 이용해 프로세서의 로드 상태를 계산해낼 수 있습니다. 아이들, 1/4로드, 2/4로드, 3/4로드, 풀로드구간을 각각 나눠 프로세서가 이 시나리오에서 어떤 비율로 작동하는지에 대한 정보를 얻을 수 있습니다. 또 우리는 위에서 얻은 추정치와 아난드텍의 측정치로 각 로드 단계에서 각 프로세서들의 전력소모량을 특정할 수 있습니다. 이렇게 얻어진 정보를 바탕으로 단위시간당 전력소모량을 구할 수 있습니다.


하지만 여기서 유념해야 할 점은 단위시간당 전력소모량과 실제 작업에서의 전력소모량은 다른 개념이라는 것입니다. 예를 들자면 단위시간당 1의 일을 하면서 3의 전기를 소모하는 A라는 프로세서와 단위시간당 0.5의 일을 하면서 2의 전기를 소모하는 B라는 프로세서가 있다면 분명히 단위시간당 전력소모량은 A가 B보다 1높습니다. 하지만 단위작업당 전력소모를 살펴보게 되면 A는 단위작업을 끝내는 데 3의 전기만 소모하는 반면 B는 단위작업을 끝내기 위해 4의 전기를 소모하게 되겠지요. 결과적으로는 A가 B보다 에너지를 더 효율적으로 사용하는 프로세서가 됩니다.



위 표는 S-Browser : Anandtech Article 시나리오를 분석한 결과입니다. 리틀 클러스터, 빅 클럭스터, 트위스터 코어가 어느 정도 부하에서 작동하는지를 비율로 나타낸 숫자들과 이를 통해 산출된 단위시간당 전력소비량, 단위시간당 작업량, 단위작업당 전력소비량을 계산한 결과입니다. 엑시노스 7420 전체의 단위 작업당 전력소모량은 단위작업이 1:3.08의 비율로 각각 정확히 빅 클러스터와 리틀 클러스터에 분배된 상황에서 전체 단위 작업을 마치는 데 소모되는 전력소모량입니다.


결과를 보시면 트위스터 듀얼코어가 엑시노스 7420의 big.LITTLE 옥타코어 구조에 비해 오히려 적은 전력을 소모하는 것을 알 수 있습니다. 다른 시나리오도 살펴보도록 하겠습니다.



아난드텍의 시나리오 중 가장 시스템에 가해지는 부하가 낮은 Reddit Sync Scrolling 입니다. 이번에는 엑시노스 7420의 소비전력이 더 낮아진 것을 알 수 있습니다. 마지막 시나리오를 살펴봅시다.



이번에는 가장 시스템이 가해지는 부하가 높았던 앱 업데이트 시나리오입니다. 이번에는 다시 트위스터 코어의 소비전력이 엑시노스 7420에 비해 낮아졌습니다.


위 결과들을 통해 우리는 몇 가지 결론들을 이끌어낼 수 있을 것입니다. 먼저 애플은 big.LITTLE 구조에 비해 전력소모 면에서 불리하다는 빅 듀얼코어만을 가지고도 비슷한 전력소모량을 만들어내는 데 성공했습니다. 이는 트위스터 코어의 전력대 성능비가 상대적으로 높다는 것을 반증합니다. 또 흔히 예상했던것과 같이 big.LITTLE 구조가 저부하의 프로세스에서는 효율적으로 작동하나 고부하의 프로세스로 갈 수록 그 효율이 줄어든다는 것을 에둘러 보여준 것이기도 합니다.


조금 더 나아가면 이 글의 주제에서 벗어나게 될 것 같습니다. 여기서는 세 개의 시나리오만을 가지고 애플의 빅 듀얼코어의 전력소모 특징을 알아본 것이고 추후 아난드텍이 분석한 20개의 시나리오들에 대한 분석과 함께 대조군 역시 늘려(Twister + Little Cluster) 시뮬레이션을 해 보면 흥미로운 결과를 얻어낼 수 있을 것 같습니다. 이에 대해서는 별도의 글로 찾아뵙도록 하겠습니다.


다시 본론으로 돌아가서 애플이 왜 듀얼코어를 선택했는가를 되짚어 볼 시간인것 같습니다. 애플은 그 아키텍처를 확장함으로서 IPC를 증가시켰고 동시에 미세공정으로의 이행으로 클럭 스피드를 올림으로서 듀얼코어로 현 세대 플래그쉽에 적합한 성능을 가지는 AP를 만들어냈습니다. 전력소모 측면에서도 빅 듀얼코어를 가지고 동세대 big.LITTLE을 채택한 SoC들과 비교했을 때 동등하거나 유리한 지점을 장악하고 있습니다. 즉, 빅 듀얼코어를 적용했지만 성능상, 전력소모상 현 세대의 어떤 SoC에도 뒤쳐질 것이 없는 상태입니다.


CPU 아키텍처 개발은 매우 많은 인력과 시간 그리고 돈이 요구되는 분야입니다. 단순히 모바일 환경만을 겨냥한 CPU라면 매 세대 엄청난 노력을 들여 코어 IPC를 확장할 필요가 없습니다. 만약 애플이 A9 SoC을 설계할 때 클럭을 올린 Typhoon 코어와 리틀 클러스터로 구성했다면 또는 Typhoon 트리플코어 디자인을 채택했다면 비슷한 성능과 비슷한 전력소모량을 가지는 SoC를 얻을 수 있었을 것입니다. 이 경우엔 완전히 새로운 아키텍처를 개발할 필요가 없기에 많은 인력과 시간, 돈을 아낄 수 있었겠지요. 하지만 애플은 또다시 완전히 새로운 아키텍처를 개발했습니다. 이런 상황에서 애플이 자신의 커스텀 디자인 CPU를 모바일 시장 너머로 겨냥하고 있다고 추측하는 것은 그리 과한 추측은 아닐 것입니다.


Apple A9 vs Exynos 7420 vs Core M-5Y71





위 자료는 현재 모바일 SoC 플래그쉽을 달리고 있는 Exynos 7420과 Apple A9 그리고 컴퓨터 시장 기존 강자였던 인텔의 코어 M(위 분석에서는 Core M-5Y71의 점수를 사용)의 긱벤치 점수를 바탕으로 분석한 내용입니다. A9X의 경우 작동 클럭이 100Mhz 가량 상승하고 메모리 인터페이스가 128-bit으로 A9에 비해 2배 넓다는 점을 감안하여 그 성능을 계산할 수 있으며 애플 기준 성능향상치에 어느 정도 부합하는 결과를 가져다 주었습니다. 이번에도 위에서 언급한 대로 가장 보수적은 성능향상폭이 제시되었으며 위 기준으로의 긱벤치 총점은 대략 6000점대 중-후반이 나올 가능성이 큽니다.


우리는 여기서 독특한 양상을 발견할 수 있는데 긱벤치 총점에서는 드러나지 않던 각 CPU들의 특성이 드러나고 있습니다. 지금까지 우리가 알고 있던 일반적인 프로세서는 정수 연산성능이 부동소수점 연산성능에 비해 상대적으로 높았습니다. 위 그래프에서 삼성과 인텔의 프로세서들은 그런 특성을 지니고 있는 것을 볼 수 있습니다. 하지만 여기서도 애플은 아웃라이어입니다. 트위스터는 거의 비슷한 정수연산-부동소수점 연산 성능을 보여주고 있습니다. 


일반적으로 부동소수점 연산은 정수연산에 비해 복잡하여 그 성능을 올리기가 힘들다고 알려져 있습니다. 쉽게 말해서 부동소수점 연산성능을 높일 트랜지스터를 정수 연산유닛에 투자한다면 기대되는 부동소수점 연산성능 증가폭보다 큰 정수연산성능 증가를 얻을 수 있다는 의미입니다. 즉, 애플이 아키텍처 개선시 타사와 같이 정수연산성능 증가에 목적을 뒀다면 그 결과물의 단순 긱벤치 총점은 지금보다 더 높아졌을 개연성이 큽니다. 여기서 우리는 애플이 상정하고 있는 CPU 사용 시나리오가 타사의 그것과는 조금 다르다는 것을 알 수 있습니다. 예를 들어 당장 물리엔진 등을 적극적으로 활용한 3d 게임을 즐기게 된다면 Exynos 7420보다 Apple A9이 더 유리할 것입니다.(GPU의 성능 격차를 제외하고서라도)


애플은 전통적으로 타사에 비해(또는 CPU 성능에 비해) 높은 성능의 그래픽칩을 사용해 왔습니다. 따라서 동세대 SoC들에 비해 더 좋은 게임 성능을 가졌다는 것이 통념이었습니다. 이제 우리는 애플의 CPU마저도 상대적으로 높은 부동소수점 연산 성능을 가진다는 것을 알았습니다. 높은 GPU 성능, 상대적으로 높은 부동소수점 성능과 엄청난 크기의 캐시, 애플 기기들을 위한 Metal API는 애플이 모바일 게임 시장에 매우 집중하고 있다는 것을 다시 한 번 확인시켜줍니다.


메모리 성능의 경우는 가장 의아한 부분인데 사실 적용된 메모리의 스펙만을 놓고 보면 Exynos 7420의 메모리 점수가 너무 낮게 나왔습니다. Exynos 7420 뿐만 아니라 같은 Cortex-A57*4, Cortex-A53*4 와 LPDDR4 메모리를 채택하고 있는 Snapdragon 810의 경우에도 메모리 점수가 매우 낮은 경향을 보이는 것을 보아 내부적으로 메모리 컨트롤러와 CPU 사이에 모종의 오버헤드가 발생하는 것이 아닌가 하는 추측을 해 볼 뿐입니다.


또 한 가지 흥미로운 점은 ARM 기반 모바일 CPU의 성능이 동급의 TDP를 가진 인텔의 CPU와 비슷해지거나 그 성능을 초과하기 시작했다는 점입니다. 맥북 고급형에 들어가는 Core M-5Y71과 아이패드 프로에 들어갈 것으로 예고된 A9X의 성능 차이는 상당한 수준입니다. 물론 스카이레이크에서 아키텍처의 개선과 DDR4의 채택으로 성능향상이 있을 것이지만 그 점을 감안하고 보아도  상당히 충격적인 결과입니다. 게다가 인텔은 자사의 칩을 세계에서 가장 진보된 공정으로 뽑아내고 있습니다. 이번 Samsung 14nm/TSMC 16nm 공정 건에서 다시 한 번 확인하게 된 사안이지만 인텔의 팹은 여전히 나머지 파운드리의 팹에 비해 반세대에서 한세대까지 앞서있습니다. 하지만 현재 파운드리 회사들의 공정채택 속도를 보면 이런 차이는 앞으로 점점 좁혀지게 될 것이고 인텔의 아키텍처들이 가지는 우위는 계속 상실될 것입니다.


결론 : 애플 SoC의 미래는?


애플이 A9 SoC를 공개하기 전 모바일 환경에선 더 이상 큰 폭의 IPC 증가는 없을 것이라는 의견이 지배적이었습니다. Cyclone에서 Typhoon에서 이행할 때 한 자릿수의 IPC 증가를 보인 현상이 이번 세대에서까지 이어질 것이라 예측했습니다. 대신 애플도 스마트폰 코어를 추가하거나 리틀 클러스터를 추가하는 방식으로 성능 향상을 꾀할 것이라는 것이 일반적인 예측이었습니다. 하지만 애플은 이를 비웃듯이 또 한번 아키텍처의 폭을 대폭 증가시킨 Twister를 선보였습니다. 1부와 2부에 걸쳐 매우 다양한 방식으로 A9의 CPU에 대한 접근이 있었습니다. Twister는 프론트엔드 백엔드 양쪽에서 공히 거대한 확장이 가해진 아키텍처이며 그렇게 확장하면서도 전력대 성능비를 합리적인 수준으로 유지시켰습니다. 그리고 각각의 결론들은 애플이 스마트폰, 스마트패드를 넘어 더 높은 곳을 겨냥하고 있다는 것으로 수렴됩니다.


애플은 실리콘, 운영체제, 소프트웨어, 개발환경 모두에 매우 강력한 통제력을 행사하고 있습니다. 이는 애플에게 전략적인 선택폭을 넓혀주는 역할을 할 수 있습니다. 한 가지 분명한 것은 쿠퍼티노의 애플 본사에는 분명히 ARM 기반 애플 칩으로 구동되고 있는 맥북이 있을 것이라는 점입니다. 애플은 원한다면 x86-ARM 전환을 지구상에서 가장 부드럽게 할 수 있는 업체입니다. 애플은 자신들이 필요한 성능의 칩을 개발하고 그 칩에서 돌아가는 OS X을 배포하고 거기에 애플의 퍼스트파티 그리고 일부 밀접한 개발사들의 서드파티 앱들을 출시와 동시에 시장에 내놓고 Xcode에 새로운 컴파일러를 추가해 단 한번의 리컴파일만으로 기존 x86 OS X 소스 프로그램을 ARM 기반 OS X에서 구동할 수 있게 만들 수 있습니다.


지난번 '애플 SoC의 모든 것 : A6에서 A9까지(링크)'의 결론 부분에서 언급했던 예상을 조금 수정하겠습니다. 이런 추세대로라면 애플 커스텀 코어를 장착한 맥북이 나오는 것은 시간문제라고 보여집니다. 빠르면 앞으로 1년에서 2년 안에 우리는 애플 칩으로 돌아가는 맥을 보고 있을 수도 있겠습니다. 이는 애플에겐 거대한 도전일 것입니다. 만약 애플이 이 전환을 성공적으로 이뤄낸다면 맥의 전 라인업에서 인텔을 좀 더 강력하게 밀어붙일 수 있는 카드가 생기는 것이며 개인용 PC 시장에서 완전히 새로운 지위를 구축할 수 있는 전기를 마련할 것입니다.


하지만 애플이 겨냥하고 있는 부분이 단지 PC 시장만은 아닌 것 같습니다. 단위 코어당 부동소수점 성능이 높은 CPU, 최신 iOS, tvOS에서의 게임 컨트롤러 지원, 메탈 API 등은 애플이 가리키는 또 다른 지점에 대한 힌트가 될 수 있습니다. 이번 스페셜 이벤트에서 제가 가장 주의깊게 본 부분은 애플 tv 였습니다. 이번 제품은 엄청나게 많은 게 바뀌었지만 제가 보기에는 애플의 실험작으로 보입니다. 소비자들이 올라간 가격을 감내하고 애플 tv를 구입하고 개발자들이 앱을 개발하는 등 긍정적인 시장반응이 있다면 다음 세대에서는 더 큰 무언가를 출시할 것입니다. 현 애플 tv의 가격을 유지하거나 조금 내려서 일반 소비자를 공략하고 그 상위 라인업으로 '애플 콘솔'을 출시할 수 있을 것입니다. 애플 콘솔은 차세대 애플 커스텀 디자인 CPU와 엄청나게 보강된 그래픽 칩셋을 달고 출시될 것입니다. 이 시도 역시 성공한다면 애플에게 새로운 시장, 새로운 먹거리가 될 수 있을 것입니다.


분명 쿠퍼티노는 자신들의 청사진을 그리고 있을 것입니다. 아마 그 청사진의 1차 목표들이 달성되는 것은 그리 먼 미래의 일이 아닌 것 같습니다. 아마 내년과 후내년의 애플 스페셜 이벤트들은 훨씬 풍성하고 재미있는 내용들로 채워질 것 같습니다.


긴 글 읽어주시느라 고생 많으셨습니다. 감사합니다.


라고 글을 맺고 싶지만 1부를 맺으면서 약속드린 14nm/16nm 공정 혼용에 대한 이야기를 이제 꺼내볼까 합니다. 사실 본문을 읽어보셨으면 아시겠지만 본문의 내용 자체에는 크게 관련이 없는 부분이라 이렇게 따로 부록으로 빼서 소개드립니다.


부록 : 애플의 공정 혼용(Samaung 14nm / TSMC 16nm)


어쩌면 현재 세간의 관심이 가장 집중된 부분이 바로 이 부분이 아닐까 합니다. 컴퓨터 산업이 본격적으로 성숙하고 그 규모가 일정 이상으로 커진 이후에 한 번도 일어난 적이 없는 일이 일어났기 때문입니다. 바로 동일한 시스템 반도체가 서로 다른 팹에 의해 제조되어 납품되는 일이 일어났기 때문입니다. 잠깐 시계추를 1990년대 후반으로 돌려봅시다. PC 시장을 윈텔 진영이 완벽하게 장악하고 있었던 시기입니다. 그 당시 인텔은 엄청난 양의 반도체를 찍어내긴 했지만 그 설계와 수요예측, 생산까지 모두 통제하고 있었습니다. AMD 역시 자신들의 팹을 가지고 설계, 생산을 모두 통제하고 있었지요. 이 때는 팹리스라는 개념이 지금처럼 확산된 시기가 아니었기에 단일 제품은 단일 팹에서 뽑혀나오는 게 당연하던 시기였습니다.


시간축을 조금 더 돌려서 2000년대에 접어들게 되면 PC시장에서 GPU의 영향력이 커지게 됩니다. 또 팹리스 개념이 본격적으로 확산되기 시작했습니다. 외장 GPU는 전체 PC 시장에 비해서 그 수요가 그렇게 많지 않습니다. 그 마켓에서 수 개의 회사들이 경쟁하는 중에 자사의 팹을 운영한다는 것은 매우 위험했습니다. 총 생산량이 적기 때문에 단위 모델당 비용이 큰 것은 물론이고 팹의 특성상 정확한 수요예측이 이뤄지지 않으면 난리가 날 수밖에 없습니다. 즉, 칩의 생산과 설계가 본격적으로 분리되기 시작했습니다. 하지만 역시 단위 생산 수량이 그렇게 많지 않았기에 단일 칩은 단일 팹에서 뽑혀저 나오는 게 이상하지 않았습니다.(이 시기에 AMD가 자사의 팹을 글로벌 파운드리로 분사시키고 팹리스로 전환합니다.)


이제 2010년대에 도달했습니다. 지난 수 년간 이쪽 시장이 어떤 변화를 겪었는지는 모두가 지켜봐서 알 것이라 생각합니다. 대표적인 팹리스인 ARM 기반 프로세서를 사용하는 모바일 기기 붐이 일어났고 이들의 시장규모는 기존의 PC 시장규모를 훌쩍 뛰어넘어 버렸습니다. 그리고 애플이라는 동일한 제품을 전례없는 규모로 제조해서 팔아치우는 제조사가 등장했습니다. 애플이 최초로 아이폰을 히트시킨 뒤 아이패드가 발표되는 시점에서 아이폰과 아이패드라는 두 거대한 제품이 그 AP를 공유하게 되었습니다. 또 아이폰 5에 다다랐을 때 자신들이 직접 설계한 AP를 아이폰에 투입하기 시작했습니다. 사실 이 시점까지는 큰 문제가 되지 않았습니다. 모바일 SoC들의 제조 공정은 각 팹들의 최신 공정을 약간 뒤늦게 따라가고 있었습니다. 하지만 전체 산업 중심이 PC에서 모바일로 이동하고 그 발전이 빨라지면서 각 파운드리들은 경쟁적으로 신공정 개발에 나서게 됩니다.


애플은 A7 SoC 까지는 당대의 최신공정보다 조금 뒤떨어진 공정을 이용해 안정한 물량확보와 유리한 단가로 AP를 만들어냈습니다. 하지만 애플도 A8 부터는 가장 최신 공정으로 진입할 수밖에 없었습니다. 여기서 문제가 발생하게 됩니다. 이제는 공정을 올리는데 예전에 비해 훨씬 큰 노력이 필요해졌습니다. 인텔마저도 그 기한을 지키지 못하기 일쑤였고 일부 팹만이 최신 공정을 생산할 수 있는 수준에까지 이르렀습니다. 현 시점에서 14nm/16nm FF의 실제 제품을 뽑아낸 파운드리는 삼성, TSMC외에는 없습니다. 그런데 삼성의 팹은 이미 자사 Exynos 7420에 의해 일정 부분 점유되고 있습니다. 애플이 요구하는 엄청난 물량을 삼성이나 TSMC 모두 단독으로는 받아내기에 매우 빠듯한 생산량을 가지고 있습니다.(출시 이전 예상도 이를 지적하는 내용이 많은데 애플의 물량을 받아내려면 삼성 단독으로는 어렵고 GF의 팹까지 모두 사용할 것이라는 내용입니다.)


똑같은 반도체를 두 개의 팹에서 생산하는 것은 기술적으로 매우 힘든 작업입니다. 애초에 각 파운드리는 자신들의 '표준 셀' 이라는 것을 가지고 있습니다. 파운드리가 고객사에 자사의 표준 셀 정보를 전달하면 고객사는 자신들의 논리 구성된 회로를 그 반도체 회사의 표준 셀을 이용하여 설계합니다. 이 과정이 칩의 논리설계만큼이나 복잡하고 비용이 많이 드는 과정입니다. 삼성과 글로벌파운더리 같이 기존에 서로 기술제휴를 하고 표준 셀을 어느 정도 호환되도록 만든 게 아니라면 다른 팹에서 똑같은 칩을 생산한다는 것은 표준 셀 정보를 받아 설계 후 전달하는 일체의 과정을 완전히 새로 해야 한다는 것을 의미합니다. 이번 애플의 건이 논란이 되는 이유 중 하나가 근래 이 업계에서 아무도 시도하지 않은 일을 애플이 시도했기 때문입니다.


즉, 위와 같은 과정을 통해 생산된 각 칩은 논리 단에서는 완전히 동일하게 작동하지만 그 전기적 특성은 동일할 수가 없습니다. 물론 애플이 양쪽 팹을 동시에 이용하면서 품질조정을 최대한 시도했겠지만 물리적으로 다른 공정이기에 그 한계가 있습니다. 즉, 삼성의 공정에서 생산된 프로세서의 클럭-전력소모 그래프와 TSMC의 공정에서 생산된 프로세서의 클럭-전력소모 그래프에는 그 차이가 분명히 있을 것입니다. 



위 그래프는 예시를 위해 작성된 그래프이며 A, B는 실제 세상에서의 특정 파운드리를 지칭하지 않습니다. 위 그래프의 경우에 두 파운드리는 서로 다른 전력 커브를 가집니다. 하지만 양 극단(고 클럭으로 갈 수록 B 파운드리가 유리, 저 클럭으로 갈 수록 A 파운드리가 유리)에서의 차이보다 실제 프로세서 작동 범위 내에서의 차이는 훨씬 적습니다. 애플이 양 쪽의 성능을 최대한 맞춘다 라는 표현에는 위와 같은 커브 조정 작업과 A9 프로세서의 작동 범위를 결정이 포함되어 있습니다. 애플이 이 작업을 얼마나 잘 했느냐에 따라서 양쪽의 편차가 클 수도 반대로 그렇지 않을 수도 있습니다. 또 위의 예시 그래프를 보면 아시겠지만 작동 클럭별로 각 AP의 전기적 특성이 다를 가능성이 있습니다. 아직은 여기에 대해서 정보가 절대적으로 부족합니다.


반도체 생산 공정은 동일한 팹에서 동일한 프로세서를 뽑더라도 그 전기적 특성이 다 다릅니다. 따라서 양 프로세서가 일반적으로 작동범위 내에서 차이가 난다는 주장을 증명하기 위해서는 TSMC와 삼성에서 생산된 아이폰 각각을 여러 대씩 구해서 CPU에 주는 부하 단계별로 전력소모량을 측정해서 각 공정의 평균적인 소비전력 커브를 그려낼 수 있어야 합니다. 그리고 제가 아는 정보 한에서는 아직 그 어떤 리뷰어들도 이런 리뷰를 한 적은 없습니다. 따라서 둘 사이에 실제 사용 환경에서 유의미한 차이가 나느냐에 대해서는 애플의 공식 발표를 믿거나(2~3% 정도의 편차) 실제 소비전력 커브를 그릴 정도의 리뷰가 나오기를 기다리는 수밖에 없습니다.


그리고 단순한 몇몇 측정치들을 가지고 특정 파운드리 공정이 다른 파운드리 공정에 비해 우수하다, 떨어진다고 주장할 수 없습니다. 여러분들은 위 그래프 상에서 어떤 파운드리가 더 우수한 파운드리라고 보시나요? 이건 딱 잘라 말하기 어려운 문제일뿐더러 상황에 따라 정답이 달라질 수 있는 문제이기 때문입니다. 기본적으로 삼성의 14nm, TSMC의 16nm 공정은 동 세대 공정이고 한쪽이 어느 한 쪽에 비해 압도적으로 좋은 단계의 차이가 발생할 정도는 아니라는 게 제 의견입니다.


이번 논란에 대해 애플이 가지는 책임은 결코 가볍지 않습니다. 애플이란 기업 자체가 원래 좀 그렇긴 하지만 자기네들의 QC를 통과한 제품에 대해 소비자들이 세부 내용을 알 필요가 없다는 오만에 가까운 생각을 가지고 있습니다. 어쨌든 분명히 물리적으로 차이가 존재하는 두 공정에서 칩을 듀얼소싱 했으면 이를 소비자들에게 투명하게 공지하고 아이폰 6s, 아이폰 6s+ 등으로 각 AP를 나누는 등 뽑기 논란을 최소화할 수 있는 방법이 있었습니다. 하지만 애플은 그 어떤 조치도 취하지 않았고 작금의 논란을 불러일으키게 되었습니다.


이제 우리에게 남은 것은 추가적인 정보를 기다리는 일입니다. 감사합니다.


여기까지 긴 글 읽어주신 독자분들께 다시 한 번 감사의 말씀을 전합니다. 글 중에 풀린 떡밥 중 이 글에서 회수하지 못한 부분이 있습니다.(big.LITTLE의 효율성 고찰, 애플의 빅 듀얼코어 구조에 리틀 클러스터를 추가한다면? 등) 이 부분은 추후 별도의 글로 다시 인사드리겠다고 기약하면서 저는 이만 인사드리겠습니다.


감사합니다.