본문 바로가기

볼거리

[연작] 아이폰 7 자세히 알아보기 : 성능

미리 맛보기 편을 올리고 한 동안 소식이 없었던 점, 미리 사과드린다. 이는 바로 성능편을 쓸 추진력을 얻기 위함이었으니 독자 여러분들이 너그러운 마음으로 양해해 주셨으면 좋겠다. 미리 맛보기 편이 뭔지 궁금하신 분 혹은 시리즈물로 본 글을 읽고 싶은 독자분들은 미리 맛보기 편을 읽고 오시라. 아래 그림들은 단순한 삽화가 아니라 링크 역할을 겸하고 있으니 그림을 눌러 해당하는 글을 읽을 수 있다. 물론 미리 맛보기 편을 읽지 않더라도 본 편을 읽는 데 전혀 지장은 없다.



아이폰 7의 두뇌 : A10 Fusion


사진 : 애플 9월 스페셜 이벤트 영상 중


성능편이라는 제목에 걸맞게 이 글의 대부분은 아이폰 7의 두뇌라고도 할 수 있는 A10 Fusion 칩을 분석하는 데 할애될 것이다. 본격적으로 칩을 분석하기 전에 그 이름의 의미를 살짝 짐작해보자. 애플이 A라고 명명한 칩을 최초로 공개한 것은 아이폰 4와 최초의 아이패드에 들어간 A4 칩이었다. 그 뒤로는 계속해서 숫자를 하나씩 늘려가며 세대를 표시했다. A10 역시 기본적으로 이런 명명법을 따르고 있다. A10은 10번째 세대의 아이폰에 들어가는 A칩인 것이다.


다만 이번 세대에서 새로 붙은 'Fusion'의 의미는 무엇일까. 여러 가지 의미가 있을 수 있겠다. A9 시리즈부터 칩 내부로 다시 통합된 모션 코프로세서를 품고있다는 의미일 수도 있고, CPU, 그래픽 유닛, ISP 등 여러 가지 요소들을 한꺼번에 품고있는 SoC라는 것을 강조하기 위한 의미일 수도 있겠다. 하지만 가장 설득력 있는 가설은 바로 서로 다른 특성의 두 개의 CPU 클러스터가 투입되었다는 것을 강조하기 위한 이름이라는 것이다.


이것이 어떤 의미를 가지는지 알기 위해서 잠깐 일반적인 방법론으로 돌아가보자. 전체 CPU의 성능을 높이는 데는 여러 가지 방법이 있다. 가장 기본적이면서 가장 어려운 방법은 싱글코어 성능을 높이는 것이다. 현대 프로세서는 기본적으로 여러 개의 연산 유닛이 병렬로 들어가 있으며, 각 유닛들은 파이프라인화되어 있다. 거기에 '비순차 실행'이라는 기법이 도입되면서 단일 코어가 효율적으로 여러 개의 명령어를 동시에 실행할 수 있게 되었다.


결국 단일 코어 성능을 높인다는 말 역시, CPU가 여러 명령어를 동시에 실행시키는 능력을 강화하는 것이다. 다만 흔히 병렬 작업이라고 했을 때 떠오르는 것과 달리 소프트웨어적으로 병렬성을 확보하는 것이 아니다. 이 때 명령어들을 가장 적합한 순서로 배치하고 실행하는 것을 CPU 내의 하드웨어 회로가 수행한다. 이처럼 하드웨어 회로가 명령어들을 재배열해서 여러 개의 명령어를 동시에 실행시키는 것을 '명령어 수준의 병렬성(ILP)'라 한다.


이 명령어 수준의 병렬성을 일정 수준 이상으로 높이는 것은 매우 어려운 일이다. 단순히 계산하는 유닛을 여러 개 넣으면 되는 것 아니냐고? 천만의 말씀. 위에서도 말했듯, 명령어 수준의 병렬성을 구현할 때, 명령어들을 적합한 유닛에 할당해 주는 역할을 소프트웨어가 아닌 하드웨어 회로가 수행한다. 이 부분을 제대로 설계하지 않는다면 여러 개의 계산 유닛은 극히 일부 상황을 제외하고는 개점휴업 상태에 들어갈 것이다. 게다가 계산하는 유닛을 많이 넣으면 넣을수록 이 하드웨어 회로를 설계하는 것은 훨씬 복잡해진다.


즉, 일정 시점에 다다르면 명령어 수준의 병렬성을 높이는 것으로 CPU 성능을 올리는 것이 매우 힘들어진다. 이런 상황에 맞닥뜨린 CPU 설계자들은 결국 멀티코어를 도입하기에 이른다. CPU 코어를 여러 개 도입하게 되면, 소프트웨어 단위에서 병렬성을 찾을 수 있게 된다. 이것이 바로 우리가 흔히 알고 있는 '스레드 레벨의 병렬성'이다. 기존에 CPU가 맡고 있던 과제를 운영체제, 그리고 서드파티 소프트웨어와 분담했다고 생각하면 편할 것이다.


사실 CPU를 설계하는 입장에서 전체 성능을 올리는 가장 쉽고 간편한 방법은 단순한 코어 여러 개를 투입하는 것이다. 최신 운영체제들은 여러 개의 코어를 꽤 잘 다루기 때문에 이렇게 하더라도 큰 문제는 없다. 다만, 이 방법이 완벽하게 동작하려면 서드파티 개발자들까지도 멀티코어에 대응하는 어플리케이션을 작성해야 한다는 단점이 있다. 나머지 부분이 아무리 멀티코어에 잘 대응하고 있더라도, 하나의 스레드가 멀티코어에 제대로 대응하지 못한다면 그 스레드가 완료되는 데까지 오랜 시간이 걸릴 것이고, 이는 체감 성능의 저하로 나타난다.


애플은 이런 상황을 타개하기 위해 직접 코어를 제작하는 방법을 택했다. 쿼드코어를 넘어 보급형 제품들까지도 옥타코어를 탑재하고 있는 경쟁 진영과는 달리 고집이랄 만큼 꾸준히 싱글 코어 성능을 높이며 듀얼코어를 유지해 왔다. 이쯤에서 애플의 듀얼코어 AP 역사를 간략히 살펴보자. 애플은 A5 칩에서 최초로 듀얼코어 디자인을 채택했다. 이후 최초로 자사 설계 코어를 사용한 A6, ARM 진영 스마트폰에서 최초로 64비트 아키텍처(ARMv8)을 채택한 A7을 거쳐, A8, A9에 이르기까지 꾸준히 듀얼코어만을 사용했다. 정말 대단한 고집이다.


A8X에서 코어 갯수를 하나 늘리며, 아이패드에 들어갈 칩은 트리플 코어로 이행하는 듯 했으나, A9X에서 보란듯이 듀얼코어로 회귀하면서 모두를 놀라게 한 바 있다. 하지만 애플은 이번 A10 Fusion 칩을 발표함으로써 또 한번 세상을 놀라게 했다. A5 이래 꾸준히 유지해오던 코어 수가 드디어 바뀌었기 때문이다. 그렇다. A10 Fusion 칩은 내부에 총 4개의 CPU 코어를 품고 있다. 물론 똑같은 코어 4개가 투입된 것은 아니다. Twister의 직계 후손으로 보이는 ‘커다란’ 코어 두 개와 애플 자체 디자인으로 추정되는 ‘작은’ 코어 두 개로 구성되어 있기 때문이다.


어디서 많이 본 접근이라고? 맞다. 안드로이드 진영에서 꽤나 오래 전에 적용되었고, 현재도 널리 쓰이고 있는 big.LITTLE 기법과 비슷한 설계이다. 낮은 부하의 작업에서는 성능보다는 전력대 성능비에 초점을 맞춰 설계한 코어를 사용함으로써 전력을 아끼고 높은 부하의 작업에서는 절대성능이 높은 코어를 사용해 사용자 경험을 유지하는 바로 그 방식 말이다. 어떻게 보면 A10 Fusion의 가장 큰 특징은 각각의 코어의 마이크로아키텍처보다는 이 고성능 코어와 고효율 코어의 조합이 아닐까.


배터리 타임을 늘리기 위한 노력 : 고성능 코어와 고효율 코어의 조합


성능을 중시한 코어와 전력대 성능비에 가장 큰 가치를 두고 개발한 고효율 코어의 조합이 주는 장점은 너무나도 명확하다. 어떻게 보면 애플이 지금까지 이 기법을 적용하지 않았다는 게 더 놀랍게 보일 정도니까. 다만 지금까지 애플 자체 개발 코어의 무서운 발전 속도를 보면 반도체 팀의 모든 역량이 고성능 코어의 발전에 쏠려 있었고, 상대적으로 눈에 띄지 않는 더 작고 전력 효율에 초점을 맞춘 코어를 개발할 여유가 없었으리라.


이제는 고성능 코어에 더 손 댈 부분이 많지 않다고 본 것일까? 인텔의 아키텍처와도 충분히 맞먹을 수준으로 발전했으니 그렇게 생각할 법도 하다. 드디어 애플이 더 작고 전력 효율적인 코어에 관심을 갖기 시작했다. 아니면 좀 다르게 생각해볼 수 있겠다. 전력소모량을 스마트폰에 적합한 수준으로 비끄러매면서도 고성능 코어의 성능을 더 올리기 위해서는 이와 같은 설계가 반드시 필요하다고 생각했을지도.


도대체 고성능 코어와 고효율 코어를 조합하는 게 왜 전체 전력소모량과 고성능 코어의 성능에까지 영향을 주는걸까? 이는 생각 외로 단순한 이유 때문이다. 현실 세계는 물론이고 컴퓨터 공학의 세계에서는 특히 이런 트레이드 오프가 자주 발생하는데, 어떤 물건을 범용성있게 만드는 것은 그만큼의 손해를 동반한다는 것이다. 컴퓨터는 그 자체로 강력한 범용 연산 장치이지만, 현대의 컴퓨터나 스마트폰은 고정 기능 하드웨어 없이는 훨씬 굼뜨게 동작할 것이다. 


