빠르게 모바일 SoC를 진화시키는 삼성

 

삼성은 자사의 모바일 SoC(System on a Chip) 엑시노스 패밀리를 빠르게 진화시키고 있습니다. 갤럭시 노트 엣지 등 일부 모델에 쓰인 20nm 공정의 엑시노스 7 옥타에 이어 갤럭시 S6 시리즈에는 14nm 공정의 엑시노스 7 옥타를 채용했습니다. 모두 64비트 아키텍처의 ARMv8 CPU 코어 Cortex-A57/A53을 8코어 넣고 ARM의 Mali-T760 GPU 코어를 탑재한 것입니다.

 

01.png

 

20nm 버전의 엑시노스 7 옥타 다이 사진

 

삼성은 2014년 가을에 20nm 공정으로 만든 32비트 ARMv7 아키텍처 엑시노스 5 옥타를 발표했습니다. 즉 20nm ARMv7에서 20nm ARMv8, 다시 14nm ARMv8로 1분기에 한번씩 모바일 SoC를 갱신한 것입니다. 삼성은 2월 ISSCC(IEEE International Solid-State Circuits Conference)에서 이들 칩 중 20nm 버전인 엑시노스 7 옥타의 설계 개요를 발표했습니다.

 

02.png

 

03.png

 

ISSCC에서 발표된 20nm SoC의 개요

 

20nm와 14nm 엑시노스 7 옥타는 클럭과 GPU 코어 수를 제외하면 스펙은 비슷합니다. 이것은 놀라운 일이 아닙니다. 왜냐하면 파운드리의 16/14nm 프로세스는 20nm 프로세스의 백엔드(배선층)을 기반으로 트랜지스터를 20nm 평면 트랜지스터에서 FinFET 3D 트랜지스터로 전환한 프로세스이기 때문입니다. 삼성의 프로세스는 14nm에서 백엔드 배선층도 상당 부분 개량됐지만 그래도 SoC 설계에 공통점이 많을 것으로 예상됩니다. ISSCC에서 선보인 삼성의 20nm SoC를 보면 갤럭시 S6의 SoC 설계를 상당 부분 예측할 수 있으며 Cortex-A57/A53의 구현도 알 수 있습니다.

 

 

20nm에 비해 그리 줄어들지 않은 CPU 클러스터

 

삼성의 모바일 SoC는 big.LITTLE 구성을 채택합니다. 고성능 빅 코어와 저전력 리틀 코어를 조합한 것입니다. 20nm의 엑시노스 7 옥타는 고성능 코어로 Cortex-A57을 4코어, 저전력 코어로 Cortex-A53을 4코어 탑재했습니다. 모두 64비트를 포함한 ARMv8 아키텍처입니다.

 

ISSCC의 발표에선 두 CPU 클러스터의 크기도 밝혀졌습니다. Cortex-A57 클러스터는 A57 4코어에 2MB L2 캐시가 약 14제곱mm, Cortex-A53 클러스터는 A53 4코어에 256KB L2캐시가 약 4제곱mm입니다. 즉 빅 코어의 클러스터가 리틀 코어의 클러스터보다 3.5배 큽니다.

 

이를 삼성의 28nm big.LITTLE 구성과 비교하면 20nm로 가면서 CPU 코어 크기가 그리 줄지 않았다는 결론이 나옵니다. 28nm의 빅 코어 클러스터는 Cortex-A15 4코어에 2MB L2캐시로 약 19제곱mm입니다. 28nm에서 20nm로 미세화됐지만 빅 코어 클러스터의 면적은 73%밖에 줄어들지 않았습니다.

 

04.png

 

모바일 CPU 코어 크기

 

여기에는 2가지 이유가 있습니다. 하나는 CPU 코어가 32비트 ARMv7 기반 Cortex-A15에서 64비트 ARMv8 기반 Cortex-A57로 바뀌어 아키텍처 확장이 이루어져 CPU 코어가 커졌다는 것. 다른 하나는 엑시노스 7 옥타의 제조 공정인 20nm가 삼성의 20nm 공정 중에서도 미세화율이 낮은 초기 생산 공정으로 보인다는 것입니다.

 

 

