IT2010.10.26 09:42

ARM의 새로운 멀티코어 프로세서인 Cortex-A15 로드맵 발표관련




   모바일 프로세서인 스냅드레곤 시리즈를 만드는 퀄컴과 갤럭시S의 허밍버드와 최근 오리온을 출시한 삼성 이외에도 TI(텍사스인스트루먼트), Nvidia 등은 내년도에는 MPCore (듀얼코어 이상) 시장이 본격 열리는 원년이 될것으로 보고 있습니다.  이에 앞서 올해 이들 각 메이커들은 Cortex-A9 MPcore 를 발표 했습니다.  TI 는 OMAP4430/4440 , ST-Ericsson(ST에릭슨)은 U8500/U5500, Nvidia는 Tegra2, 퀄컴은 8x72, 삼성은 오리온을 말이죠. 

 삼성의 갤럭시S가 출시이후 지속적으로 판매를 확대하는 가운데 최근에 또다른 새로운 관심사는  삼성이 내년도에 출시할것으로 기대하는 갤럭시S2 입니다. 갤럭시S2는 2Ghz 의 듀얼코어 프로세서를 장착할 것이라는 루머 때문이기도 합니다. 현재의 갤럭시S 가 싱글코어 1Ghz 인것에 비해면  단순히 산술적으로 2~3배는 넘을 성능이 기대되는 슈퍼폰이 될것이라는 기대 때문입니다.

 그런데 이렇게 스마트폰 하드웨어 성능이 급격히 좋아져야 하는 이유가 있을까요?  이런 새로운 얼리어답터 스러운 얘기를 좋아하는 저같은 경우 주변에 "멀티 코어 모바일 프로세서가 나온데" 라고 하면 일부 반응은 "그런게 왜 필요하지?" 하는 질문을 듣곤 합니다.  그러게요... 그정도 씩이나 왜 필요 할까요?

곰곰히 생각해 봅니다. 그리고  PC시장의 지난 변화도 같이 비추어 봅니다.

그리고 생각해보면 제가볼때는 크게 4가지 이유가 있습니다. (이유를 말하기 앞서 모바일 프로세서가 단지 스마트폰용만을 의미하는 것은 아닙니다. 넷북 등에서도 활용되긴하지만 여기에서는 스마트폰만을 생각해 봅니다.)

1) 멀티 쓰레드 앱의 등장과 성장.
  흔히 애플의 아이폰 OS인  iOS3 까지는 싱글 태스킹만 지원했다고 합니다. 그리고 iOS4 부터는 멀티태스킹을 지원하고 백그라운드 프로세싱을 한다고 하죠. 이번 10월에 발표된 MS 윈도우폰7의 경우에는  멀티태스킹은 지원되지 않을거라고 합니다.  안드로이드 OS는 기본적으로 서비스라는 멀티태스킹을 위한 개념이 있습니다.  멀티태스킹과 멀티쓰레딩 뭐가 다를까요?  쉽게 말해서 멀티태스킹은 프로그램이 여러개가 동시에 실행되는 개념입니다. 반면 멀티 쓰레드는  하나의 프로그램안에서 동시에 여러 처리가 진행되는 것입니다.  CPU 입장에서 볼때는 멀티태스킹과 멀티쓰레드 모두 동시에 처리해야할 작업인것은 다를바가 없습니다. 단지 메모리 영역에 대한 구분정도가  다를 뿐입니다. 즉 윈도우폰7이 싱글 태스킹만 지원한다고 해서 항상 1개의 일만 한다는것은 아니라는 겁니다. 

  우리가 쉽게 예를 찾아보면 내비게이션 프로그램의 경우 자동차가 움직이게 되면 지속적으로 GPS 정보를 수신하는 일이 필요하고, 수신된 정보에 따라 화면에 그리게 되고, 그리고 경우에 따라서는 사용자의 입력도 받아서 처리해야 합니다.  이러한 작업들을 단일 일련의 작업으로만 처리할수도 있지만 이렇게 되면 개발하기도 어렵고, 응답성도 매우 떨어지게 됩니다. 즉 여러 쓰레드로 동시(처럼)에 동작해야 하죠.(프로그래머가 멀티쓰레드로 인식하여 만들지 않더라도 사실은 UI  처리등이 멀티쓰레드로 동작합니다.) 

  물론 지금 현재도 내비게이션앱등이 잘 구동되듯, 싱글코어 만으로도 멀티쓰레드를 잘 처리해주고 있습니다. 그러나 내비게이션도 점차 고성능이 요구될것입니다. 왜냐면 다음의 로드뷰나 네이버의 거리뷰같은 실사를 내비게이션에 실시간 3D로 매핑하거나, 현재 진행되는 광고를 내비게이션에 뿌려주거나, 교통정보도 지금보다 훨씬 지속적으로 수신하여 반영한다거나 하려면 현재의 프로세서 코어만으로 이를 채우기에는 어려움이 있습니다.