구현하고자 하는 기능이 분명하고, 앞으로 변하지 않을 것이 확실하다면 범용 연산 하드웨어에 소프트웨어를 통해 그 기능을 구현하는 것보다 그 기능만을 수행하는 회로를 만드는 것이 훨씬 전력 효율적이고 빠른 해법이다. 그래서 현대 컴퓨터는 범용 연산 장치를 중심으로, 각종 고정 기능 하드웨어들을 조합하여 최선의 기능을 구현하고 있다. 코어 디자인 역시 비슷하다. 높은 성능과 높은 전력 효율을 동시에 만족시키는 코어를 개발하는 것은 매우 어려운 일이다. 양 쪽 중 어느 쪽에 좀 더 비중을 둘 지를 선택하고 나머지를 양해 가능한 범위에서 포기해야 한다. 다시 말해 지금까지 애플은 양 쪽 모두를 적당히 타협한 설계를 해 온 셈이다.


본 그래프는 동작 특성을 설명하기 위해 제작된 그래프로, 실측값을 바탕으로 만들어진 것이 아닙니다.


하지만 전력 효율을 적당히 포기하고 성능을 높인 코어를 만드는 것, 최대 성능을 포기하고 극단적으로 전력 효율을 높인 코어를 만드는 것은 둘 모두를 취하려는 설계에 비해 상대적으로 간단하다. 즉, 이 둘을 조합함으로써 부하가 심한 작업에서는 기존보다 더 높은 성능을, 그렇지 않은 경우에는 더 높은 전력 효율을 제공하는 것이 가능하고, 이것이 ARM의 big.LITTLE의 이론적 배경이며 애플이 코어를 두 개 더 투입한 이유이다.


다만 이런 이론적인 배경은 매우 오래된 아이디어지만, 이것이 실제 제품으로 상용화된 것은 그리 오래 지나지 않은 일이다. 스마트폰 이전의 PC 시장에서 전력 효율은 그리 중요하지 않았기 때문이다. 전력 효율과 성능 중 하나를 택하라면 주저없이 성능을 택하는 것이 당연했었던 시기였기에 별도의 코어를 개발하고 이를 다이에 올려 제조원가를 높이는 일은 수지타산에 맞지 않는 일이었다. 하지만 스마트폰 시장이 본격적으로 커지고, PC 시장 역시 데스크탑 보다는 모바일의 비중이 올라가면서 전력 효율은 점점 더 중요한 문제가 되었다.


사용자는 운영체제나, 서드파티 소프트웨어를 통해 컴퓨터를 사용한다. 사용자와 하드웨어가 소통하기 위해서는 운영체제와 커널이 필요하다.


거기에 서로 다른 성능과 특성을 가진 코어를 동시에 구동하는 것 자체도 기술적으로 쉬운 일이 아닐 뿐더러, 이를 사용자가 인지하지 못하도록 해야 한다는 과제가 더해지면 문제는 더 복잡해진다. 하드웨어적으로 로드 밸런스를 분배하는 장치가 추가되어야 하고, 한 CPU가 수행하고 있던 연산을 그대로 다른 성능과 특성을 가진 CPU가 넘겨받아 연산할 수 있도록 메모리 계층 시스템에도 수정이 필요하다. 소프트웨어적인 수정 역시 필요하다. 특히 하드웨어를 직접적으로 컨트롤하는 커널에 큰 수정이 필요하다.


다만 애플이 이번에 탑재한 네 개의 코어는 흔히 최신의 ARM 프로세서의 동작과는 달리 작업에 따라 서로 다른 클러스터가 선택되는 방식으로 작동한다. 즉, 여전히 단일 작업을 수행하는 중에는 오직 두 개의 코어만이 작동하게 된다. 애플이 이런 방식을 선택한 이유는 간단하다. 이 방식이 서로 다른 특성을 가진 두 종류의 코어가 모두 작동하며 유기적으로 로드를 분배받는 형식에 비해 훨씬 구현하는 것이 간단하기 때문이다.


이 방식을 흔히 ‘클러스터 마이그레이션’이라 부르는데, 커널 윗쪽의 소프트웨어들은 그 아랫쪽의 CPU가 어떤 방식으로 동작하는지 신경 쓸 필요가 없다. 어차피 논리적인 CPU 갯수는 항상 두 개이고, 그 두 개의 CPU는 한 종류의 코어로 구성되어 있다. 단지 커널과 하드웨어 회로만이 현재 CPU에 가해지는 부하를 실시간으로 측정하고, 미리 정해진 규칙에 따라 고성능 혹은 고효율 클러스터를 선택하면 되는 것이다.



예를 들어 가벼운 부하를 주는 어플리케이션을 실행한다고 가정해 보자. 아무리 가벼운 부하를 주는 어플리케이션이더라도 최초 로딩 시에는 고성능 클러스터가 선택될 것이다. 로딩 시간은 사용자 경험에 직접적인 영향을 주는 요소이기 때문이다. 이후 로딩이 완료되면 CPU에 가해지는 부하가 크게 떨어지게 되고, 고효율 클러스터로의 전환이 발생한다. 이 때 사용자의 터치 등 상호작용이 발생하는 시점에서만 고성능 클러스터로 전환하게 되면 사용자 경험을 최대한 유지하면서도 나머지 시간에서의 전력소모를 크게 줄일 수 있을 것이다.


물론 이상적으로 로드가 분배된다면 두 종류의 코어가 한꺼번에 활성화되는 것이 더 좋다. 다만 이 경우 커널, 운영체제의 설계가 훨씬 복잡해질 뿐만 아니라 혹, 커널이 작업을 효율적으로 분배하지 못한다면, 오히려 똑같은 작업을 끝내는 데 더 오랜 시간이 걸릴수도 있다. 거기에 아래 아키텍처 분석 부분에서 상세히 설명하겠지만, 고성능 코어와 고효율 코어간의 절대 성능 차이가 매우 크고, 고성능 코어 역시 지난 세대의 코어와 비교했을 때 비슷하거나 더 나은 전력효율을 가지고 있기에 두 종류의 코어를 동시에 작동시켰을 때의 이득이 그리 크지 않다.


물론 애플 내부적으로는 두 종류의 코어를 한번에 활성화 시킬 수 있도록 하기 위해 작업을 하고는 있겠지만, 아이폰 7 출시 시점에서는 애플이 만족할만한 결과에 도달하지는 못한 것 같다. 다만 애플은 아이폰 칩의 논리 설계부터 커널은 물론 운영체제 전반에 대한 설계 역량, 거기에 자사의 생태계에 있는 개발자들에게도 강력한 영향력을 갖고있다는 점에서 다음 세대의 퓨전 칩이 어떻게 동작하게 될지, 벌써부터 기대가 된다.


위에서도 언급한 바와 같이, A10 Fusion에 더 작고 전력 효율에 초점을 맞춘 코어 두 개가 추가되었음에도 불구하고, 여전히 주력은 고성능 듀얼코어이다. 두 개의 클러스터가 대략 어떤 방식으로 작동하는지를 살펴봤으니, 이제 A10 Fusion의 주력인 고성능 코어를 좀 더 자세히 분석해보자.


아이폰 7의 고성능 코어 아키텍처 ‘허리케인’ 분석


사진 : NASA


이번 고성능 코어의 아키텍처 코드명은 '허리케인'이다. 애플이 본격적으로 타사에 비해 '넓은' 아키텍처를 추구하기 시작했던 것은 A7칩의 '사이클론' 아키텍처 부터였다. 이후 애플의 마이크로 아키텍처는 A8의 '타이푼(태풍)', A9의 '트위스터(토네이도)'를 거쳐 마침내 '허리케인'에 다다랐다. 이 중에서 토네이도를 일컫는 '트위스터'를 제외하면 모두 일정 수준 이상의 열대성 저기압을 일컫는 표현이라는 점이 흥미롭다. 이제 태풍의 이름을 모두 사용한 애플이 다음 아키텍처의 코드네임을 어떻게 지을지 역시 흥미로운 관전거리가 될 것이다.



잡담은 여기까지 하고, 이제 '허리케인' 마이크로아키텍처의 특징을 하나하나 짚어보도록 하자. 결론부터 말하자면 '허리케인' 마이크로아키텍처는 직계 조상인 ‘트위스터' 마이크로키텍처에 비해 엄청난 변화를 가져오지는 않은 것으로 보인다. 먼저 가장 잘 드러나는 캐시 용량을 살펴보자. L1 캐시는 각각 64KB 씩의 명령어, 데이터 캐시로 구분되어 있다. L2 캐시는 3MB로 L1 캐시, L2 캐시의 용량이 모두 ‘트위스터’와 동일하다. L1 캐시와 L2 캐시는 상위 레벨의 캐시에 들어가 있는 내용이 하위 캐시에 반드시 포함되어야 한다는 inclusive 정책으로 동작한다. L3 캐시 역시 4MB로 동일한 용량을 가지고 있는데 L3 캐시의 경우 상위 레벨 캐시에서 축출된 라인을 보관하는 빅팀 방식으로 동작하는 점까지 ‘트위스터’와 동일한 것으로 보인다.


캐시 용량에서 별 다른 차이를 찾을 수 없으니, 이 둘의 차이를 알기 위해서는 다른 부분을 살펴봐야 한다. A10 Fusion은 A9칩에 비해 40% 정도의 연산성능 향상을 이루었는데, 이 중 대부분은 클럭 향상에 의한 것이다. A9칩의 '트위스터' 코어가 최대 1.85GHz로 동작하는 데 반해, A10 Fusion의 '허리케인' 코어는 최대 2.34GHz로 동작한다. 이는 대략 30%에 가까운 클럭 스피드 향상으로, 꽤나 큰 폭의 성능향상이라 볼 수 있다. 다만 이 클럭 향상은 마이크로아키텍처의 변화에 의한 것이라기보다는 공정의 향상과 기존에 여유를 두고 있던 클럭 스피드를 당겨왔다고 보는 것이 적합하다. A9칩은 당시 충분한 수율이 나오지 않던 FinFET 공정에서 엄청난 수량의 칩을 안정적으로 찍어내기 위해 어쩔 수 없이 삼성과 TSMC에 각각 위탁생산을 맡긴 바 있다. 당연히 두 회사의 공장에서 나온 칩들은 서로 다른 물리적 특성을 보이는데 이 편차를 최소화하기 위해 칩의 최대 클럭을 어느 정도 제한시켰던 것으로 보인다(링크).


