WWDC 2015 최대의 뉴스, 비트코드와 애플의 CPU 정책

WWDC 2015 최대의 뉴스, 비트코드와 애플의 CPU 정책

WWDC 2015 최대의 뉴스, 비트코드와 애플의 CPU 정책

Apple’s Bitcode Telegraphs Future CPU Plans

지난 2015 WWDC에서 알아차린 사람은 거의 없지만 가장 큰 발표가 하나 있었다. 화요일 Platforms State of the Union세션에서, 웬커(Andreas Wendker)가 비트코드(Bitcode)에 대해 짧게 언급했기 때문이다. 그는 비트코드가 이미 제출된 앱에 적용될 미래의 컴파일러 최적화를 위한 하나의 기회라 묘사했고, 비트코드가 있으면 다시 제출할 필요 없이 앱이 미래 CPU 기능 지원을 추가할 수 있도록 보장할 수 있다고 짧게 언급했었다.

애플은 이 언급이 마치 또 하나의 지루한 앱스토어 사양 발표 중 하나인 양 몰래 지나쳤지만, 이게 그렇지가 않다. 왜인지 알아보자.

 

LLVM

비트코드는 LLVM 컴파일러의 Intermediate Representation (IR) 인코딩이다. LLVM은 GCC 컴파일러로부터 고통스럽게 배운 교훈을 말미암아 디자인한 우아한 컴파일러로서, 과도한 단순화에 집중하기 위해, 프론트엔드가 앱 작성에 사용되는 여러가지 언어를 이해할 줄 알며, 백엔드는 다운로드하여 돌리는 앱의 실행 버전을 어떻게 생산하는지를 이해한다.

그리고 프론트엔드와 백엔드 사이에 LLVM IR이,이제는 비트코드가 놓여 있다. LLVM은 앱의 소스코드를 비트코드로 바꿔서 비트코드를 실행 가능한 앱에 집어 넣는다. 이 디자인은 대단히 단순하게 새로운 언어(프론트엔드) 지원을 추가하고 새로운 CPU(백엔드) 지원도 추가할 수 있다. 비트코드 자체는 돌아가는 코드가 아니지만, 지원되는 모든 CPU 아키텍처로도 전환될 수 있으며, 앱을 제출할 때 존재하지 않던 CPU도 여기에 포함된다.

워치 SDK 앱은 처음부터 비트코드로 제출돼야 하며, iOS 9용 앱 제출 또한 비트코드가 초기 설정이고, 앞으로는 의무화될 것이다. 오에스텐은 언급되지 않았으나 트렌드를 좇을 것으로 보인다.

 

Chip Design

그렇다면 CPU는 또 무슨 이야기란 말인가?애플 CPU 디자인 능력에 대해 우리가 알고 있는 바는 몇 가지 안 된다.애플은 최근 들어 여러 CPU 기업들(PA Semi(2008), Intrinsity(2010), Anobit(2012), Passif Semiconductor(2013))을 인수해왔으며, 아마 한 두 곳 정도는 애플의 레이더를 비껴갔을 가능성이 있다. 애플은 인수한 기업들을 애플 자체의 하드웨어 엔지니어링에 투입하여 업계 선도적인 ARM CPU를 작업해 왔다. 한편 애플워치의 S1 보드는 역시나 상당한 저전력에 (아이패드 및 아이폰 CPU 기준으로 볼 때) 매우 느린 커스텀 디자인으로서 뭣보다 배터리 수명을 염두에 둔 디자인이다. S1을 만들 때, 엔지니어들은 분명 S2나 S3 등 후속작에서 수정할 약점을 적어 둔 로드맵을 만들어 놓았을 것이다.

S1의 CPU가 상당히 형편 없을 가능성이 꽤 있다는 이야기이다. 물론 애플이 이런 식으로 발전 경로를 택하는 사례가 처음은 아니다. 오리지널 아이폰 또한 기본적으로는 삼성 DVD 플레이어 프로세서를 채용했었다. 너무나 파워가 적었기 때문에 아이폰이 돌아가는 것 자체가 기적일 정도였다. 다만 소프트웨어에서의 영웅적인 노력 덕택에 아이폰은 충분히 잘 돌아갔다. 그리고 제일 성공적인 제품군의 기반을 닦아 놓았다.

첫 CPU가 형편없다는 비판이 사실이라고 가정해 보자. 칩 디자이너들은 S2 칩을 훨씬 개선 시킬 방법을 알고 있을 테지만, 기존 소프트웨어를 깨뜨릴 정도로 급진적인 디자인 변화를 만들어야 함도 알고 있을 것이다. 애플이 아이폰 1.0의 사례대로 다음 하드웨어 세대가 나올 때까지 SDK를 개방하지 않는다면 서드파티 개발자들은 계속 찬밥 신세라는 얘기일까? 애플이 제1세대 앱 전체를 깨뜨리고 개발자들이 다음 세대 워치용 앱을 다시 제출하도록 강요할까? 실질적으로 불리할 일 없이 마술봉과 같은 제3의 선택이 있다면 어떨까?

 

Magical