2) 고성능 모바일 게임
   모바일 게임도 이제 네트워크로 묶이고 있습니다. 애플은 게임센터라는 네트워크 게임을 위한 온라인시스템을 마련했고, MS는 윈도우폰7을 위해 이미 보유한 XBox Live를 활용할 계획입니다. 게다가 MS는 XBox 로 하던 게임을 윈도우폰7에서 연결 구동시키려는 노력까지 하고 있습니다.  스마트폰이 모바일 게임기시장까지  가져간다는것은 이제 사실상 현실이 되었습니다.  (애플 아이폰용 게임이 소니 PSP용 그것 보다 많이 팔렸다는 사실은 이제 오래된 얘기입니다.)
   스마트폰 게임도 퍼즐이나 캐쥬얼 위주에서 벗어나 고성능 3D처리를 요구받고 있습니다. 거기에 온라인으로 멀리떨어진 상대와 대전도 해야 하죠. 이러한 상황에서 모바일 멀티코어 프로세서의 등장은 당연해 보입니다.

3) 고성능 모바일 웹. HTML5 적용 확대. 빠른 자바스크립트(Javascript) 처리능력이 요구되고 있다.
  야후나 구글메일은 HTML5 로 만들어져있습니다. 야후 모바일 웹메일 (관련글 보기) 같은 경우에는 웹상에서 동작하는 움직임이 매우 세련되서 마치 그냥 앱 같기도 합니다.  HTML5는 다양하게 활용되고 있습니다. 애플의 앱스토어 같은 HTML5 웹스토어가 있고 (관련글 보기). HTML5 그림그리기 웹앱도 있습니다.
(관련글 보기) . HTML5 라는 웹 표준은 새로운 태그(Tag) 추가되기도 했지만 자바스크립트가 있어서 보다 동적이고 어플리케이션 다운 처리가 가능해졌습니다. HTML5 + 자바스크립트 의 조합은 새로운 모바일 스마트폰OS가 등장할 수 록 점점더 필요성을 더해가고 있습니다. 다양한 스마트폰을 통합할 유일한 수단은 웹이기 때문이죠.  하지만 자바스크립트는 매우 느린 처리를 하는 프로그래밍 수단입니다.  그만큼 강력한 CPU의 프로세싱을 요구합니다. 물론 자바스크립트 자체는 아직 멀티쓰레드를 지원하지 않습니다. 하지만 자바스크립트와 네이티브코드가 같이 동작하는 하이브리드 앱인 경우에는 얘기가 다르죠. 그리고 웹브라우져에서 띄우는 단일 웹앱 이더라도 웹브라우져 말고 다른 프로그램이 구동되는 경우도 있으므로 멀티코어는 많은 도움을 줄 수 있습니다.

4) 모바일 가상화의 필요성
  이제 진정 모바일에서 필요한 문제인가를 고민할 거리가 나왔습니다. 바로 가상화이죠.  가상화는 실제 하드웨어 시스템은 하나 이지만 가상으로 여러개의 가상 시스템을 제공하는 기술입니다. PC의 경우에는 VMWare, VirtualBox, Vrtual PC,  Mac은 패러럴즈(Paralles),VMWare Fusion 등이 있습니다. 이들은 호스트 OS 위에 가상 머신을 구동하여 윈도우즈에서  리눅스나  Mac OS를 띄우기도 하고 반대로 Mac에서 PC OS를 띄울 수도 있습니다. 물론 호스트OS와 같은 OS를 띄울수도 있습니다. 메모리가 허용하는한 거의 무한대로 말이죠.

  모바일에서는 이러한 가상화가 왜 필요할까요? 사실 PC와 활용 방법은 크게 다르지 않아 보입니다. 저는 오히려 더 많은 활용성을 같고 있다고 봅니다.

그럼 모바일 가상화 필요이유를 찾아보겠습니다.

  4-1) OS별 여러 앱 스토어 시장을 활용한다.