거기에 1세대 FinFET 아키텍처를 사용했던 A9 칩과는 달리 A10 Fusion은 TSMC의 2세대 FinFET 아키텍처를 채용한 것으로 보이는데 늘 그렇듯 향상된 공정은 클럭 향상의 일등 공신이다. 글의 뒷부분에서 조금 더 자세히 다루겠지만 새로운 패키지 기술의 도입으로 칩의 외부에서 발생하는 전력소모와 발열이 줄어든 것 역시 칩에 좀 더 여유를 주게 된 요인 중 하나로 보인다. 하지만 이 모든 요소를 감안해도 30%에 달하는 클럭 상승 폭은 커 보인다. 위에서도 설명한 것과 같이 고효율 코어를 투입할 경우 고성능 코어에 좀 더 많은 전력 여유가 주어진다. 물리적 설계 단계에서도 상대적으로 고전압에서 작동 특성이 좋은 표준 셀들을 활용했을 가능성이 있다.


그렇다면 여기서 발생하는 궁금증이 있다. ‘허리케인’ 아키텍처가 더 작고 효율적인 코어를 믿고 더 많은 전력을 먹으면서도 성능을 뻥튀기한 것인지 아니면 기존의 코어 수준의 전력효율성도 겸비하고 있는지에 대한 것이다. 이를 확인해보기 위해 닥터몰라가 아이폰 6s, 6s Plus와 아이폰 7을 이용해 직접 실험에 나섰다.



실험은 Geekbench 4의 CPU 테스트를 반복 실행하는 Geekbench Loop 테스트이다. 이 테스트를 실행하면서 배터리 지속시간과 함께 긱벤치 총점을 함께 기록했다. 먼저 배터리 지속시간을 살펴보자. 아이폰 7은 이 테스트에서 212분의 배터리 지속시간을 보여줬는데 이는 아이폰 6s의 159분에 비해 훨씬 긴데다가, 오히려 훨씬 큰 배터리 용량을 가진 아이폰 6s Plus의 235분과도 비교할만한 수치이다. 159분과 212분의 차이는 아이폰 7이 아이폰 6s에 비해 더 큰 용량의 배터리를 갖고있다는 것을 감안해도 유의미한 수준의 큰 차이이다.



게다가 이 시간동안 측정된 스로틀링 수치 역시 그리 크지 않다. 아이폰 7은 최초 긱벤치 4 테스트에서 5609점을 기록했고, 테스트 지속시간 중 가장 낮은 수치는 5353점이었다. 스로틀링으로 인해 감소하는 점수는 대략 5% 이내의 수준이다. 아이폰 6s Plus의 경우 최초 4121점의 긱벤치 4 점수를 기록했고, 테스트 지속시간 중 가장 낮은 수치는 3919점이었다. 역시 대략 5% 정도의 스로틀링 수치를 보이고 있다. 아이폰 6s Plus가 더 큰 화면을 가져 열을 더 잘 발산한다는 것을 감안하면 A10 Fusion의 '허리케인' 코어는 '사이클론'과 비교했을 때 최소 동급, 혹은 그 이상의 스로틀링 특성을 가지고 있다고 볼 수 있다.


이 두 가지 테스트를 통해 A10 Fusion의 '허리케인' 코어가 최대 작동클럭에서도 이전의 '트위스터' 코어 정도의 전력 소모를 보인다고 추측해볼 수 있다. 더 작은 코어가 작동하지 않는 환경에서도 기존의 코어에 비해 같거나 더 나은 전력 효율을 보이는 것이다. 이로부터 한 가지 가설을 제기해볼 수 있는데, 실제로 아이폰이 유저와 적극적으로 상호작용 할 때는 대부분 '허리케인' 코어가 작동하고 있다고 보는 것이다. 최신 OS와 CPU들은 활동이 있을 때와 없을 때를 구분하고 활동이 있을 때만 높은 작동 클럭을 주고, 활동이 없는 부분에서 낮은 작동 클럭으로 작동하여 전력소모량을 절감시킬 정도로 발전된 전력 관리 기술을 사용하고 있다.


A10 Fusion은 이런 작동 방식을 고효율 코어의 도입으로 조금 더 효율적으로 바꿔놓았다. 기존에 높은 작동 클럭으로 코어가 작동하던 부분에서는 모두 고성능 코어가 작동하고, 그렇지 않은 부분에서는 고성능 코어를 낮은 클럭으로 동작시키는 대신 고효율 코어가 동작해서 전력 효율을 높일 수 있을 것이다. 이런 접근 방식은 우리가 성능 저하를 거의 체감할 수 없게 하고, 대기시간 뿐 아니라 우리가 스마트폰을 사용하는 중에도 전력소모량을 줄일 수 있게 해준다. 예를 들어 웹 서핑을 할 때 로딩이 끝나고 우리가 컨텐츠를 읽는 동안 A10 Fusion은 고효율 코어를 구동시킴으로써 전력소모를 줄일 수 있을 것이다. 물론 유저가 화면을 터치하는 순간 작업은 즉각적으로 고성능 코어로 전환됨으로써 유저가 느끼는 체감 성능은 고성능 코어만 쓰는 것과 유사할 것이다.


지금까지 '허리케인' 코어의 역할과 전력소모에 초점을 맞춰 살펴봤다면, 이제는 '허리케인' 마이크로 아키텍처의 특성을 뜯어볼 차례이다. 위에서 말한 것과 같이 '허리케인' 마이크로 아키텍처의 논리 설계는 '트위스터'에 비해 크게 달라진 것이 없어 보인다. 물론 아예 발전이 없었다는 이야기는 아니다. 이를 확인하기 위해 1.85GHz로 작동하는 '트위스터' 듀얼코어를 가진 A9칩과 2.26GHz로 작동하는 '트위스터' 듀얼코어를 품고 있는 A9X의 긱벤치 4 성능 세목을 2.34GHz로 작동하는 '허리케인' 듀얼코어를 품고 있는 A10 Fusion과 비교해봤다.



싱글 코어 기준으로 긱벤치 총 점수가 애플이 주장하는 40%에 가깝게 오른 가운데, 암호화 성능이 2.4배에 가깝게 증가한 것이 눈에 띈다. 동일 클럭으로 스케일링 한 아키텍처간 비교에서도 2배에 달하는 성능 증가를 보여주고 있다. 사실 이런 엄청난 폭의 성능 증가는 연산성능의 증가 덕이 아니라 AES 연산을 가속하는 별도의 하드웨어 장치의 개선에 힘입은 것이다. ARM 명령어 셋이 ARMv7에서 ARMv8로 이행하면서 AES 암호화를 별도로 지정하는 명령어가 추가되었다. 물론 별도의 연산장치를 투입하지 않고 이 명령어를 정수 연산으로 분해해서 할당할 수도 있겠지만, 애플을 포함한 대부분의 ARMv8 코어들은 이 명령어에 대응하는 별도의 하드웨어를 탑재하고 있다.


위에서도 언급한 것과 같이 범용성 있는 장치에 비해 특정 목적만을 달성하기 위해 개발된 하드웨어는 훨씬 더 높은 성능과 효율성을 자랑한다. AES 암호화는 실제로 매우 많은 분야에서 사용되며, 특히 애플의 iOS는 암호를 설정할 경우 전체 스마트폰을 암호화시킨다. 즉, 사용빈도가 매우 높고 한 가지 알고리즘을 사용하는, 전용 하드웨어를 배치하기 적합한 경우이며 실제로도 전용 하드웨어가 탑재되었다. 물론 이전의 애플 아키텍처들에서도 이런 AES 하드웨어가 사용되고 있었지만, A10 Fusion은 이 부분을 더 강화한 것으로 보인다.


본격적인 연산성능 비교는 암호화 성능 이외의 항목을 살펴봐야 한다. 대략적으로는 정수 연산성능과 부동소수점 연산성능이 각각 35%, 30% 정도의 성능 향상폭을 보여주고 있으며, 메모리 성능의 경우 40%에 가까운 성능 향상폭을 보여주고 있다. 이것만 봤을 때는 30%라는 클럭향상폭과 거의 비슷한 수준의 성능향상이므로 아키텍처적으로 변화가 없었다고 단정할 수도 있겠지만 이는 성급한 판단이다.


이는 클럭이 높아지면 성능 스케일이 선형적으로 이뤄지지 않는다는 사실 때문이다. 클럭 속도가 빨라지면 똑같은 캐시 미스가 발생하더라도 클럭이 높은 쪽이 더 많은 클럭을 낭비하게 되어 손해가 더 큰 등의 실전적인 문제가 발생하기 때문이다. 이런 문제때문에 양 쪽 아키텍처의 동작 클럭이 비슷할수록 더 정확한 비교를 수행할 수 있다. 다행히 우리는 2.34GHz와 비슷한 작동클럭으로 동작하는 ‘트위스터’ 아키텍처를 탑재한 AP를 하나 알고 있다. 바로 아이패드 프로 12.9인치에 들어간 A9X 칩이다.


위 비교표에서 Apple A9X @2340(Comp)로 표시된 항목은 A9X의 긱벤치 4 결과를 2340MHz에서 작동한다고 가정했을 때 산출되는 점수이다. 즉 A9X의 원 점수에서 2260을 나누고 2340을 곱해서 얻어진 결과이다. 우리는 이 점수와 A10 Fusion의 점수를 비교함으로써 좀 더 정확한 아키텍처 간 성능 비교를 수행할 수 있을 것이다.


먼저 정수 연산성능을 살펴보자. 전체적으로는 위에서 언급한 것과 같이 35%의 성능 향상을 보이고 있다. 클럭 상승분을 보정한 아키텍처간 비교에서는 대략 9% 정도의 성능 향상을 확인할 수 있다. 세부 항목으로 들어가면 기존 아키텍처와 거의 차이가 없는 항목도 있는 반면에, HTML5 Parse 시나리오처럼 독보적인 성능 향상을 보여주고 있는 시나리오 역시 존재한다.