삼성의 2가지 20nm 공정

 

삼성의 20nm 공정은 2가지가 있습니다. 하나는 먼저 제조를 시작한 것으로 보이는 20LPE, 또 다른 하나는 모바일에 최적화된 20LPM입니다. 20LPE는 스펙의 변화가 그리 크지 않은 편인데 예를 들면 최소 배선 간격(Minimum Metal Pitch)인 M1x는 20LPE에서 80nm로 28nm 공정의 90nm와 비교하면 89% 수준으로 미세화되는 데 그쳤습니다. 그에 비해 20LPM은 M1x가 64nm로 꽤 공격적인 시도를 합니다. 20LPM은 28LP에 비해 셀 라이브러리의 면적이 55%로 축소되지만 20LPE는 그 정도로 줄어들진 않을 것이라 추측됩니다.

 

05.png

 

06.png

 

ISSCC에서 선보인 20nm 버전 SoC의 프로세스 피처를 보면 M1x는 80nm니 20LPE에 해당할 것입니다. 그래서 28nm 공정과 비교하면 로직의 면적 축소가 낮을 가능성이 있습니다. 삼성은 20nm 과정에서 게이트 퍼스트 대신 게이트 라스트로 제조 방식을 바꾸는 등 큰 변화를 이루었기에, 20LPE에서는 위험 부담을 줄이기 위해 메탈 피치의 축소를 억제한 것일지도 모릅니다. 참고로 14nm 과정에서 메탈 피치는 64nm인지라 14nm 버전 엑시노스 7 옥타의 CPU 면적은 분명 줄었을 것입니다.

 

07.png

 

 

64비트 아키텍처 도입으로 게이트 수가 35% 증가

 

ARMv8 아키텍처는 64비트 모드의 추가 외에도 가상화 지원을 비롯해 다양한 부분에서 기능이 강화됐습니다. 그래서 ARMv8의 Cortex-A57은 ARMv7의 Cortex-A15보다 CPU 코어 크기가 커집니다. Cortex-A15와 Cortex-A57의 실행 파이프 라인 구성은 많이 비슷하지만 아키텍처 확장이 이루어진 만큼 CPU 코어는 커집니다. 삼성에 따르면 RTL 컨피그레이션을 끝낸 시점에서 32비트 ARMv7보다 35.5%나 게이트 수가 많아졌다고 합니다. 이런 사정 때문에 20nm 버전의 Cortex-A57 클러스터 면적은 14제곱mm로 상대적으로 커졌다고 봅니다.

 

64비트화에 따라 35.5% 커진 Cortex-A57은 전력 소비도 분명 비례해서 늘었을 것입니다. 그래서 삼성은 20nm Cortex-A57를 도입하면서 어떻게 면적과 소비 전력을 낮출 것인지에 신경쓴 것으로 알려졌습니다. 최고 클럭스의 목표(fmax)별로 다른 트랜지스터 구성을 시뮬레이트해서 전력과 동작 클럭이 최적의 균형을 취하도록 했습니다.

 

아래의 그림의 왼쪽 끝에 나온 최저 클럭 fmax1과 최고 클럭 fmax4를 비교하면 클럭이 15% 차이가 납니다. 그러나 fmax4는 누설 전류가 많은 low-Vt 트랜지스터를 fmax1보다 10배나 많이 필요로 합니다. 그래서 일정 클럭 이상으로 높이면 전력 소비량이 한계에 달합니다. 시뮬레이트 결과 fmax2이 트랜지스터 구성 대 클럭에서 최적의 효율을 내는 것으로 확정됐는데, 이는 1.08V로 구동해 1.9GHz를 달성할 수 있는 구성이라 합니다. 14nm가 되면 트랜지스터가 FinFET이 되고 누설 전류가 더 낮아져 전력 효율이 높아집니다. 그래서 fmax의 최적화 포인트가 더 높아집니다. 이 외에 물리 설계의 최적화 등에 따라 64비트 구현 CPU 코어에 비해 25% 정도 늘어난 전력으로 구동하게 됐다고 합니다.

 

