※ 이 글은 impress watch 에 실린 컬럼을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.

최근의 스마트폰/태블릿용 SoC 제1회

원문 : 今どきのタブレット/スマートフォン向けSoC 第1回

이번회부터 시작되는 「1개월 집중강좌」는, 매월 정해진 테마에 대해서 1개월(4회 정도)에 걸쳐 파고들면서 깊게 이해하는 코너입니다.

첫회가 되는 이번달은 「태블릿/스마트폰용 SoC」에 대해서 오하라 유스케(大原雄介)씨가 해설해주시겠습니다. 요즘은 스마트폰, 태블릿에 SoC가 널리 사용되어 아주 가까운 존재가 되었습니다. 따라서 여러 SoC의 자리매김이나 각 벤더의 방향성 등 SoC 전반의 현재 동향을 4회에 걸쳐 보내드리겠습니다. (편집부)


애초에 왜 ARM 아키텍처인가

최근의 스마트폰/태블릿 대상 프로세서의 태반은 ARM 베이스다. 실제로 태블릿은 넘어가더라도, 스마트폰에 관해서는 국내를 보아도 전세계를 보아도 ARM 이외의 아키텍처를 채용한 케이스는 매우 적다. 왜 이런 상황이 되었는가, 그 이유는 역사적 경위라고 보는 견해가 강하다. 단적으로 이야기하자면 Nokia의 「Symbian OS」가 ARM 베이스였으니까라고 할 수 있는데, 좀 더 제대로 설명할까 한다.

초기…라고는 해도 1990년대 중반까지의 이야기지만, 당시의 휴대폰 내부를 대충 이야기하면 그림 1처럼 되어있었다. 아직 아날로그 방식이었던 시대였기에 간단해도 상관없었다고 할 수 있겠다. UI용 프로세서라는 것은 극히 간단한 액정표시나 키패드, 전화번호부 정도를 처리하는 것이었다. 32bit 프로세서가 아니라도 충분히 커버할 수 있었고, 실제로 16bit의 마이크로컴퓨터을 사용하던 제품도 있다(국내의 제품은 대체로 32bit 프로세서였던듯 하지만, 모두 그랬는지까지는 필자가 파악하지 못했다).

그림 1. 초기의 휴대폰 구성

하지만 디지털 통신으로 바뀌면서, 모뎀측에 통신처리를 담당하는 프로세서가 필요하게 되었다. 그래서 모뎀과 조합한 「베이스밴드 프로세서」라고 불리는 것이 등장한다. 이것은 ARM9 클래스의 CPU 코어에, 경우에 따라서는 DSP 등을 조합하여 실장된 것이 많았다. 이런 케이스에서는 화면의 표시나 키패드 제어는 베이스밴드 프로세서가 담당했다.

그림 2. 디지털 통신으로 전환된 무렵의 휴대폰 구성

하지만, 점차 휴대폰 위에서의 애플리케이션 성능이 요구되면서, 이것만으로는 따라갈 수 없게 되었다. NTT 도코모의 i모드가 그 대표적 예다. 또 카메라 기능이 널리 탑재되게 된 것도 이 무렵이라고 기억하고 있는데, 이런 기능들의 처리는 베이스밴드 프로세서에만 맡겨놓을 수 없게 되어 「애플리케이션 프로세서」라는 것이 새로 탑재되게 된다.

그림 3. 더 많은 성능이 요구된 결과 애플리케이션 프로세서가 등장

당초에는 여러 메이커가 이 애플리케이션 프로세서에 손을 댔다. 국내만 봐도 히다치(현 르네사스 일렉트로닉스)의 「SH」시리즈나, 마츠시타전기산업(현 파나소닉)의 「UniPhier」(유니피에)가 있다. 국외로 눈을 돌리면 여기에 MIPS 베이스의 프로세서가 탑재된 케이스도 있다.

하지만, 최종적으로는 이것들이 모두 ARM으로 통일되게 된다. 가장 큰 이유는 이런 휴대폰 OS가 개발기간등의 관계로 Symbian OS로 집약되어 갔기 때문이다. Nokia는 자사의 휴대폰만이 아니라 다른 회사의 휴대폰용으로도 Symbian OS를 적극적으로 OEM 공급하였는데, 이것을 이용하기 위해 필연적으로 CPU 아키텍처가 ARM으로 좁혀지게 된 것이다.

