기본 콘텐츠로 건너뛰기

ARM 에 대한 잡설 2





 4. 인텔의 ARM CPU 들


  본래 인텔하면 x86 CPU 들이 가장 주력 제품이라고 할 수 있다. 그러나 그렇다고 인텔이 만든 칩이 모두 x86 이었던 것은 아니다. 인텔은 자체적인 RISC 프로세서 라인을 이전부터 보유하고 있었는데 1997년 DEC 로 부터 StrongARM 을 인수하면서 자신들의 RISC 프로세서인 i960/i860 라인을 대체하려고 계획했다.



(인텔의 RISC 칩인 i 960   CCL에 따라 복사 허용 저자 표시   저자 Konstantin Lanzet)


 과거 i960 등의 인텔 RISC 프로세서는 AMD 의 AMD 29000 등과 경쟁하는 관계에 있었으나 점차 아키텍처가 노후화 되어 교체가 필요해졌다. 그런데 마침 스트롱 암이 매물로 나와있던 것이다. 또 ARM 아키텍처가 이미 널리 사용되고 있을 뿐 아니라 이미 개발된 것을 구매하는 것이 보다 저렴했기 때문에 인텔은 타사의 아키텍처를 구매하게 되었다.


 한편 ARM 역시 5세대 아키텍처 (ARMv5) 를 개발하고 있었으므로 인텔과의 협력하에 차세대 스트롱 암 프로세서를 개발하게 된다. 인텔은 이렇게 개발한 SA - 2 프로세서를 시장에 XScale 이란 명칭으로 2000년 발표했다. 주요 타겟은 각종 콘트롤러 및 휴대폰과 PDA 시장이었다.


  과거 PDA 및 2000년대 초반에 스마트 폰 써보신 분들은 아시겠지만 XScale 은 이 시장에서 꽤 선전했다. 또 네비게이션 등에도 탑재되어 사용되었다. 주 운영체제는 윈도우 CE 계통 이었다. 모든 Xscale 프로세서는 인텔의 130/180 nm 공정에서 제조되었으며, 1,2 세대의 경우 각각 32 KB 씩 데이타 캐쉬 및 인스트럭션 캐쉬 메모리를 가지고 있었다. 3세대의 경우 512 KB L2 통합 캐쉬를 지녀 칩이 제법 거대해졌다.


 SXcale 프로세서들의 제품명은 PXA 라는 명칭이 붙었다. 주요 제품은 다음과 같다.

 PXA 210/250/255 :  PXA 210 은 휴대폰등의 시장을 타겟으로 등장했다. 클럭은 133/200 MHz 두가지였다. PXA 250/255 은 200/300/400 MHz 제품이 있었으며 2002년에 등장했다.

 PXA 26X : 이 제품군은 PXA 25X 제품과 동일했지만 TPBGA 패키지라는 것을 사용해 53% 정도 크기가 더 작았다.

 PXA 27X : 코드 네임 Bulverde 라고 불린 이 제품들은 제법 널리 쓰였던 것으로 기억된다. 2004년경 출시되었다. 클럭은 312/416/520/624 MHz 으로 당시 ARM 계열 제품중 가장 클럭이 높고 강력한 프로세서였다. Wireless Speed step 이나 Wireless MMX 처럼 인텔의 x86 CPU 에서 가져온 기술들이 채택되었다. 따라서 이 제품들은 ARM 아키텍처이면서도 인텔 MMX 와 일부 SSE instruction set 을 지원하는 특이한 모델이었다. 참고로 PXA 271 및 PXA 272 는 플래쉬 메모리 및 SDRAM 을 같이 장착한 모델들이었다.