08.png

 

09.png

 

 

 

누설 전류의 절감에 초점을 둔 Cortex-A53

 

ARM의 big.LITTLE 아키텍처는 OS 스케줄러에서 CPU 코어의 작업을 스케줄하는 big.LITTLE MP가 제공되며, 빅/리틀의 각각 CPU 코어에 자유자재로 작업을 할당하는 것이 가능합니다. 모바일에선 대부분의 작업이 리틀 코어에서 실행되며 부하가 매우 높은 태스크만 빅 코어에서 실행됩니다. 그래서 빅 코어는 다이나믹 전력을 낮추는 데 주력한 한편 리틀 코어는 누설 전류를 줄이는 데 집중했습니다. 같은 SoC의 CPU 코어에서도 빅 코어 Cortex-A57과 리틀 코어 Cortex-A53은 서로 다른 최적화가 이뤄졌습니다.

 

리틀 코어 Cortex-A53는 우선 코어의 면적을 줄이고 배선 길이를 짧게 해 배선 저항을 줄였다고 합니다. Cortex-A53도 동작 클럭과 전력 최적화가 이루어졌지만 Cortex-A57보다 누설 전류를 낮추는 데 주력해서 결과적으로 1.3GHz를 목표로 삼았습니다.

 

10.png

 

빅 Cortex-A57과 리틀 Cortex-A53은 모두 부하에 따라 전압과 동작 클럭을 바꾸는 DVFS(Dynamic Voltage and Frequency Scaling)를 사용합니다. 20nm 공정에서 DVFS의 문제는 SRAM이 데이터를 유지할 수 있는 업 레벨 전압이 논리 프로세스보다 높다는 것입니다. 그래서 SRAM이 DVFS로 전압을 낮출 때 제한이 됩니다. 그래서 20nm의 SoC에서 삼성은 듀얼 레일 SRAM을 사용해 로직 회로의 전압을 낮춰도 SRAM내용을 유지할 수 있도록 했습니다.

 

11.png

 

 

GPU 설계에도 스페셜 설계 라이브러리를 사용

 

GPU 코어는 현재 모바일 SoC에서 면적이 가장 큰 IP입니다. 전력 소비도 크고 최적화가 중요한 코어이지요. 엑시노스 7 옥타 SoC의 GPU 코어는 20nm와 14nm 버전 모두 ARM의 Mali-T760입니다. 다만 20nm 버전은 쉐이더 프로세서가 6코어, 14nm 버전은 8코어입니다.

 

12.png

 

삼성이 20nm에서 6코어 구성을 취한 것은 전력 범위를 유지하면서 최적의 성능을 얻을 수 있는 숫자가 6코어였기 때문입니다. GPU 코어의 수를 늘리면 더 낮은 클럭으로도 성능을 높일 수 있습니다. 그래서 특정 프로세스와 소비 전력 범위 안에선 최적의 코어 수가 자동적으로 결정됩니다. 20nm의 경우엔 그것이 6코어며 보다 저전력인 14nm에서는 8코어였던 것입니다.

 

GPU 코어에서는 물리 설계 저전력화도 이뤄졌습니다. 삼성에 따르면 ARM GPU 코어에서는 통상 FlipFlops이 다이나믹 전력 중 36%를 소비하고 있다네요. 그래서 새로 저전력 FlipFlop 셀을 개발해 이 부분의 전력을 30%까지 줄였다고 합니다. 또 FlipFlops을 분산시키는 설계 최적화를 통해 다이를 효율적으로 쓸 수 있도록 했습니다.

 

13.png

 

이렇게 보면 삼성이 실제 구현에서 상당한 수준으로 CPU와 GPU에 손을 댔음을 알 수 있습니다. ARM의 RTL을 어떻게 수정하는지가 ARM 기반 SoC의 중요한 부분입니다. 그래서 같은 ARM 기반의 SoC라 해도 설계 업체에 따라 성능과 전력이 큰 차이가 있습니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.