한번 마켓 쉐어를 잡으면, 여기에 진 아키텍처는 점점 쇠퇴해간다. 반면, 쉐어를 잡은 아키텍처가 점점 시장을 과점화하는 모습은 휴대폰에서도 현저하게 나타났으며, 그 결과 (초대 iPhone이 등장하기 직전인) 2006년에 Symbian OS(와 ARM)의 마켓 쉐어는 압도적이었다. 지역에 따라 다르지만, 2006년 당시의 휴대폰용 OS는 "북미 이외는" Symbian 계열이 6할 이상, 특히 동남아시아 등에서는 90%를 훨씬 넘었으며, 일본이나 중국에서도 6할이라는 수치였다.

북미가 특별했던 것은, Windows CE 베이스의 휴대폰에 더해 RIM(Research In Motion)의「BlackBerry」라는 유력한 제품이 있었기 때문이다. 하지만 BlackBerry나 Windows CE 베이스의 제품도 대부분 ARM 베이스의 프로세서를 채용하고 있었기에, 이미 휴대폰용으로는 승부가 결정난 것이나 마찬가지였다.

이후에는, Apple에 의한 iPhone의 투입과 Google에 의한 Android의 투입 등을 거쳐 현재에 이르게 되는데, 어느 것이나 ARM 베이스의 SoC라는 것은 이미 알고 있을 것이다. 실제로 SoC를 만드는 쪽에서도, SoC를 사용한 스마트폰을 만드는 쪽에서도 어지간한 이유가 아니면 아키텍처를 변경할 이유가 없다. 또, 아키텍처가 같은 쪽이 개발환경이나 소프트웨어 자산을 살리기 쉽다. 물론 ARM 측도 트렌드에 맞춰 유연하게 아키텍처를 진화시켜왔기에, "아키텍처를 변경할 어지간한 이유"가 생겨나지 않은 것도 사실이다.

ARM 아키텍처의 변천

그럼, 그 ARM 아키텍처가 얼마나 대단한가…하면 솔직히 말해 명령셋이 딱히 대단하거나 하진 않다. ARM v8의 64bit 명령에서는 상당히 깔끔한 명령체계가 되었지만, 32bit 명령은 립서비스라도 깔끔하다고는 하기 힘들다.

이에는 이유가 있는데, 원래 ARM v1(초대 ARM1 코어)가 명령수나 성능이나 아슬아슬했던 탓에 약간 변칙적인 구조를 채용했기 때문이다. 그것이 그대로 현재까지 이어져 내려오게 된 것이다. 이런 점은 「8080」의 명령체계를 그대로 이어받은 현재의 x86이나 x64에도 할 수 있는 이야기이다. 명령체계가 깔끔하다 운운하는 것은 취향이라고 해야할지 주관이 들어가는 부분이지만, 설계시점에 명령셋에 유연함이 있던 「MIPS」나 「SPARC」쪽이 명령체계가 깔끔하다고 생각한다.

무엇보다 깔끔하면 성능이 좋은가하면 그런것도 아니다. 애초에 요즘과 같이 명령을 내부변환함으로써 복수의 RISC 명령으로 분해하여 처리하는 방식이 주류가 되면, 명령셋 그 자체는 그다지 성능에 영향을 미치지 않는다고 해도 된다. 오랫동안 휴대기기나 소비전력이 낮은 임베디드 기기가 타겟이었기도 하고, 절대적인 파워 버짓(Power Budget)을 낮게 억누르고 그 안에서 성능개선을 꾀하는 것에 노력해온 것이 ARM의 강점이었으며, 이것을 회로기술에 살렸다. 단, 다른 아키텍처와 비교해서 크게 성능면에서 차이가 나면 앞서 이야기한 "어지간한 이유"가 되어버리므로, 트렌드를 파악하면서 이에 착실히 따라왔다.

그 ARM 아키텍처와 대표적인 코어를 묶은 것이 그림 4이다. 아무래도 ARM v5 이전의 아키텍처는 현재에는 거의 사용되지 않으며, ARM9를 포함한 ARM v6이 최저 레벨이 되었다.

그림 4. ARM 아키텍처와 대표적 코어