부동소수점 연산 성능은 전체적으로 대략 30% 정도의 성능 향상을 보이고 있으며, 클럭 상승분을 보정한 아키텍처간 비교에서는 역시 대략 9% 정도의 성능 향상을 보이고 있다. 부동소수점 연산성능 역시 SGEMM이나 SFFT 처럼 기존의 아키텍처와 유사한 성능을 보이는 시나리오가 있는 반면, N-Body 물리엔진, 음성 인식이나 얼굴 인식 시나리오처럼 큰 폭의 성능 향상을 보이고 있는 시나리오도 존재한다. 애플이 iOS 10에서 강조하고 있는 기능들인 얼굴 인식 기능과 음성인식 부분의 성능 향상이 두드러지는 것은 재미있는 현상이다.


정리하자면 ‘허리케인’ 코어는 ‘트위스터’ 코어에 비해 10%에 약간 못 미치는 정도의 클럭당 성능 향상이 있었고, 정수 연산성능과 부동소수점 연산성능이 균형있게 향상되었다. 여기에 더해 30%에 달하는 클럭 향상치가 더해져 전체적으로는 30%를 웃도는 연산성능 향상을 얻어낼 수 있게 되었다.



실제로 아키텍처적인 변화가 있는지를 확인하는 또 하나의 방법은 투입된 트랜지스터의 갯수를 어림짐작해 보는 것이다. 투입된 트랜지스터의 갯수는 정확하지는 않지만 다이상에서 그 코어가 차지하는 면적을 비교함으로써 추즉해볼 수 있다. A10의 ‘허리케인’ 코어 두 개와 L2 캐시 시스템을 포함한 면적은 대략 14.8제곱 밀리미터 정도로 추정된다. 이는 기존 A9의 13.7제곱 밀리미터에 비해 더 커진 것이다. 공정 역시 16FF에서 16FF+로 이행한 것으로 보이는 상황에서 이런 코어 면적의 확장은 ‘허리케인’에 기존의 ‘트위스터’보다 더 많은 수의 트랜지스터가 투입되었음을 추정할 수 있게 해 준다. 다만 추가된 트랜지스터는 이슈 폭의 확장이나 백엔드 대역폭의 확장 등의 가시적인 변화보다는 나머지 프론트엔드 부분을 소소하게 확장하는 데 투입된 것으로 보인다.


사진 : 인텔 스피드 시프트 기술 설명 슬라이드


또, HTML5 관련 시나리오 등 여러 별개의 항목들을 연산하는 시나리오에서의 성능 향상폭이 특히 크게 나타난 것에서 인텔의 스피드 시프트와 비슷한 개선이 가해졌을 가능성이 있다. 대기 혹은 고효율 클러스터가 활성화된 상황에서 로드가 주어지면 매우 빠르게 클러스터 전환이 이뤄지는 동시에 ‘허리케인’ 코어의 클럭이 매우 빠르게 최대치로 증가하여 결과적으로 더 짧은 시간에 작업을 끝내고 대기 상태로 돌아가는 방식이다. 이 방식은 결과적으로 작업 완료까지 걸리는 시간을 단축하여 성능적인 이득을 제공함과 동시에 고효율 클러스터가 활성화되는 시간을 늘림으로써 전력 효율 역시 향상시킬 수 있다는 장점이 있다.


정리하자면 ‘허리케인’ 코어는 직계 조상인 ‘트위스터’ 코어에서 급진적으로 변하지는 않았다. 하지만 프론트엔드 쪽의 소소한 개선과 빠른 클럭 시프트 기능 등의 추가가 10%에 약간 못 미치는 클럭당 성능 향상을 가져왔다. 거기에 향상된 공정과 단일 팹으로의 회귀, 고효율 클러스터의 임무 분할 등에 힘입어 전체적인 전력 소모량을 ‘트위스터’ 코어와 비슷하거나 더 높은 수준으로 유지하면서 30%에 달하는 클럭 향상폭을 달성하는 데 성공했다. 현재까지의 정보와 실험에 따르면 여전히 ‘허리케인’ 코어는 대부분의 상황에서 주력 코어로 동작하는 것으로 보인다. 다만 스마트폰이 대기 상태에 있을 때나 사용 중이더라도 정지 화면을 표시하는 등 기존에 최저 클럭으로 동작하던 환경에서 그 임무를 고효율 클러스터에 넘겨줌으로써 전력효율을 극대화시킨 것으로 보인다.


아이폰 7의 고효율 코어 아키텍처 분석


아난드텍의 아이폰 7 배터리 지속시간 테스트. 아이폰 7 모델이 6s 플러스보다도 높은 배터리 지속시간을 보인다.


‘허리케인’ 코어가 A10 Fusion의 주력이라는 사실이 고효율 코어의 존재가치를 축소시키지는 않는다. 아이폰 7은 6s에 비해 소폭 증가한 배터리 용량과 새로운 공정에서 제작되는 칩에 더해 고효율 클러스터가 추가됨으로써 역대 그 어떤 아이폰보다 긴 배터리 시간을 달성했다. 여러 매체들이 보고하고 있는 배터리 지속시간과 위에서 잠깐 살펴본 닥터 몰라의 배터리 벤치마크에서도 기존의 아이폰에 비해 늘어난 배터리 지속시간을 확인할 수 있다.


다만 고효율 코어의 경우 러닝메이트인 ‘허리케인’에 비해 너무나도 많은 사항들이 베일에 싸여있다. 코어의 코드 네임부터 알려지지 않은 것은 물론이고 그 성능 역시 알기 어렵다. 고성능 코어의 성능은 간단하게 벤치마크 프로그램을 통해서 측정할 수 있지만, 벤치마크 프로그램은 그 자체로 높은 부하를 주는 프로그램이므로 당연히 ‘허리케인’ 코어만이 활성화되고 고효율 코어는 작동하지 않는다.


Ars Technica가 고효율 코어의 결과로 추정했던, 하지만 실제로는 허리케인 코어가 낮은 작동속도로 동작했을 때의 결과. 사진 : 긱벤치 브라우저


Ars Technica는 아이폰 7리뷰에서 아이폰이 저전력 모드로 구동했을 때 작동 클럭이 최대 1050MHz로 측정된다는 사실을 바탕으로, 아이폰 7이 저전력 모드로 구동될 때 기본적으로 고효율 코어가 작동된다는 추측을 내놓았다. 하지만 실제로 아이폰 7을 저전력 모드로 작동시켰을 때 결과값을 상세히 분석해보면 그 성능 특성이 ‘허리케인’ 코어를 1050MHz로 구동했을 때와 완전히 동일한 것을 살펴볼 수 있다. 즉, 저전력 모드에서도 기존 상황과 똑같이 ‘허리케인’ 코어가 구동된다는 사실을 알 수 있다.


다만 우리는 여기서 고효율 코어의 성능에 대한 힌트를 얻을 수 있다. 저전력 모드로 아이폰이 구동될 때도 벤치마크에서 ‘허리케인’ 코어가 1050MHz로 동작하는 것으로부터 고효율 코어는 1050MHz로 동작하는 ‘허리케인’ 코어에 비해서도 절대 성능이 더 낮다는 이야기가 된다. 다만 이렇게 얻은 정보는 성능의 상한선으로, 성능의 하한선을 구해내지 못한다면 추측에 큰 의미가 없다. 다행히 성능의 하한선은 애플에서 제공한 정보만으로도 구할 수 있다. 애플은 고효율 코어가 ‘허리케인’ 코어에 비해 1/5의 전력으로 구동된다는 것을 밝혔다.



달리 말해 고효율 코어의 성능은 ‘허리케인’ 코어의 1/5보다는 더 높다는 이야기가 된다. 전력이 어떻게 성능으로 치환되냐고? 고효율 코어의 전력대 성능비가 ‘허리케인’ 코어에 비해 높을 것이 확실하기 때문이다. 요즘 프로세서들의 절전 기술에서 절대 성능이나 절대 전력 소모량은 그리 중요하지 않다. 5W를 소모하고 10의 성능을 내는 프로세서와 3W를 소모하고 3의 성능을 내는 프로세서가 있다면, 절대 전력소모량이 전자가 더 큼에도 불구하고, 똑같은 작업에서 전자의 프로세서가 훨씬 적은 전력을 소모한다. 즉, 애플이 듀얼 클러스터를 투입했다는 것은 분명히 고효율 코어의 전력대 성능비가 ‘허리케인’ 코어의 전력대 성능비에 비해 유의미한 수준으로 좋다는 것을 뜻한다.


위에서 얻은 성능의 상 하한선을 긱벤치 싱글코어 점수 기준으로 대략 환산해보면 700점과 1500점의 사이에 있는 것으로 보인다. 물론 저 수치는 최대치와 최소치를 가정하는 것이기에 실제 성능 수치는 700점과 가깝지도, 1500점과 가깝지도 않을 것으로 보인다. 현 시점에서 가장 합리적인 추정은 대략 긱벤치 기준으로 싱글코어 1000점 근처일 것으로 보인다. 고효율 코어의 클럭스피드를 정확히 알 순 없지만 1050MHz 이하라고 가정한다면, 성능은 물론이고 클럭당 성능 역시 안드로이드 진영에서 리틀 코어로 자주 활용되는 Cortex-A53 보다 유의미하게 높은 수준인 것으로 보인다.


chipworks와 Anandtech이 추정한 A10 Fusion 다이 구획, 사진 : chipworks