(PXA 270 기반 모듈의 모습  eSOM270 Computer on module (based on PXA270 XScale processor  I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide)


 한동안 PXA 27x 계열 프로세서들이 PDA, 스마트폰, 네비게이션 등에서 잘 팔리자 여기에 고무된 인텔은 다시 차세대 XScale 프로세서인 PXA 3xx 패밀리 제품을 출시하기로 결정한다. 코드 네임 Monahans 로 알려진 이 제품은 PXA 27x Bulverde 의 후속작이었다. 인텔은 이 제품에서 XScale 의 클럭을 크게 향상시킬 계획이었다. 그러나 기존의 624 MHz PXA 270 이 800 MIPS 의 성능을 지닌 반면 1.25 GHz 의 Monahans 는 1000 MIPS 정도의 성능을 지녀 클럭에 비해 성능은 약간의 상승 밖에 없던 독특한 프로세서였다.


 하지만 결국 Monahans 는 인텔에서 출시되지 못했다. (참고로 이 칩은 훗날 삼성측이 전지 전능하다고 주장하는 옴니아에 탑재되었다) 그것은 2006년 6월 27일 인텔이 6억달러에 XScale 사업부를 마벨 사 (Marvell Technology group) 에 팔아 버렸기 때문이다. 대체 왜 인텔은 그럭저럭 잘나가던 XScale 사업부를 팔아버린 것일까 ?


 이는 부분적으로 인텔이 개인용 PC 시장 및 비지니스 컴퓨팅, 서버 부분등에 집중하기 위해서였다. 그러나 인텔은 다른 노림수도 가지고 있었다. 그것은 점차 인텔의 반도체 제조 공정이 미세해 짐에 따라 저전력 x86 CPU 를 제작할 수 있게 되었기 때문이다. 이를 발전시켜 나가면 차후 스마트 폰 및 PDA 및 MID 같은 모바일 시장까지 x86 이 진출할 수 있을 것으로 기대되었다.


 만약 x86 이 모바일 시장에 진출할 수 있다면 x86 시장에서 독점적 지위를 지닌 인텔이 모바일 시장에서도 상당히 유리한 고지를 차지할 가능성이 있었다. 무엇보다 현재까지 x86 용으로 수많은 운영체제와 프로그램이 작성되었다는 점도 매우 유리한 조건으로 생각되었다.


 따라서 2006년 XScale 을 매각한 인텔은 차후 개도국 어린이를 위한 저가형 랩톱 시장 및 모바일 시장을 겨냥한 아톰 시리즈와 스마트 폰 시장을 노리는 무어스타운을 준비하면서 자신의 때가 오기를 기다렸다. 그런데 후일 ARM 역시 스마트 폰 및 저가형 넷북 시장을 준비했기 때문에 1980 - 1990년대 이후 10여년만에 ARM vs 인텔의 재대결은 피할 수 없는 숙명으로 찾아오게 되는 것이다.




 5. ARM 의 부흥과 절정



 ARM 은 계속해서 5 세대 아키텍처 그룹인 ARMv5 를 통해 세상의 온갖 휴대폰 칩에 라이센스를 제공했다. ARM 9E 및 ARM 10E, XScale 패밀리들은 모두 ARMv5 에 속하는 형제 칩들로 이 세상 온갖 모바일 기기에 사용되었다. 따라서 ARM 의 이름을 한번도 들어본 적이 없는 분들도 ARM 기반 CPU 를 사용한 경험이 있을 가능성이 높다.


 그러면 얼마나 ARM 기반 칩들이 생산되었을까? 2005년 한해에만 약 16억개의 ARM CPU 가 라이센스 되었다고 한다. 그리고 그 중 10억개가 모바일 폰에 사용되었다고 한다. 시장 조사기관인 아이서플라이에 의하면 2008년 1월까지 100억개의 ARM 칩이 생산되었다고 한다. 그리고 아이서플라이의 예측에 의하면 2011년에는 한해 50억개의 ARM 칩이 라이센스 될 것이라고 예측했다.


 이 정도면 세상 온갖 모바일 기기 및 임베디드 기기에 널리 사용되었다는 말이 무색하지 않을 것이다. 그러면 라이센스를 통해 벌이들인 수익은 얼마 정도일까? 2006년 ARM 의 라이센스 수입은 1억 6410만 달러였다. 이를 칩한개당 비용으로 환산하면 0.067 달러라고 한다. 다른 말로는 6.7센트이고 사실 칩한개당 평균 100원도 안되는 라이센스 비용이라 할 수 있다. (다만 이 비용은 여러가지 다른 라이센스 칩들의 평균을 낸 것이다. 당연히 최신 제품은 더 비싼 가격에 라이센스 될 것이다)


 여기에 ARM 칩 자체가 워낙 작아서 생산 단가가 매우 싸기 때문에 널리 사랑받을 (?) 수 밖에 없었다. 또 작은 RISC 칩이기 때문에 와트 당 성능비가 뛰어난 점도 (성능이 우수해서라기 보다는 전력 소모가 매우 작기 때문이다) 모바일 시장 및 임베디드 시장에서 사랑받는 이유였다.



 ARM 아키텍처의 인기는 6세대인 ARMv6 에서도 식을 줄을 몰랐다. 6세대 칩중 가장 인기 있는 것들은 ARM 11 패밀리였다. 특히 ARM1136J(F)-S 와 이를 개량한 ARM1176JZ(F)-S 가 인기가 좋았다. 이 칩들은 삼성, 엔비디아, 퀄컴, 텍사스 인스트루먼츠, 프리스케일등 온갖 회사들에 라이센스가 된 칩들이다. 참고로 클럭당 성능비는 1.2 DMIPS/MHz 였다. 또 ARMv6 에서는 멀티 코어가 선보이기도 했다.


 ARM 은 7세대 아키텍처를 발표하면서 (7세대가 이글을 쓰는 시점에 가장 최신 아키텍처다) 패밀리 네임을 이전과 같이 숫자로 붙이지 않고 Cortex 라는 명칭을 사용했다. 주요 cortex 버전은 과거 저전력 구형 코어를 대체하기 위한 Cortex A5 (1.5 DMIPS/MHz) 및 아이폰 3GS 등 스마트 폰에 사용되는 주력 제품인 Cortex A8 (2.0 DMIPS/MHz), 그리고 고성능 버전인 Cortex A9 (2.5 DMIPS/MHz) 가 있었다. 또 멀티 코어 제품인 Cortex A9 MP 가 있었는데 1-4개까지 코어를 지원했다. 이는 엔비디아의 테그라 2 (Tegra 2) 등에 적용되었다.


 ARM 은 Cortex Ax 버전들을 출시하면서 기존의 제품들 보다 와트 당 성능 비를 크게 끌어올렸다고 선전했다. Cotex A8 의 주요 특징은 아래 ARM 홈피의 링크를 확인하자.




 Cortex A8 은 현재까지 상용화된 주력 ARM 코어 가운데 가장 강력한 성능을 지닌 모델 중 하나이다. 기존의 ARM 의 단순한 구조에서 벋어나 슈퍼스칼라 아키텍처 및 통합 L2 캐쉬, 13 stage 파이프 라인, NEON 이라는 멀티미디어 지원 기능등 오래전 펜티엄 프로세서를 연상시키게 하는 새로운 구조를 채택했다. 이를 통해 성능을 끌어올린 ARM Cortex Ax 코어들은 이제 저가형 태블릿 PC 및 넷북 시장을 호시탐탐 노리는 상황에 이르렀다.


 그러나 최근에 와서도 ARM의 코어들은 태생적인 특징을 벋어 버리지는 않았는데, 이는 아주 작은 크기의 RISC 프로세서라는 점이다. 기존의 구조보다 복잡해 질지언정 현존하는 x86 프로세서와 비교하면 역시나 마이크로 프로세서가 아니라 나노 프로세서라고 부를 만큼 작다.


 그러면 대체 얼마나 작다는 말인가 ? ARM 에 의하면 65 nm 공정에서 제작되는 Cortex A8 코어의 크기는 캐쉬를 포함해도 4 ㎟ 을 넘지 않는다고 한다. 이는 65 nm 공정에서 제작된 인텔의 Q6600 프로세서의 다이 사이즈가 286 ㎟ 에 달하는 것과 어마어마한 차이다.


 참고로 Q6600 은 5억 8200만개의 트랜지스터를 가지고 있는데 여기서 유추할 때 Cortex A8 은 L2 캐쉬를 포함하고도 대략 1000만개를 넘지 않는 트랜지스터를 가지고 있을 가능성이 높다. (다만 정확한 수치는 ARM 홈페이지에도 나와 있지 않다) 그렇다면 트랜지스터 숫자만 놓고 볼 때 펜티엄 2 보다 훨씬 적은 수의 트랜지스터로 구성되어 있으리라 추정된다. 물론 ARM6 시절 3만 5천개의 트랜지스터에 비하면 장족의 발전이긴 하다.


 하지만 작다고 꼭 나쁜 건 아니다. 이렇게 작은 다이 사이즈는 다시 말해 제조 단가가 매우 저렴함을 의미한다. CPU 라는 것은 거대한 동그란 웨이퍼에서 한꺼번에 제조해서 하나씩 코어를 떼어내는 방식으로 만들어진다. 그런데 같은 65nm 공정이라도 Q 6600 의 다이 사이즈가 Cortex A8 의 다이 사이즈 보다 70배가 넘기 때문에 결과적으로 같은 면적에서 대략 70분의 1개의 CPU 밖에 만들 수 없다. 결국 Cortex A8 의 제조 단가는 정말 저렴할 수 밖에 없다. 또 이렇게 작은 CPU 는 공간도 적게 차지하고 전기도 적게 먹으니 모바일 시장에 아주 적합할 수 밖에 없는 것이다.



 이런 모든 점을 종합할 때 모바일 및 임베디드 시장에서 ARM 의 강세는 한동안 지속될 가능성이 높아 보인다.



 6. 옴니아 vs 아이폰 CPU


 이 세상의 많은 휴대폰들 처럼 삼성의 옴니아 시리즈와 아이폰들은 모두 ARM 의 CPU 를 사용하고 있다. 물론 ARM 의 라이센스를 받아 실제 제조한 것은 삼성이다. 그런데 최근 아이폰 3GS 의 CPU 보다 옴니아 2의 CPU 가 더 빠르다는 출처 불명의 기사들이 나온 적이 있다. 정말일까 ? 결론 부터 말하면 한국에선 기자들이 쓰는 기사들은 사실과 다를 수 있으니 주의해서 읽어야 한다는 것이다.


(이 참고 기사는 그냥 참고만 하시기 바란다. 특정 신문사나 기자를 비방할 의도은 없음)


 일단 옴니아 2의 CPU 를 알아보자. 옴니아 2는 앞서 설명했던 ARMv6 의 히트작 ARM1176JZ(F)-S 를 CPU 로 사용하고 있다. 한가지 재미있는 것은 ARM1176JZ(F)-S 모델 중 삼성에서 라이센스를 해서 만든 CPU 들은 저렴한 가격을 무기로 다른 스마트 폰들에도 탑재 되었는데 그중에 바로 아이폰/아이폰 3G 및 아이팟 터치가 있다는 것이다. 이 CPU들은 620 MHZ 에서 412 MHz로 클럭을 낮추어 탑재되었다. 반면 옴니아 2의 ARM1176JZ(F)-S  클럭은 800 MHz 정도로 더 높다.


 한편 애플은 차세대 아이폰인 아이폰 3GS를 출시하면서 6세대 아키텍처인 ARM1176JZ(F)-S 대신 7세대 아키텍처를 사용한 Cortex A 8 칩을 사용했다. 앞서 설명했듯이 Cortex A8 은 슈퍼 스칼라 아키텍처 및 L2 캐쉬 메모리, NEON 지원등의 이전 세대보다 더 진보된 특징을 가지고 있다. 따라서 클럭당 성능도 ARM 11 패밀리의 칩들이 1.2 DMIPS/MHz 의 성능을 가진 반면 Cortex A8 은 2 DMIPS/MHz 의 더 높은 성능을 가지고 있다.


 따라서 ARM 11 패밀리 칩이 Cortex A8 보다 클럭이 높다고 성능도 더 높으란 법은 없는 것이다. 이것은 마치 펜티엄 4 3.2 GHz 가 코어 2 듀오 2.66 GHz 보다 클럭이 높으니 더 빠른 CPU 라고 주장하는 것과 동일한 이야기다.


 실제로 간단히 계산해 보면 옴니아 2의 CPU는 1.2 X 800 = 960 DMIPS 정도의 성능을 가지고 있다. 반면 아이폰 3GS 는 624 X 2 = 1248 DMIPS 의 성능을 가지고 있다. 그러니 일반적인 처리 속도라는 관점에서 아이폰 3GS 의 CPU 가 좀더 빠를 것이다. (다만 MIPS 는 앞서 이야기 했듯이 상대적인 비교지 CPU 의 모든 성능을 나타내는 지표라곤 볼 수 없다. 하지만 비교할 수 있는 벤치가 이것 뿐이고 일단 아이폰 3GS 가 더 빠르다) 그러니 CPU 클럭이 높아서 아이폰 3GS 보다 옴니아 2 가 더 빠르다는 기사는 완전히 사실과 다른 이야기다.


 여기에 아이폰 3GS 는 옴니아 2와는 달리 독립 GPU 를 가지고 있어 일단 3D 처리 능력에서 비교가 안된다. 굳이 비교하자면 옴니아 2는 내장 그래픽을 컴퓨터이고 아이폰 3GS 는 독립 그래픽 카드를 지닌 컴퓨터라고 할 수 있다. 이것은 휴대용 게임 시장도 넘보고 있는 아이폰 /아이팟 터치로써는 당연한 결과일 것이다.


 다만 하드웨어적인 성능이 스마트 폰의 모든 것은 아닐 것이다. 아이폰 3GS가 세계 스마트폰 시장에서 삼성 + LG의 모든 스마트폰을 합친 것보다 훨씬 좋은 판매량을 보이는 것은 하드웨어적으로 앞서서라기 보단 적당한 하드웨어에 뛰어난 소프트웨어를 갖추었기 때문이다.


 참고로 한가지 재미있는 사실은 스마트폰 중에서 옴니아 HD 로 알려진 Samsung i8910 이나 모토로라 드로이드 모두 거의 비슷한 클럭의 Cortex A8 CPU 를 사용한다는 것이다. 이런 점을 보면 솔직히 스마트폰용 CPU 는 아주 큰 차이가 나기 어려우며 결국 소프트웨어가 성패를 좌우하리라는 점을 쉽게 짐작할 수 있다.



댓글

이 블로그의 인기 게시물

통계 공부는 어떻게 하는 것이 좋을까?

 사실 저도 통계 전문가가 아니기 때문에 이런 주제로 글을 쓰기가 다소 애매하지만, 그래도 누군가에게 도움이 될 수 있다고 생각해서 글을 올려봅니다. 통계학, 특히 수학적인 의미에서의 통계학을 공부하게 되는 계기는 사람마다 다르긴 하겠지만, 아마도 비교적 흔하고 난감한 경우는 논문을 써야 하는 경우일 것입니다. 오늘날의 학문적 연구는 집단간 혹은 방법간의 차이가 있다는 것을 객관적으로 보여줘야 하는데, 그려면 불가피하게 통계적인 방법을 쓸 수 밖에 없게 됩니다. 이런 이유로 분야와 주제에 따라서는 아닌 경우도 있겠지만, 상당수 논문에서는 통계학이 들어가게 됩니다.   문제는 데이터를 처리하고 분석하는 방법을 익히는 데도 상당한 시간과 노력이 필요하다는 점입니다. 물론 대부분의 학과에서 통계 수업이 들어가기는 하지만, 그것만으로는 충분하지 않은 경우가 많습니다. 대학 학부 과정에서는 대부분 논문 제출이 필요없거나 필요하다고 해도 그렇게 높은 수준을 요구하지 않지만, 대학원 이상 과정에서는 SCI/SCIE 급 논문이 필요하게 되어 처음 논문을 작성하는 입장에서는 상당히 부담되는 상황에 놓이게 됩니다.  그리고 이후 논문을 계속해서 쓰게 될 경우 통계 문제는 항상 나를 따라다니면서 괴롭히게 될 것입니다.  사정이 이렇다보니 간혹 통계 공부를 어떻게 하는 것이 좋겠냐는 질문이 들어옵니다. 사실 저는 통계 전문가라고 하기에는 실력은 모자라지만, 대신 앞서서 삽질을 한 경험이 있기 때문에 몇 가지 조언을 해줄 수 있을 것 같습니다.  1. 입문자를 위한 책을 추천해달라  사실 예습을 위해서 미리 공부하는 것은 추천하지 않습니다. 기본적인 통계는 학과별로 다르지 않더라도 주로 쓰는 분석방법은 분야별로 상당한 차이가 있을 수 있어 결국은 자신이 주로 하는 부분을 잘 해야 하기 때문입니다. 그러기 위해서는 학과 커리큘럼에 들어있는 통계 수업을 듣는 것이 더 유리합니다. 잘 쓰지도 않을 방법을 열심히 공부하는 것은 아무래도 효율

R 스튜디오 설치 및 업데이트

 R을 설치한 후 기본으로 제공되는 R 콘솔창에서 코드를 입력해 작업을 수행할 수도 있지만, 보통은 그렇게 하기 보다는 가장 널리 사용되는 R 개발환경인 R 스튜디오가 널리 사용됩니다. 오픈 소스 무료 버전의 R 스튜디오는 누구나 설치가 가능하며 편리한 작업 환경을 제공하기 때문에 R을 위한 IDE에서 가장 널리 사용되어 있습니다. 아래 링크에서 다운로드 받습니다.    https://www.rstudio.com/  다운로드 R 이나 혹은 Powerful IDE for R로 들어가 일반 사용자 버전을 받습니다. 오픈 소스 버전과 상업용 버전, 그리고 데스크탑 버전과 서버 버전이 있는데, 일반적으로는 오픈 소스 버전에 데스크탑 버전을 다운로드 받습니다. 상업 버전의 경우 데스크탑 버전의 경우 년간 995달러, 서버 버전은 9995달러를 받고 여러 가지 기술 지원 및 자문을 해주는 기능이 있습니다.   데스크탑 버전을 설치하는 과정은 매우 쉽기 때문에 별도의 설명이 필요하지 않을 것 같습니다. 인스톨은 윈도우, 맥, 리눅스 (우분투/페도라)에 따라 설치 파일이 나뉘지만 설치가 어렵지는 않을 것입니다. 한 가지 주의할 점이라면 R은 사전에 반드시 따로 설치해야 한다는 점입니다. R 스튜디오만 단독 설치하면 아무것도 할 수 없습니다. 뭐 당연한 이야기죠.   설치된 R 스튜디오는 자동으로 업데이틀 체크하지 않습니다. 따라서 업데이트를 위해서는 R 스튜디오에서 Help 로 들어가 업데이트를 확인해야 합니다.     만약 업데이트 할 내용이 없다면 최신 버전이라고 알려줄 것이고 업데이트가 있다면 업데이트를 진행할 수 있도록 도와주게 됩니다. R의 업데이트와 R 스튜디오의 업데이트는 모두 개별적이며 앞서 설명했듯이 R 업데이트는 사실 기존 버전과 병행해서 새로운 버전을 새롭게 설치하는 것입니다. R 스튜디오는 실제로 업데이트가 이뤄지기 때문에 구버전을 지워줄 필요는

R 패키지 설치 및 업데이트 오류 (1)

 R 패키지를 설치하거나 업데이트 하다보면 여러 가지 문제가 생기는 경우들이 있습니다. 이 경우 아예 R을 재설치하는 것도 방법이지만, 어떤 경우에는 이렇게해도 해결이 안되고 계속해서 사용자는 괴롭히는 경우도 있습니다. 이런 경우 중 하나를 소개합니다.  새로운 패키지를 설치, 혹은 업데이트 하는 과정에서 같이 설치하는 패키지 중 하나가 설치가 되지 않는다는 메세지가 계속 나왔는데, 사실은 백신 프로그램 때문이었던 경우입니다.   dplyr 패키지를 업데이트 하려고 했는데, 제대로 되지 않아 다시 설치를 진행했습니다. 그런데 일부 패키지가 제대로 설치되지 않는다는 메세지가 나왔습니다.  > install.packages("dplyr") Error in install.packages : Updating loaded packages > install.packages("dplyr") Installing package into ‘C:/Users/jjy05_000/Documents/R/win-library/3.4’ (as ‘lib’ is unspecified) also installing the dependencies ‘bindr’, ‘bindrcpp’, ‘Rcpp’, ‘rlang’, ‘plogr’ trying URL ' https://cran.rstudio.com/bin/windows/contrib/3.4/bindr_0.1.1.zip ' Content type 'application/zip' length 15285 bytes (14 KB) downloaded 14 KB trying URL ' https://cran.rstudio.com/bin/windows/contrib/3.4/bindrcpp_0.2.2.zip ' Content type 'application/zip' length 620344 b