이에 기반하여 개발된 ARM11은 초대 iPhone에 채용되기도 하며, 최근에는 마이크로컴퓨터보드 「Raspberry Pi」에도 ARM11이 내장되는 등 아직도 널리 이용되고 있다. 기본적인 명령셋은 그 이전의 ARM v5까지와 크게 다르지 않지만, 「Thumb-2」라고 불리는 축소명령셋(명령 그 자체는 32비트지만, 물리적인 명령포맷을 축소하여 사이즈를 32bit 미만으로 만든 것)을 탑재한 것이 큰 차이다. 또 뒤따라 멀티프로세서 대응명령 등이 추가되었는데, 이것은 ARM과 NEC 일렉트로닉스(현 르네사스 일렉트로닉스)와의 공동개발로, ARM11을 베이스로 한 멀티프로세서 구성이 가능해진 것과 관계가 있다.

ARM v6과 ARM11 코어는 널리 사용되었지만, ARM v6 그 자체는 둘째치고 ARM11코어는 기본적으로 싱글 이슈의 인 오더 형(로드/스토어 쪽에서는 일부 아웃 오브 오더 형도 실장)으로, 동작주파수도 수백 Mhz 정도(초대 iPhone에 탑재된 것도 620Mhz 구동)이었기에, 2004년 경이 되면 아무래도 성능면에서 부족함이 보였다. 이때 투입된 것이 ARM v7A 아키텍처와 Cortex-A8 코어다.

이 세대에서 ARM은 아키텍처를 애플리케이션용(ARM v7A), 실시간용(ARM v7R), 마이크로컨트롤러용(ARM v7M) 3개로 나누었다. 이 머릿글자를 모으면 「ARM」이 되는 것을 노렸다는 걸 ARM은 "공식적으로는" 인정하고 있지 않지만, 뭐 아마 그렇지 않을까. 그건 그거고, 이 ARM v7A에서는 멀티코어 대응에 더해 본격적인 OS(주로 Linux)에 대응한 프로세서 리소스의 가상화, 「NEON」이라고 불리는 SIMD 연산 엔진등도 추가되었다. 또, Java 동작에 맞춰 「Jazelle」라는 Java의 바이트코드를 네이티브 실행할 수 있는 모드가 ARM v6부터 추가되었는데, ARM v7에서는 이것을 확장한 Jazelle RCT(Runtime Compilation Target)이 새롭게 실장되었다.

이 ARM v7A에 처음으로 대응한 것이 2005년의 Cortex-A8로, 인 오더 형이면서도 2명령의 수퍼 스칼라 구성이다. 2007년에는 이것을 아웃 오브 오더화한 Cortex-A9도 투입된다. 또, 당초부터 멀티프로세서를 고려하였으며, 현재에는 Cortex-A9 MP가 널리 이용되고 있음은 주지의 사실이다. 2009년에는 오히려 성능이 낮아도 좋으니 저소비전력/적은 다이사이즈의 제품이 필요하다는 요구에 맞춰 1명령에 인 오더 구성인 Cortex-A5도 투입되고 있다.

이 ARM v7은 실은 2010년에 약간 변경이 있었다. 2010년 8월의 Hot Chips 22에서 처음 발표되었는데, 하드웨어 레벨의 가상화 지원과 LPAE(Large Physical Address Extension)이라는 주소확장이 이루어졌다. 이 LPAE는 x86에서 말하는 PAE와 거의 같은 것으로, 개별 프로세스의 가상 주소 그 자체는 32bit(4GB)로 제한되어 있지만, 시스템 전체에서는 40bit(1TB)로 확장되어 있다. 사양적인 차이는 그 정도지만, ARM 자신은 이 변경 전의 아키텍처와 변경 후의 아키텍처를 나누어 취급하고 있으며, 이 이후에 투입된 코어는 모두 새로운 ARM v7에 준거하게 되어있다.

그 2010년에 발표된 것이 Cortex-A15과 Cortex-A7이다. Cortex-A15는 Cortex-A9의 상위에 해당하는, 3명령의 수퍼 스칼라/아웃 오브 오더 구성이다. Cortex-A7은 Cortex-A5의 후계가 되는 코어이지만, 큰 차이는 여기서 big.LITTLE이라는 구성을 취할 수 있다는 것이다. 2013년에는 Cortex-A7과 A15의 중간정도의 성능이 되는 Cortex-A12도 개발되게 된다.