코어의 면적은 이 가설을 뒷받침해주는데, A10 Fusion의 고효율 코어 두 개의 면적은 대략 1제곱 밀리미터 정도이다. 삼성의 14nm LPE 공정으로 제조된 엑시노스 7420의 리틀 클러스터 총 면적은 2.71제곱 밀리미터 정도인데, 여기에는 총 네 개의 Cortex-A53 코어에 256KB의 L2 캐시가 포함되어 있다. 각 코어가 사용하는 자원까지도 코어 면적으로 계산하면, 코어 당 면적은 대략 0.68제곱 밀리미터 정도이다. 두 공정이 같은 회사의 공정이 아닌데다 삼성의 공정이 TSMC의 공정에 비해 다이 면적이 더 좁다는 것을 감안하더라도, 애플의 고효율 코어가 일반적으로 구현되는 Cortex-A53 코어에 비해 더 큰 면적을 갖고있는 것으로 보인다.


다만 그렇다고 하더라도 일반적으로 네 개가 투입되는 A53과는 달리 두 개의 코어만 투입되는데다, ‘허리케인’ 코어가 워낙 강력한 성능을 갖고 있기 때문에, A10 Fusion에서 고성능 클러스터와 고효율 클러스터의 성능 격차는 3.5배에서 4배 사이인 것으로 보인다. 이는 스냅드래곤 820의 1.35배, 엑시노스 7420의 2배, 엑시노스 8890의 2.25배에 비해 훨씬 큰 차이로 애플의 시스템이 안드로이드 시스템에 비해 더 제한적인 상황에서만 사용한다는 가설에 힘을 실어준다.


정리하자면 A10 Fusion의 고효율 코어는 ‘허리케인’ 코어에 비해 전력대 성능비가 좋지만 절대 성능은 거의 3.5~4배 정도의 차이를 보인다. 다만 고효율 코어의 더 높은 전력효율성과 낮은 소모 전력은 아이폰이 대기 상태에 있을 때나 사용 중 CPU에 부하가 걸리지 않는 상황에서 전력 소모량을 크게 줄일 수 있으며, 이것이 이번 아이폰 7이 기존에 비해 크게 향상된 배터리 지속시간을 가지게 된 이유이다.


A10 Fusion의 메모리 시스템


CPU 코어의 마이크로 아키텍처만큼이나 성능에 밀접한 영향을 끼치는 것이 바로 메모리 성능이다. 대부분의 스마트폰에 사용되는 AP들은 동일한 메모리를 CPU와 GPU가 공유하기 때문에 그 성능이 더 큰 영향을 미친다. 실제로 A10 Fusion은 위에서 언급한 것 처럼 메모리 성능 역시 40% 가까이 향상된 것을 확인할 수 있다.



본격적으로 메인 메모리에 대해 알아보기 전에 아까전에 간단하게 짚고 넘어갔던 A10 Fusion의 메모리 계층 구조를 다시 한 번 살펴보자. CPU가 포함하고 있는 가장 상위 레벨의 캐시인 L1 캐시는 64KB의 명령어 캐시와 64KB의 데이터 캐시로 나뉘어져 있다. 이는 파이프라인화된 CPU에서 여러 작업이 동시에 실행될 때 캐시를 동시에 점유하려는 현상을 해결하기 위한 것이다. L1 캐시는 CPU에서 가장 가깝고, 빠르게 동작한다. 하지만 그 댓가로 그 용량이 매우 작다. 


만약 CPU가 원하는 데이터가 L1 캐시에 없다면 L2 캐시를 찾아볼 차례이다. L2 캐시는 3MB의 용량을 갖고 있으며, 상위 레벨의 캐시 내용을 모두 담아놓는 방식으로 작동하기 때문에 L1 캐시에 포함된 정보 역시 모두 담고 있다. 3MB의 L2 캐시는 모바일 아키텍처로 치면 꽤나 큰 용량이다. A8에서 A9으로 이행할 때 L2 캐시의 용량이 1MB에서 3MB로 크게 증가했는데 여기서 문제가 발생한다. 방금 언급한 것과 같이, 애플의 아키텍처는 기본적으로 상위 레벨의 캐시 내용을 하위 레벨에 모두 담는 방식으로 작동하는데 3MB의 L2 캐시 용량을 모두 담으면서 동시에 적당한 용량의 L3 캐시를 확보하기 위해서는 용량이 엄청나게 커져야 한다.


큰 용량의 캐시는 더 넓은 면적을 의미하고, 더 넓은 면적은 더 낮은 수율과 더 많은 제조원가를 의미한다. 즉, 무작정 캐시의 용량을 늘리는 것은 기업 입장에서는 큰 낭비이다. 애플은 이런 문제를 해결하기 위해 L3 캐시 작동 방식을 바꿔버렸다. 바뀐 방식은 상위 레벨 캐시에서 쫒겨난 내용들을 캐시에 보관하는 방식으로, 용량 부족으로 축출되었던 라인이 이내 필요해지게 되면 메인 메모리까지 접근할 필요 없이 L3 캐시에서 가져올 수 있을 것이다. A9칩과 A10 Fusion은 역시 공통적으로 4MB의 L3 캐시를 가지고 있다. 이를 통해 A9칩과 A10 Fusion은 총 7MB의 내용을 자신의 캐시 시스템에 담아둘 수 있다.


멀티코어의 메모리 레이턴시 성능이 싱글코어일 때 절반 가까이 떨어진다. 사진 : 긱벤치 브라우저


물론 L3 캐시 메모리를 관리하는 정책을 바꿈으로써 3MB에 달하는 용량 이득을 봤다면, 당연히 상응하는 댓가를 치뤄야 하는 것이 인지상정이다. A9칩과 A10 Fusion은 공통적으로 긱벤치 4에서 새로 추가된 메모리 레이턴시 항목이 듀얼코어일 때 오히려 싱글코어일때보다 거의 절반에 가깝게 낮은 수치를 보인다. A9 성능 상세분석(링크)에서 살펴봤듯, 트위스터 수준의 싱글코어 성능으로도 이미 메모리 성능을 끝까지 사용하기에 충분하기에 메모리 부분에서 싱글코어와 멀티코어의 성능이 비슷한 건 놀라운 일이 아니지만 멀티코어일 때의 성능이 싱글코어에 비해 크게 떨어지는 건 흥미로운 현상이다.



긱벤치 4의 메모리 레이턴시 테스트는 메모리에 고리형으로 된 링크드 리스트 자료구조를 방문하는 시나리오이다. 링크드 리스트는 데이터와 다음 객체를 가리키는 주소값을 가진 자료구조로 직접 접근하기 전에는 다음 노드의 위치를 짐작할 수 없고, 가리키고 있는 다음 노드가 메모리상에서 가까운 위치에 있다는 보장이 없기 때문에 거의 반드시 메인 메모리에 접근하게 함으로써 메모리 내용을 읽어오는 시간을 측정하기에 좋은 도구이다. 긱벤치의 제작사인 Primite Labs이 본 테스트의 데이터 셋 크기에 대해서 자세한 내용을 공개하지는 않았지만, 적어도 상위 레벨의 캐시에 담길 정도로 그 크기가 작지는 않을 것이다.


A9과 A10 Fusion의 경우 두 개의 고성능 코어가 동시에 링크드 리스트를 방문할 때 캐시 시스템에서 성능상 병목을 일으키는 것으로 보인다. L1, L2 캐시는 다시 쓰일 것 같지 않은 링크드 리스트 노드를 끊임없이 L3 캐시로 축출할 것이며, 동시에 양쪽 CPU 코어가 메모리로 접근해 메모리의 내용을 L2 캐시로 읽어들이게 될 텐데 이 과정에서 병목현상이 일어나는 듯 하다. 이런 현상이 안드로이드 진영의 AP나 A9 이전의 애플 AP들에서 발생하지 않는다는 것은 이런 추측에 힘을 실어준다. 물론 이런 극단적인 상황이 아닐 때 이 문제가 성능에 직접적인 영향을 미치지는 않을 것이고, 이런 문제가 있음에도 새로운 방식의 L3 캐시 도입은 더 큰 캐시 용량을 확보함으로써 얻는 것이 잃는 것보다 훨씬 큰 트레이드 오프로 보인다.


지금까지 A10 Fusion의 캐시 계층에 대한 내용을 살펴보았다. 방금 언급한 캐시에 정보가 없는 경우 CPU는 메인 메모리에 접근해 그 자료를 읽어오게 된다. A10 Fusion의 메인 메모리 성능은 위에서도 본 것과 같이 긱벤치 4 결과를 통해 추정해볼 수 있다.



위에서도 언급한 것과 같이 A10 Fusion은 A9에 비해 40% 정도의 메모리 성능 향상을 보여주고 있다. 세 가지 테스트 항목 모두 35% 이상의 성능 향상을 보이고 있는데, A10 Fusion의 메모리 버스 폭은 크게 넓어지지 않았으니 이런 성능 향상은 메모리 칩 자체의 작동속도가 35~40% 가까이 향상되었다고 보는 것이 옳을 것이다.


정리하자면 A10 Fusion은 A9칩과 거의 유사한 캐시 계층 구조를 가졌다. 캐시 성능 역시 빨라진 CPU 작동속도에 맞춰 향상이 있었을 것으로 보인다. 다만 L3 캐시 관리 정책을 바꿈으로써 메모리 접근 요청 횟수가 엄청나게 많을 때 접근 시간이 증가하는 문제는 A9과 동일하게 발생한다. 하지만 이 문제는 벤치마크 프로그램이 아닌 다음에야 재현하기 어렵기 때문에 성능상으로 큰 문제는 아니다. 거기에 메모리 칩의 작동속도를 올려 달성한 40%에 달하는 메모리 성능 향상은 전 세대에 비해 40% 가량 증가한 CPU 성능과 50%가량 증가한 GPU 성능을 훌륭하게 보조할 것이다. 거기에 더해 성능에 관련된 문제는 아니지만 특기할만한 사항은 아이폰 7과 7 플러스가 각각 2GB, 3GB로 서로 다른 용량을 가지고 있다는 것이다. 더 높은 해상도를 다뤄야 하는 아이폰 7 플러스에 추가적인 메모리를 할당한 것으로 보인다.