비트코드는 바로 그 마술봉이다.애플워치는 ABI 호환의 족쇄에서 완전히 벗어나는 최초의 중요한 플랫폼이 될 전망이며, 비트코드 덕분에 S2는 애플이 마음대로 아키텍처를 디자인할 수 있을 것이다. 심지어 ARM일 필요도 없다(다만 애플의 투자를 고려할 때 ARM 계열이 될 것으로 보인다). 그리고 S3이 정말 미친 칩으로 나온다면, 애플의 컴파일러 엔지니어들은 그냥 앱스토어에 새로운 LLVM 백엔드를 끼워 넣으면 된다. 개발자들과 사용자들은 아무 것도 몰라도 된다.

iOS도 비트코드를 사랑하게 될 것임을 잊지 말도록 하자. 오늘날 iOS 앱은 100만 가지가 넘기 때문에 극도로 다른 아키텍처로의 변환은 적어도 수 세대가 필요하다. iOS 9 앱 제출에 있어서 비트코드는 옵션이기 때문에, 올 가을 제품에 들어갈 A9 프로세서는 개선 정도가 될 것이며, 내년의 A10 또한 기존 ARM64 ABI에 묶여야 할 필요가 있다.

하지만 A11이라면?고성능 칩 디자인 전문가들 모두가, 박사급 전문가 백 명이 칠판에 개선점을 가득 써 놓은 광경을 상상해 보시라. 이제 밥 맨스필드(Bob Mansfield)(그를 기억하시는지?)가 그들에게 호환성 따위는 잊으리 말하는 광경도 생각해 보시라. “어떻게 하면 더 나아질지만을 신경 써 보시오.”

 

What About Bob

밥은 그동안 업계 다른 기업들과 자웅을 겨룰만 한 실리콘 팀을 조용히 만들고 있었다.밥은 ARM 아키텍처 라이선스[1]가 있는 15개 기업 중 한 곳에서 일하면서, 어떻게든 ARM을 수정하고 확장토록 백지수표를 위임했다. 그리고 밥의 CPU는 단 한 고객만 만족 시키면 된다. 그의 이력을 잊지 말자.

애플에 들어가기 전, 밥은 1999년 애플이 인수한 Raycer Graphics의 엔지니어링부 부사장이었다. 이전에 밥은 SGI의 수석 부장이었으며 여러 가지 마이크로프로세서 디자인 개발 책임자였다.

그동안 모든 장비의 선을 잇고 나사를 조이는 등, 애플의 전체 하드웨어를 그가 운영했지만 그의 뿌리는 원래 최신 실리콘 디자인에 있음을 염두에 둬야 한다. 말그대로 그 어떤 기업도 대규모로 칩을 생산할 입장이 아닌, 그런 칩을 만드는 것보다 더 눈에 띄는 업적이 어디에 있단 말인가.

 

One More Thing…

식은땀은 흘리지 마시길.이번 원 모어 씽은 여러분 (대부분의) 이목을 끌지는 않을 것이다. 앱스토어에 있는 오에스텐용 비트코드를 볼 날이 온다면, 아마 밥의 팀이 맥에서 돌릴 만한 ARM 계열의 칩을 만들었음이 거의 확실한 날로 봐도 좋다. 이번 주 오에스텐용 Metal의 발표가 이미 ADM와 NVIDIA의 뜨겁고 부담스러운 컴퍼넌트를 버릴 배경을 깔아 놓았음을 의미한다. 아이패드와 아이폰용 1급 그래픽 하드웨어를 위해서이다.

맥 앱스토어 앱 제출에 쓰일 오에스텐용 비트코드는 새로운 플랫폼의 등장에 대한 보증이다. 당연히 스토어에 없는 앱의 하위 호환성 문제까지 해결하지는 않을 테며, PowerPC용 Rosetta와 같은 호환 해결책이 필요할 일이다. 그러면 맥 앱스토어용 앱이 아닌 예전 앱은 고유의 샌드박스로 들어갈 수 밖에 없으며, 앱스토어의 제한으로 말미암은 보안 혜택을 제공할 것이다.

이전에도 이 정도로 큰 움직임을 보였던 적이 있다.예전 WWDR은 개발자들에게 CodeWarrior나 다른 IDE로부터 Xcode로 이전해달라 간청했던 적이 있다.당연히 집단적인 반발이 있었으며, 특히 기존 코드 기반이 상당한 경우가 심했었다. 그러나 스티브가 인텔 이주를 발표했던 날 오전에 간청의 이유가 분명해졌다. Xcode로 미리 이주했던 개발자 대부분은 “인텔 체크하는 곳을 선택해서 재컴파일 하시오”라는 애플의 주장에 바로 대응할 수 있었다. 하지만 그러지 못한 개발자들은 게임에 계속 임하기 위해, 이전의 빌드 환경을 GCC/Xcode로 이주하는 기나긴 여정을 거쳐야 했다.

이제 아셨으리라. WWDC15 최대 뉴스는 아직 헤드라인에 오르지도 않았다는 사실을 말이다.

이 정보가 맞다면, 수요일 아침 세션에서 비트코드에 대한 언급이 월요일과 목요일 사이에 사라진 이유를 누군가 애플에게 물어볼 수 있을 듯 하다.

Session 404 mysterm edit
[1] Thanks to @ekeyser for poining out the original ARM Architecture Licensee count was off. Corrected June 16.

번역 : 위민복

https://medium.com/@InertialLemon/apple-s-bitcode-telegraphs-future-cpu-plans-a7b90d326228