이것과는 별도로, ARM은 2012년에 ARM v8 아키텍처를 발표, 64bit 로 이행함과 동시에, 이에 대응한 Cortex-A57/Cortex-A53의 양 코어를 발표하여 현재에 이르게 된다.

ARM 기반 SoC의 동향

그럼, 이것을 사용하는 SoC 벤더의 상황은 어떻게 되었을까. 앞서 적은대로, 1990년대는 Nokia가 가장 큰 쉐어를 쥐고 있었지만, 이에 과감하게 뛰어든 것이 Qualcomm이다. CDMA 방식의 총괄자라고 하면 알기 쉬우려나. 일본을 예로 들면 au가 전면적으로 채용한 것으로 유명하다.

이에 이어 2000년 전반에 여러 반도체 메이커가 휴대폰/스마트폰용으로 SoC를 투입했다. 예를 들어 TI(Texas Instruments)는「OMAP」패밀리를 팔았으며, Freescale은「MXC」라 불리는 SoC(정확히는 MCM:Multi Chip Module)을 개발했다. Intel도 「Manitoba」라 불리는 XScale 베이스의 SoC를 개발한다. 이 외에 Ericsson도 휴대폰용 칩을 제공했지만, STMicroelectronics과 함께 ST-Ericsson이라는 합자기업을 만들어 이곳으로 제품이나 개발을 이관한다.

국내에서도 주요 휴대폰 벤더는 자사에서 SoC를 개발했다. Android 등장 이전에는 iOS를 제외하면 사실상 Symbian OS밖에 없었으므로 ARM 베이스의 SoC를 만들어, 여기에 Symbian OS를 이식한 것이다. 물론 자사에서 OS까지 손대는 곳도 있었지만 괜찮은 결과가 나오지 않았다는 것은 모두가 아는 대로.

자, 이런 움직임은 아까 보여준 그림 3의 구조가 성립되는 한 문제가 없었다. 하지만 실제로는 그림 5를 거쳐 그림 6과 같이 변화해간다. 그 과정에서 점점 벤더가 떨어져나갔다.

그림 5. 베이스밴드와 애플리케이션 프로세서의 통합 그림 6. 베이스밴드, 애플리케이션 프로세서, 모뎀의 통합

우선 소형화와 저가격화가 진행된 결과, 베이스밴드 프로세서와 애플리케이션 프로세서를 따로 두는 것은 실장면적이나 부품원가의 관점에서 경제적이지 못하다는 이야기가 당연히 나오게 된다. 특히 모뎀의 규격이 2.5G에서 3G를 거쳐 3.5G(HSUPA/HSDPA), 3.9G/4G(LTE)로 진화해가면서, 이것을 제대로 따라가는 모뎀이나 베이스밴드 프로세서를 내놓을 수 있는 메이커가 줄어들어 갔다. 가장 확연한 예시가 TI로, 동사의 OMAP 그 자체는 널리 쓰여졌지만 모뎀 그 자체를 갖고 있지 않아 타사(딱잘라 말하면 Qualcomm)에서 모뎀칩을 구입해야만 했다. 그렇게 되면 휴대기기 벤더는 OMAP 프로세서와는 별도로 Qualcomm의 모뎀을 구입해야할 필요가 있으며, 부품값도 더 들고 실장면적도 늘어난다. Qualcomm의 Snapdragon 시리즈를 사용하면 모뎀 내장 타입도 있고, 모뎀을 빼놓는 경우에도 가격은 싼 편이다. 그렇다는 것은, TI가 Snapdragon에 대항하려면 모뎀분만큼 가격을 내리지 않으면 대항할 수 없다는 소리가 된다. 당연히 이에 따라 수익성은 맹렬히 내려간다.

이런 수익성의 악화에 따라 Intel이나 Freescale은 이른 타이밍에 휴대폰용 SoC의 개발을 포기해버렸고, TI도 마찬가지다. ST-Ericsson의 경우 모뎀의 개발비용을 흡수하지 못하고 2013년에 회사를 청산하고 만다. Nokia에게 모뎀부문을 매수하면서 Broadcom에 매각되어 버린 르네사스 일렉트로닉스도 마찬가지다.

그렇다고 해서 「Qualcomm의 단독승리인가」하면 당연히 거기서 기회를 엿보는 메이커도 있기 마련, 다음회부터 그런 사정을 개별적으로 소개해갈까 한다.

+ Recent posts