지금까지 A10 Fusion의 CPU 코어 아키텍처와 메모리 구조에 대해 자세히 살펴보았다. 하지만 A10 Fusion은 CPU가 아니라 SoC로 CPU를 제외하고서도 매우 많은 회로들이 집적되어 있다. 이 중에서 특히 GPU는 CPU보다도 더 넓은 면적을 점유하고 있는데, 이 GPU를 알아보지 않고는 A10 Fusion의 성능을 제대로 살펴봤다고 말하기 힘들 것이다.


아이폰 7의 GPU 성능 및 아키텍처 분석


사진 : 애플 9월 스페셜 이벤트


애플의 AP는 전통적으로 강력한 GPU를 탑재하는 것으로 유명했다. 이번 A10 Fusion 역시 예외는 아니다. 기존의 A9칩에 비해서도 50%나 향상된 그래픽 성능을 뽐낸다. 그런데 애플은 키노트에서 A10 Fusion이 전작과 같은 6개의 클러스터의 그래픽 유닛을 갖고있다고 밝혔다. 그렇다면 50%에 달하는 성능 증가는 코어당 성능이 증가한 새로운 아키텍처 덕분일지, 아니면 CPU처럼 큰 클럭향상의 덕을 본 것인지가 궁금해진다. 지금부터 이를 분석해보자.


벌써 세 번째 보는 다이 사진이다. 이번에 주의깊게 살펴볼 부분은 그래픽 유닛 부분이다. 얼핏 봤을 때도 그래픽 유닛이 점유하는 면적이 CPU가 점유하는 면적보다 훨씬 넓다는 것을 알 수 있다. A9 칩과 A10 Fusion의 그래픽 유닛이 차지하는 면적을 각각 살펴보면 A9 칩은 대략 27제곱밀리미터, A10 Fusion은 대략 24제곱밀리미터 정도의 면적을 점유하고 있다. A10 Fusion에서 오히려 그래픽 유닛이 차지하는 면적이 줄었는데, 이는 16FF에서 16FF+로 공정이 이행하면서 생긴 변화로 볼 수 있다.


반대로 생각하면 A10 Fusion에 들어간 그래픽 유닛은 A9 칩의 그래픽 유닛에 비해 아키텍처적으로 소소한 변화는 있을 수 있겠지만 이것이 본격적인 그래픽 성능에 영향을 미칠 정도로 큰 변화일 가능성은 거의 없다. 즉, 대부분의 그래픽 성능 향상은 그래픽 유닛의 클럭 증가로부터 얻어졌다고 결론을 내릴 수 있을 것이다.


Apple G9 GPU라고 표기되어 있는 것에 주목. 사진 : 클리앙 새소식 게시판 '스퀴니'님 캡처


GFXBench가 아이폰 7에 대응하는 데이터베이스 패치를 하기 전, GPU 종류가 Apple G9 그래픽으로 표시되어 애플 독자 개발 그래픽 아키텍처가 투입된 것이 아니냐는 이야기가 많았는데, 지금까지의 정황으로는 기존 PowerVR GT7600을 기반으로 애플의 입맛에 맞도록 소소한 부분에 커스텀이 있었던 듯 하다. 아난드텍 역시 아이폰 7 리뷰에서 A10 Fusion의 그래픽 유닛에 애플의 커스텀이 들어갔다는 추측을 하고 있다(링크).



위 표는 실제로 측정된 그래픽 벤치마크 결과이다. GFXBench, Basemark OS II, Basemark Mobile GPU, 3DMark등 여러 개의 툴을 사용하여 다양한 시나리오에서의 결과값을 확인할 수 있다. 대부분의 시나리오에서 A9 대비 공히 50% 혹은 그 이상의 성능 향상을 보여주고 있다. 전체 시나리오의 종합 점수는 각 시나리오 점수의 기하평균을 취해 산출할 수 있었다. 공교롭게도 전체 성능 향상폭이 애플이 주장하는 50%와 거의 일치하는 것을 볼 수 있다.


그런데 여기서 잠깐 궁금한 부분이 있다. CPU 클럭이 최대 30% 정도 선에서 증가한 것과는 달리 GPU 클럭은 50%가량 증가했다는 점이다. 물론 이런 큰 폭의 GPU 클럭 상승 역시 향상된 공정과 패키징 기술 거기에 더해 기존 A9의 생산이 멀티 소싱으로 이뤄져 양 쪽의 편차를 줄이기 위해 남겨뒀던 여유 전력폭을 사용했다고 생각할 수도 있겠다. 이 모든 것을 감안하더라도 이번에야말로 50%의 클럭 향상은 기존에 비해 더 큰 스로틀링 폭을 보일 것이라는 의심이 들었다.


이를 확인하기 위해 GFXBench의 Manhattan 3.1 시나리오를 한번만 실행했을 때의 점수와, 20번 반복해서 실행했을 때의 평균 점수를 비교하는 테스트를 진행했다. 테스트는 각각 아이폰 6s Plus와 아이폰 7 Plus 모델에서 이뤄졌다. 아이폰 7 플러스의 경우 1회차에서 테스트 시간 중 2656 프레임을 그려낸 데 반해서 20회 실행 후에는 1회 테스트에 2293 프레임을 그려냈다. 대략 15% 정도의 프레임 하락이 있었다. 아이폰 6 플러스의 경우 최초 테스트에서 1725 프레임을 그려낸 데 반해 20회 테스트에서는 1505 프레임을 그려냈다. 이는 대략 13% 정도의 프레임 하락이다.


놀랍게도 GPU 역시 위에서 살펴본 CPU와 비슷한 양상을 보이고 있다. 클럭이 큰 폭으로 상승했음에도 불구하고 스로틀링 특성은 A9칩과 유사한 수준으로 유지되고 있다. 여기에는 제조공정의 향상과 A10 Fusion에 도입된 새로운 패키징 기술, A9에서 숨겨져 있던 여유 전력이 모두 영향을 미치는 것으로 보인다. 혹은 기존 세대에 비해 발전한 전력 관리 기술이 도입되었을 가능성도 있다.


정리하자면 A10 Fusion은 애플의 커스텀이 일부 들어간 것으로 보이나, 전 세대의 그래픽 유닛과 거의 유사한 모델이 투입되었다. 대신 작동하는 클럭스피드가 50% 가까이 향상된 것으로 보이는데 덕분에 그래픽 성능은 대부분의 시나리오에서 50% 가까이 증가한 성능을 보인다. 여기에 메모리 성능 역시 40%가량 증가하며, 향상된 그래픽 성능에 발을 맞추고 있다.


은색으로 보이는 두 개의 직사각형이 실리콘 칩이고, 초록색 기판이 바로 패키지를 위한 '보조기판'이다. 사진 : witchdoctor


지금까지 우리가 살펴본 것은 A10 Fusion 칩의 다이 내부의 사항들이다. 하지만 A10 Fusion칩은 다이 내부만큼이나 큰 변화를 패키지 기술에서 이뤄냈다. 기존에는 실리콘 웨이퍼 상태에서 다이를 만들어낸 뒤, 다이를 잘라내고 이를 보조기판 위에 올려 칩의 입, 출력단을 연결했다. 이후 실제 기기에 탑재될 때는 이 보조기판의 접점과 메인보드의 접점이 연결되어 칩과 메인보드를 이어주는 역할을 했다. 그런데 A10 Fusion은 이런 전통적인 패키지 방식에서 탈피해 TSMC의 완전히 새로운 패키지 기술을 적용했다. 과연 A10 Fusion이 어떤 패키지 기술을 적용했는지, 이것이 어떤 이점을 주는지를 지금부터 살펴보자.


TSMC의 새로운 패키지 기술 FO-WLP를 적용한 A10 Fusion



지난 세대의 A9 칩이 삼성과 TSMC에서 각각 생산되었음에도 불구하고 A10 Fusion은 초기부터 전량이 TSMC에서 생산될 것이라는 것이 거의 확정적이었다. 이는 TSMC가 자사의 새로운 패키지 기술을 대형 고객이 채택했다고 밝힌 덕분이다. 물론 TSMC가 애플을 꼭 집어 말하지는 않았지만 이 대형 고객이 애플이라는 것은 업계에서 공공연한 비밀이었다.


이번에 애플이 적용한 바로 이 새로운 패키지 기법은 팬아웃 웨이퍼 레벨 패키지(FO-WLP)라는 생소한 이름을 가졌다. 몰라 박사가 찬찬히 설명해 줄테니 겁 먹지 마시라. 이름이 엄청나게 길기 때문에 조금 조금씩 쪼개서 설명하는 게 좋을 듯 하다. 먼저 웨이퍼 레벨 패키지(WLP)가 무엇인지 알아보자. 아시는 분도 계시고 그렇지 않은 분들도 계시겠지만 반도체 칩들은 거대한 실리콘 웨이퍼로부터 생산된다.


사진 : WCCFTech


반도체 집적 회로는 이 웨이퍼에 여러 물질을 칠하고, 강력한 빛을 원하는 패턴대로 쏴서 패턴을 ‘식각’시키고 물질을 채우는 방식의 반복으로 만들어진다. 웨이퍼 레벨의 패키지는 바로 이렇게 만들어진 웨이퍼 그 자체에 외부와 칩을 연결시키는 전극을 만들어내서 최종적으로 잘라진 다이가 그 자체로 ‘패키징’된 상태가 되는 기술을 말한다. 다만 이런 기존의 웨이퍼 레벨의 패키지 기술은 다이 자체에 외부와 연결되는 전극을 만들기 때문에, 이런 입출력 포트들이 들어갈 수 있는 공간이 칩 크기로 한정되는 단점을 가진다. 즉, 입출력 포트가 많이 필요하지 않은 간단한 칩들에 주로 적용될 수 있는 방법이다.


스마트폰에 주로 들어가는 AP는 CPU에 더해 그래픽 유닛, 이미지 프로세싱 유닛, 그 외에 많은 하드웨어 회로들이 한꺼번에 들어가 있는 시스템 온 칩(SoC)이다. 즉, 엄청나게 많은 입출력 포트들이 필요하고 기존의 웨이퍼 레벨 패키지 기술을 적용하기 힘들었다. 하지만 최근에 TSMC가 실제 공정에 적용한 팬아웃 웨이퍼 레벨 패키지는 여기서 한 단계 더 발전했다. 그 비결은 칩을 올릴 웨이퍼를 하나 더 만드는 것이다. 