애플 iOS는 앱스토어, 구글 안드로이드는 안드로이드 마켓, 윈도우폰7은 MS 마켓플레이스가 있습니다. 하지만 이들은 스마트폰 OS별 사용구분히 확실합니다.  이들을 통합적으로 단일 스마트폰세서 활용할 수 있다면 어떨까요..? 그것도 동시에 구동하면서 말이죠. (물론 OS가 단독배포가 되지 않는 다는 문제를 해결해야 하겠지요. 그전에는 적어도 Linux는 추가로 구동 가능할 겁니다. )

모바일 가상화 이미지



 4-2) 업무용과 개인용
 스마트폰이 발달하면서 스마트워크라는 이름이 등장하고, 그야말로 스마트폰은 이제 전화기능을  부가기능으로 만들어 버렸습니다. 스마트폰으로 메일을 보는것은 물론 사내 ERP까지 이용하는 시대입니다. 하지만 여기에 내가 하고 싶은 게임을 깔고 다양한 나만의 앱을 설치해서 사용하기에는 부담스러울 수 있습니다. 내맘대로 지웠다 만들었다 하고 싶은 공간을 마련할 수 도 있는거죠.

4-3) 보안
  4-2 에 연장 이라고도 할수 있는데요.  안드로이드 OS 처럼 멀티태스킹이 강력한 스마트폰OS에는 해킹의 위험이 항상 있습니다.물론 다른 스마트폰OS라고 안전하다고 할 수 는 없습니다. 특히나 iOS의 경우 탈옥을 하고 싶다면요. 흔한 말로 순정상태의 영역과 내맘대로 영역을 나누어 사용가능하다면 보안문제를 해결하는 또 다른 솔루션이 될 수 도 있습니다.

아래는 VMWare 사가 생각하는 모바일 가상화를 통한 보안 이미지 입니다.






4-4) 노트북의 대체
  저는 이 마지막이 좀 더 멋있어 보입니다. 많은 소비자들이 PC로 하는 대부분이 작업이 인터넷이라는데 착안해서  넷북이라는 저가형 노트북이 등장했었습니다. 이러한 넷북역할이 스마트폰으로 충분히 대체 가능하다고 봅니다.  예전 후지쯔에서 나온 U1010 이라는 초소형 노트북이 있습니다. 자판이 너무작아 한번에 버튼 한개만 누르기도 어려웠죠.  이러한 불편함 때문에 도킹스테이션이란걸 판매했습니다. 도킹스테이션에 장착만 하면 넉넉한 키보드와 모니터를 쉽게 연결하여 사용할 수 있어서 정해진 자리에서 사용할때는 마치 PC쓰듯이 활용이 가능했습니다.  스마트폰 역시 이러한 것이 가능할 것으로 보입니다. 이미 스마트폰에는 HDMI 출력이 가능하죠.  여기에 키보드만 연결할 수 있도록 하는 스마트폰용 도킹스테이션이 마련되면 사무실에 자리에서는 스마트폰에서 PC OS를 부팅해서 기존 윈도우를 구동해서 일반 업무도 가능하게 되는 것입니다 그리고 가상화로 스마트폰OS 역시 동시에 구동되기 때문에 사용중 전화를 받을 수 도 있겠지요. (당연히 PC는 계속 사용중 입니다. 블루투스 이어폰으로 통화하면 되겠지요?) 이러한 것은 모바일 가상화가 가능할때 할 수 있는 일입니다.

델의 도킹스테이션


위와 같은 도킹스테인션에 스마튼폰을 꽂아 사용이 가능하다면 참으로 재밌을것 같습니다.



   ARM은 A15 라는 코어 개발을 발표하면서 해당 아키텍쳐가 완성될 즈음에는  모바일 프로세서에서 16Core 까지도 가능할것이라고 했습니다.  그리고 이미 듀얼코어 ARM 프로세서들은 넷북용 프로세서로 활용을 계획하고 있습니다. 성능은 이미 넷북급이라는 것이죠.

   지금의 IT 비즈니스는 하드웨어보단 소프트웨어가 리드하는 시대입니다. 얼핏 고성능 모바일 프로세서가 스마트폰용 소프트웨어보다 앞서가는것같지만  사실은 기다리고 있다고 보는 편이 맞을 겁니다. PC용 프로그램이 스마트폰에서도 구동 될 수 있기 때문이죠.  그리고 PC와 스마트폰이 구분되지 않은 시대가 올것이기 때문입니다.



아래는 VMWare 에서 구동되는 모바일 가상화 영상입니다.

 윈도우CE와 안드로이드OS가 구동 되고 있네요. 흥미롭습니다.
Posted by 퍼니로거 즐건록