보조 웨이퍼를 하나 더 쓰는 방식이 기존의 보조기판을 쓰는 패키지와 다를 게 없어 보인다고? 천만의 말씀. 보조 기판에 회로를 그려넣어 만들어진 도선보다 웨이퍼에 그려넣는 도선은 더 정교하고, 그 저항도 적다. 저항이 적다는 것은 전력소모와 발열을 줄일 수 있다는 말과 일맥상통한다. 게다가 보조 웨이퍼는 보조 기판에 비해 그 두께도 작아 전체 칩의 두께를 줄일 수 있다는 장점까지 추가된다. TSMC에 따르면 A10 Fusion에 적용된 새로운 패키지 기술이 두께를 20% 줄일 수 있고, I/O 속도가 20% 향상되고 발열이 10% 줄어든다고 한다. 물론 자사의 기술을 광고하는 것이기에 TSMC가 제시한 저 수치는 특정 상황에서의 최대치가 되겠지만, 두께, 속도, 발열 면에서 이득을 가져다 줄 수 있는 기술인 것은 확실하다.


사진 : chipworks


거기에 일반적으로 스마트폰에서는 부품을 넣을 공간을 아끼기 위해 패키지 온 패키지(PoP) 기술이 적용된다. 흔히 우리가 스마트폰의 AP라고 생각하는 까맣고 우둘투둘한 느낌의 칩은 사실 메인 메모리의 역할을 담당하는 DRAM이고, 그 아랫쪽에 진짜 스마트폰의 AP가 위치한다.


사진 : TSMC InFO 기술 설명 슬라이드


기존에는 이 둘을 연결하기 위해 먼저 보조 기판과 칩의 DRAM 통신부를 연결하고, 이를 길고 가는 도선으로 직접 DRAM에 연결하는 방법을 사용했다. 하지만 새로운 패키징 기술 하에서는 이를 훨씬 간명하게 처리할 수 있다. AP와 바로 연결되어야 할 부분에는 보조 웨이퍼에 패턴을 그려넣고, 메인보드와 바로 연결될 부분에는 TIV 등의 기술을 사용해 이를 바로 DRAM의 연결부와 연결하는 기술이다. 이 역시 기존의 PoP 기법에 비해 훨씬 짧고, 저항이 낮은 도선을 사용할 수 있게되면서 IO 속도와 발열을 억제할 수 있게 해준다. 새로운 패키지 기술은 A10 Fusion의 메인 메모리 성능이 크게 증가한 주요한 이유 중 하나로 보인다.


정리하자면 A10 Fusion은 칩 내부 뿐만이 아니라 이 칩을 패키징하는 방법 역시 크게 변화시켰다. 더 이상 보조 기판을 사용하는 게 아니라 추가적인 웨이퍼를 사용해 훨씬 얇고, 빠르고, 전력 효율적으로 외부와 소통할 수 있게 되었다. 이런 패키지 기술의 개선이 칩 자체의 스로틀링 특성이나 성능에도 영향을 주었음은 물론이다. 삼성 역시 이 시장에 대응하기 위해 LCD 생산 라인 등을 패키지 공정으로 전환하려는 등의 움직임을 보이고 있는데, 앞으로는 이런 웨이퍼 레벨의 패키지가 좀 더 보편적인 기술이 될 것으로 보인다.


지금까지 살펴본 것은 대부분 A10 Fusion칩 그 자체에 대한 것이었다. 물론 스마트폰의 성능에 가장 큰 영향을 주눈 요소들은 CPU, GPU의 성능과 더 나아가 메인 메모리의 성능이겠지만, 자료들이 저장되는 낸드 플래시 메모리 성능 역시 무시할 수 없는 요소이다. 애플은 아이폰 6s에서 낸드 플래시 컨트롤러를 개선하고 NVMe 프로토콜로 PCIe 버스를 통해 CPU와 연결시키는 등 큰 변화를 가져왔다(링크). 과연 이번 아이폰 7 시리즈에서도 낸드 플래시 메모리의 성능 향상을 보여줄 수 있을지, 지금부터 살펴보자.


낸드 성능


본격적으로 성능에 대해 논하기 전, 아이폰이 마침내 보조기억장치의 최저 용량을 32GB로 올렸다는 소식을 전하고 싶다. 한 단계 뛸 때마다 급격히 용량이 커지는 32GB/128GB/256GB의 구성은 여전히 애플의 영업이익을 올려주는 역할을 하겠지만, 늘어난 용량과 iOS 10에 새로 적용된 여러 용량 관리 기술에 더해 운영체제의 용량 다이어트 등이 합쳐지면서 스마트폰에 컨텐츠를 많이 저장하지 않는 일반 사용자들은 최하 단위의 용량인 32GB만 사용해도 충분한 공간을 얻을 수 있을 것으로 보인다.


낸드 플래시 메모리의 속도가 빨라지면 기기의 부팅 속도, 앱이나 저장된 사진, 영상, 음악 등의 로컬 컨텐츠 로딩 시 반응속도가 더 빨라진다. 혹 스마트폰 앱을 이용해 좀 더 무거운 작업 사진 편집이나 영상 편집, 음악 작업 등을 할 경우에도 낸드 플래시 성능이 높을 수록 유리하다. 당연하게도 아이폰 7 시리즈 역시 전작에 비해 향상된 낸드 성능을 갖고 있다.


가장 단순하게 낸드 성능을 측정할 수 있는 방법 중 하나는 같은 운영체제를 콜드부팅하는 데 걸리는 시간을 측정하는 것이다. 컴퓨터(스마트폰도 포함)의 메인 메모리로 사용되는 DRAM은 전원이 차단되면 저장되어 있는 정보를 잃어버리게 된다. 즉, 기기의 전원이 완전히 차단된 상태에서 기기가 부팅되는 과정 중 큰 부분이 기기의 낸드 플래시 메모리에 있는 운영체제 구동부를 메인 메모리로 옮기는 과정이다. 물론 보안 체크나 기기의 이상 여부 점검, 그리고 읽어온 운영체제를 실행할 CPU 성능 역시 부팅 속도에 영향을 주지만 가장 큰 영향을 주는 것이 낸드 플래시 성능이란 것은 변함이 없다.


Ars Technica 에서도 이런 점에 착안하여 아이폰 5부터 역대 아이폰의 부팅 시간을 측정해 비교표를 제공했다. Ars Technica는 256GB 모델로 테스트했고, 가장 고용량 모델인 만큼 가장 높은 성능을 보여줄 것으로 기대된다.


표 : Ars Technica


실제로 부팅 속도는 아이폰 세대를 거듭할수록 빨라지고 있다. iPhone 7은 iPhone 6s의 16초보다 2초 단축된 14초를 기록하고 있고, 이는 아이폰 5s에 비하면 두 배 빠른 속도이며 아이폰 5와는 그 이상의 차이가 난다. 다만 이 결과만으로 아이폰 6s에 비해 저장장치 성능이 향상되었다는 결과를 내리기는 힘들겠다. 당연히 부팅 속도 테스트는 낸드 플래시 성능을 정확하게 계측할 수 있는 도구는 아니기 때문이다. 단지 낸드 플래시 메모리의 성능을 어림짐작 할 수 있게 해줄 뿐이다. 좀 더 자세한 벤치마크 결과들을 살펴보자.


Basemark OS II는 여러 항목의 테스트 시나리오를 구비하고 있는데 그 중 ‘메모리’ 테스트 항목이 낸드 플래시의 성능을 측정한다. 테스트 시나리오의 이름이 ‘메모리’기 때문에 메인 메모리 테스트로 흔히 착각하는 경우가 많은데 이 항목은 메인 메모리가 아니라 보조 저장장치, 즉 낸드 플래시 메모리의 성능을 측정한다.


사진 : Anandtech


벤치마크 결과는 놀랍다. 아이폰 7과 7플러스 모두 다른 스마트폰에 비해 엄청나게 높은 점수를 보여주고 있다. 이 테스트만 봐서는 아이폰 7과 7플러스가 엄청난 폭의 낸드 성능 향상을 이룬 것으로 보인다. 다만, 아난드텍은 256GB 모델로 테스트를 돌렸는데, GSM 아레나에서 128GB, 32GB 모델로 테스트를 돌렸을 때는 각각 1721점, 839점의 점수 분포를 보이고 있다.


GSM 아레나는 Basemark OS II 이외에도 Passmark라는 벤치마크 툴과, 자체적으로 5분 길이의 4K 영상을 복사하는 속도를 측정함으로써 낸드 플래시 성능을 측정했다.


표 : GSMArena


Passmark 결과에서도 128GB 모델은 모든 측정 시나리오에서 아이폰 6s에 비해 발전한 모습을 보이고 있다. 하지만 아이폰 7 32GB 모델은 읽기 성능은 아이폰 6s에 비해 근소하게 높은 결과를 보이고 있지만, 쓰기 테스트에서 큰 폭의 성능 저하를 보여주고 있다. 평균으로 산출된 전체 점수에서도 오히려 6s 64GB보다 낮은 점수를 보여주고 있다. 4K 비디오 복사 테스트의 경우 아이폰 6s가 1분이 걸렸고, 이번에는 아이폰 7이 용량에 관계없이 더 좋은 결과를 보여주고 있다. 물론 여전히 128GB 모델과 32GB 모델 사이에 큰 성능 차이가 있음은 확실하다.



아난드텍의 저장장치 벤치마크 결과 역시 참고할 만하다. 흥미로운 것은 아난드텍의 벤치마크에서는 낸드 플래시 성능이 확실히 향상되었다고 할 만한 부분을 찾아보기 힘들다. 이 결과를 바탕으로 아난드텍은 아이폰 7의 낸드 플래시 저장장치의 성능이 전 세대에 비해 크게 증가하지 않았다는 결론을 내렸다.


정리하자면, 아이폰 7의 낸드 플래시 메모리 성능은 전 세대와 비슷하거나 조금 더 나아진 수준으로 보인다. 각종 벤치마크마다 워낙 큰 편차가 발생해 그 성능에 대해 이보다 더 확실한 답을 내리기는 어렵다. 다만 플래시 메모리 특성상 용량이 작은 모델과 큰 모델간의 성능 편차는 분명히 존재하며, 이 차이는 32GB와 128GB 모델 사이에서 특히 크게 드러난다.


결론


사진 : 애플 아이폰 소개 페이지


아이폰 7은 여러 면에서 아이폰 6s에 비해 괄목할만한 성능 향상을 이루어낸 동시에, 여러 가지 기술의 도입으로 소모 전력을 줄여 배터리 사용시간을 늘렸다. 가장 눈에 띄는 변화는 한참동안 고수해오던 듀얼코어를 버리고 네 개의 코어를 투입했다는 것이다. A10 Fusion 칩에서는 ‘허리케인’이라는 이름을 가진 크고 고성능의 코어 두 개와 작고 효율을 높인 코어 두 개가 조합되어 작동한다. 물론 어디까지나 주연은 두 개의 ‘허리케인’ 코어이고 고효율 코어 두 개는 사용자와 마주하지 않는다. 하지만, 사용자와 마주치지 않는 환경에서 동작하는 고효율 코어는 아이폰 7이 전례없는 수준으로 에너지 효율적으로 동작하게 만들어준다.


‘허리케인’ 코어는 직계 조상인 ‘트위스터’ 코어에 비해 많은 부분이 변하지는 않았다. 프론트엔드와 좀 더 진보한 전력 관리 기술이 도입된 것으로 추측되지만, 아키텍처의 넓이 자체는 변하지 않은 것으로 보인다. 다만 약간의 아키텍처 향상과 30%에 달하는 작동 클럭 향상은 40%에 달하는 성능 향상을 가능케 했다. 작동클럭이 30%나 향상되었음에도 불구하고, 스로틀링 특성은 이전 세대와 유사하게 유지되었는데, 이는 향상된 제조공정과 지난 세대에서 남겨두었던 여유분의 전력, 상대적으로 높은 전압에서 작동특성이 좋은 트랜지스터의 투입 등에 힘입은 것으로 보인다. 물론 새로운 패키지 기술이 줄여주는 발열 역시 여기에 도움을 줄 것이다.


고효율 코어는 고성능 코어에 비해 낮은 절대 성능을 갖지만, 더 높은 전력대 성능비를 가지도록 설계되었다. 코어 자체는 안드로이드 진영에서 리틀코어로 자주 활용되는 Cortex-A53에 비해 더 크고, 클럭당 성능 역시 높은 것으로 보이지만 Cortex-A53이 주로 쿼드코어로 리틀 클러스터를 구성하는 것과는 달리 두 개의 코어로 고효율 클러스터를 구성하기 때문에 클러스터 전체 성능으로 비교하면 비슷하거나 더 낮은 성능을 가졌을 것으로 보인다. 실제로 안드로이드 진영의 플래그십 AP인 엑시노스 8890과 스냅드래곤 820이 빅 클러스터와 리틀 클러스터의 성능 격차가 각각 2.25배, 1.35배인데 비해 A10 Fusion은 그 격차가 3.5배에서 4배에 이를 정도로 크다.


이정도로 큰 성능격차는 두 개의 클러스터가 동시에 작동했을 때의 이점을 극히 축소시킨다. 실제로 A10 Fusion은 네 개의 CPU 코어를 가지고 있지만, 동시에 동작하는 CPU 코어는 두 개밖에 없다. 스마트폰에 가해지는 부하에 따라 고성능 클러스터나 고효율 클러스터 중 하나만이 선택되어 동작한다. 이 방식은 구현이 상대적으로 간단하다는 장점이 있고, 위에서 언급한 두 클러스터의 특징과 결합하면 합리적인 선택으로 보인다. 다만 이런 클러스터 특징이 당장 서로 다른 특성의 코어를 동시에 동작시킬 수 없어서 선택된 것인지, 그렇지 않으면 이 방식이 더 유리하기 때문에 선택된 것인지는 알 방법이 없다. 전자라면 A11 Fusion칩 혹은 그 이후의 애플 디자인 칩은 상대적으로 더 강력해진 고효율 클러스터와 함께 네 개의 코어가 동시에 동작하는 방식을 채택할 것이고, 후자라면 앞으로도 지금과 같이 클러스터간에 큰 성능격차를 유지하면서 한 개의 클러스터만 동작하는 방식을 채택할 것이다.


그래픽 성능 역시 기존에 비해 50%나 되는 큰 향상을 보여주고 있다. 다만 그래픽 유닛의 아키텍처는 아이폰 6s에서 채택된 PowerVR GT7600에서 거의 변하지 않은 것으로 보인다. 애플이 원하는 방향으로의 커스텀이 들어갔다는 이야기가 있지만, 확인된 것은 아니다. 즉, 50%에 달하는 성능 향상은 순전히 작동 클럭 증가의 몫이다. 다만 GPU 역시 50%에 달하는 작동 클럭 증가가 있었지만, 측정된 스로틀링 수치는 A9칩과 비슷한 수준이다. 역시 향상된 제조공정, 지난 세대에 남겨뒀던 여유분의 전력, 새로운 패키지 기술 등이 복합적으로 영향을 미친 것으로 보인다.


CPU와 그래픽 유닛의 성능 향상을 뒷받침하기 위해서는 충분한 메모리 성능이 필요하다. 아이폰 7은 이 부분도 소홀하지 않았다. 지난세대와 동일한 LPDDR4를 채택했지만 그 구동속도가 40%에 가깝게 증가했다. 메모리 성능 향상은 특히 새로운 패키지 기술의 영향을 많이 받은 것으로 보인다. A9칩에서 L2 캐시 용량이 늘어나면서 생긴 캐시 용량 문제로 L3 캐시를 관리하는 정책이 바뀌었는데, 이 특성을 그대로 이어받았다. 이 때문에 메인 메모리에 접근하려는 명령이 일정 이상으로 많이 집중될 경우, 병목 현상이 발생하는 것으로 보인다. 다만 이 문제는 실생활에서는 거의 영향을 주지 않을 것으로 보인다. 거기에 아이폰 7 플러스 모델에는 3GB의 메인 메모리가 들어가면서, 처음으로 4.7인치 모델과 5.5인치 모델의 메모리 용량이 차별화되었다.


A10 Fusion은 칩 내부에서도 큰 변화가 있었지만 칩 외부에서도 그에 맞먹는 큰 변화가 있었다. 기존의 보조 기판을 사용하던 패키지 기법에서 탈피해, 다른 웨이퍼 위에 칩을 올리는 팬아웃 방식의 웨이퍼 레벨 패키지 기술이 적용되었다. 이 기법으로 AP의 두께가 줄어들고 입출력 소비전력이 줄어들어 전체적인 발열이 줄고, 속도가 증가하는 이득을 얻었다. 이런 이득이 칩의 성능에도 영향을 미쳤음은 물론이다.


아이폰 7에서 드디어 최소 용량이 32GB가 되었다. 상위 용량 역시 128GB, 256GB로 아이폰 6s에 비해 그 용량이 두 배씩 증가했다. 다만, 이는 메모리의 밀도 증가에 의한 현상으로 메모리 병렬성이 늘지는 않은 것으로 보인다. 메인 메모리 성능은 ‘분명히 발전은 했지만 엄청난 차이는 아니다’ 정도로 요약할 수 있을 듯하다. 한가지 더 유념할 점은 32GB 모델과 128GB, 256GB 모델 사이의 저장장치 성능차이가 꽤 있다는 점이다.


작년, 애플은 걸출한 A9 칩을 내놓으며 CPU, GPU 성능에서 모두 왕좌를 공고히 했다. 하지만 시간이 흐르면 권력은 약해지는 법. 올 초 안드로이드 진영의 플래그십 AP들이 출격하면서 상황은 바뀌었다. A9은 CPU와 GPU 성능의 왕좌를 각각 엑시노스 8890과 스냅드래곤 820에게 물려주게 되었다. 물론 A9 칩을 CPU, GPU 성능 양 쪽에서 넘어선 칩은 없었기에 어떤 AP가 확실히 우세하다고는 말하기 어려운 상황이 지속되었다. 이런 춘추전국시대에 애플은 A10 Fusion을 출시하면서 성능의 균형을 무너뜨렸다. 애플은 A10 Fusion으로 그 CPU, GPU 양쪽에서 확실한 성능우세를 확보했고, 경쟁 진영에게 있어 이는 거대한 숙제가 될 것이다.


애플은 세계에서 가장 거대한 기술기업이 어떤 일을 할 수 있는지를 또 한번 증명해냈다. 필자는 현 시점에서 선택할 수 있는 스마트폰 중 가장 좋은 AP 성능을 가진 제품을 꼽으라는 질문에 감히 아이폰 7 시리즈를 꼽을 수 있다. 적어도 AP 성능 분야에서만큼 애플은 매년 그 기대치를 충족시키고 있는 것을 넘어서 오히려 기대치를 높여가고 있다. 벌써부터 다음 세대 아이패드 프로에 탑재될 A10X 칩과 내년의 아이폰에 탑재될 A11 칩이 기대가 된다.


아이폰 7 자세히 알아보기 시리즈는 여기서 끝나지 않는다. 앞으로 국내에 아이폰이 출시되기 전까지 1주일여 시간동안 ‘디스플레이’, ‘카메라’에 대한 상세 분석으로 여러분들을 찾아뵐 것을 약속하면서 필자는 이만 물러가도록 하겠다. 즐거운 주말 되시길.




필자: Jin Hyeop Lee (홈페이지)

생명과학과 컴퓨터 공학을 복수전공하고 있는 대학생입니다.



참조
• iPhone 7 자세히 알아보기 : 성능


관련 글
• [연작] 아이폰 7 자세히 알아보기 : 미리 맛보기
• 컴퓨터 시장을 움직이는 힘: 무어의 법칙에서 사용자 경험으로
• iOS 10 프리뷰 : 성능과 개인정보 보호의 관계