ARM 기반 SoC가 유행하는 이유가 무엇인가요?

익명 사용자의 이미지

요즘 IT 쪽 화두인 스마트폰 기기등에서 ARM을 베이스로 하는 SoC가 널리 사용되는 이유가 무엇인지 궁금하네요.

PC 쪽에서 널리 쓰이는 x86을 기반으로 한 SoC가 널리 사용되었더라면, 소프트웨어 포팅에 사용되는 시간을 조금이나마 줄일 수 있을 것이라 하는 생각이 잠깐 들어서 말이죠.

plasticbox의 이미지

기본적으로는 배터리아닐까요?
x86호환되는 칩은 트랜지스터 갯수가 많아서 아무리 줄여도 ARM에 비하면 전기 엄청 먹는다는데요.

ARM기반이 워낙 넓어져서 예전에 비하면 접근성이 더 좋아진 것도 있다고 생각됩니다.

#################
Enjoy Life~!

익명 사용자의 이미지

소프트웨어 포팅에 들어가는 비용 대비, 전력 소비 감축되는 게 엄청나게 큽니다.

x86 은 전기 먹는 귀신이라고 합니다.

neogeo의 이미지

arm 이외에 soc 에 라이센스를 주는 회사가 드물기 때문입니다. ( x86 의 라이센스 정책은 soc 하기엔 상당히 복잡합니다. )

그리고 arm 은 여러가지 모듈을 넣었다 뺐다 하기가 매우 용이합니다.

float 연산자를 빼버린다던가, big endian 용으로 만든다던가, double 의 endian mode 를 바꾼다던가....

또한 어떤 모듈과도 잘 붙습니다. ( 램 컨트롤러 부터 수많은 i/o 컨트롤러 까지! )

그리고 최근엔 전력관리 하기도 매우 좋은 cpu가 되었지요.

무엇보다도 부트 과정이 정말 심플해서 x86 에 비할바가 아닙니다. ( 임베디드에선 큰 장점이죠 )

Neogeo - Future is Now.

익명 사용자의 이미지

ARM의 애시당초 개발 목적이
휴대용 모바일 초저전력 cpu 입니다만...
아직 이분야에선 적수가 없는걸루 알고 있음.

iris의 이미지

기본적으로 neogeo님께서 적어주신 부분이 정답입니다. x86은 라이선스를 받기도 어렵고 전력 소비량이 너무 큽니다.

http://www.smartgadget.kr/622

최근 제가 적은 글입니다만, UMPC나 MID가 사실상 절멸하고 ARM 기반 패드의 시대가 온 것도 이러한 전력 소비량 문제가 큽니다.
많아봐야 3~4W 차이지만, 이러한 휴대기기에서는 미치고 팔짝 뛸 정도의 전력 소비량과 발열 차이를 가져옵니다.

포팅에 대한 편리함이라고 해도 사실 x86으로 만드나 ARM으로 만드나 머리아픈 것은 마찬가지입니다.
POSIX 운영체제라고 할 수도 없는 윈도우에서 안드로이드나 iOS로 포팅하는 것은 어차피 새로 짜는 레벨이나 다름 없습니다.
반대로 POSIX 운영체제인 유닉스나 리눅스로의 포팅은 아키텍처가 바뀌더라도 상대적으로 손이 덜 갑니다. 어디까지나 포팅을 전제로
개발을 했다는 전제가 붙겠습니다만.

포팅이 눈꼽만큼 편해지자고 10배 이상 전기를 많이 먹고 라이선스 받기도 하늘의 별따기보다 어려운 프로세서를 쓰겠습니까? 보통은 No라고 할 것입니다.

=================================

이 세상은 썩어있다!
- F도 F시 시가지 정복 프로젝트

홈페이지: 언더그라운드 웹진 18禁.net - www.18gold.net

JuEUS-U의 이미지

요즘 학교 수업으로 ARM 기반 RTOS 만드는데
정말 x86 따위(!!!)하고는 비교도 안됩니다 - _-)...

듣자하니 유일하게 engineer가 아닌 computer scientist가 설계한 CPU라고 하더군요.
그리고 워낙에 설계가 간단해서 트랜지스터가 3~4만개 정도밖에 안들어간다고 합니다.

zz181321의 이미지

꽤 오래전에, 인텔에서 x86 아키텍쳐가 구리다고 버리고 완전히 새로운 ia64라는 놈을 밀어보자고 들고 나온 적이 있었지요.

완전히 망했죠. (지금도 존재하기는 합니다만)

하지만 그런 걸 보면 x86은 버려야 할 부분이 많기는 많은 모양이더군요.

winner의 이미지

공정기술이 워낙발달해서 x86의 문제라는 거대한 decoder의 비중이 이제는 크지는 않더군요.
다만 발열, 전력의 문제는 CPU 대부분을 차지하게 된 cache에서 발생되는게 아니라서 어쩔 수 없는 것 같아요.

winner의 이미지

ARM license 싸답니다.

태훈의 이미지

여러가지 이유가 있지만 시스템 프로그래머 입장에서 보면,

ARM은 x86에 비해서 아케틱처 디자인이 단순(Simple)하고, 멋집(Cool)니다.

그리고 널리 쓰이게 된 가장 큰 이유 중 하나는 문서화(Documentation) 때문이죠.

Just do it!

익명 사용자의 이미지

어쩌다가 x86이 데스크탑 컴퓨터의 표준처럼 굳어졌는지는 몰라도 컴퓨터공학의 입장에서 보면
x86처럼 요상한 CPU도 세상에 없을 지경입니다.

초창기의 메모리 제약사항부터, 인터럽트 콘트롤러 때문에 생긴 인터럽수 갯수 제한을 비롯하여
너무나도 이상하게 만들어져버린 CPU가 바로 x86입니다.

이러한 결과가 생긴 것은 퍼스널 컴퓨터 초창기에 어떻게든 싸게 컴퓨터를 만들어 보려는 인텔의 전략과
PC에 OS를 후다닥 적용해 보려는 MS의 생각이 만든 결과이기도 합니다. --;

그 결과 미래를 멀리 보지 못한 아키텍쳐 및 소프트웨어 설계로 인하여 x86은 참 기형적인 시스템이 되버렸습니다.
DOS를 쓰면서 emm386.sys 라는 이상한 파일을 올려서 게임 프로그램을 실행할때 모자라는 메모리를 확보하려고
별의 별 옵션을 다 써보았던 기억들이 아마 나실듯 하군요.

어쨌든 그러한 중간 단계를 거쳐 x86 시스템은 성능을 위주로 설계가 덧붙여졌기 때문에 엄청난 파워소비를 하는
단점을 극복하지 못했습니다. x86이 모바일 시장으로 진출하지 못한 결정적 원인중의 하나죠.

익명 사용자의 이미지

재미난 해석인긴 한데 그런거 같진 않고...

지금의 x86이 과거에 있던 기능들을 하위호환을 위해 모조리 지원하기 때문에
그런게 아직도 남아 있을뿐이지 모드가 다르기 때문에 사용되지 않습니다.
부팅할때 모드를 바꿔주는 정도의 필요만 생겼을뿐...

그렇다고 x86의 과거의 디자인이 허접했냐하는 것도 논란일 수 있는데...
초창기의 메모리 제약사항이라는건 그 유명한 640KB 얘기일텐데
당시 CPU가 16비트입니다.
즉 C언어로 치면 포인터가 16비트이고 그러면 포인터로 가리킬 수 있는 주소 영역은 64K뿐입니다.
그걸 10개로 확장해줘서 640K가 된겁니다.

그게 문제가 되는건 16비트 환경에서 32비트 환경으로 바뀌었는데도
(CPU에서 32비트를 지원해 주기 시작했는데도...)
계속 사용되는 프로그램들이 그걸 고집했기 때문입니다.
그래서 나온게 emm386같은 것들이고

그런짓 하지말고 그냥 도스에 대한 하위호환성 무시하고 깔끔하게 32비트로 쓰자 하고 나온게 리눅스고...

익명 사용자의 이미지

arm과 x86놓고 risc니 cisc니 하는 얘기는
커널을 두고 마이크로커널이니 모놀리틱커널이니 하며
얘기하는 거랑 똑같이 "옛날얘기"입니다.

요즘 커널은 하이브리드이듯이...
cpu도 그러니까요..

highvolt의 이미지

1. x86에 비해 비교적 덜 복잡한 logic으로 구성되어 저전력입니다.
2. tr갯수가 적으니 dia size가 작고, 따라서 가격이 저렴합니다.
3. 라이선스비가 비교적 저렴합니다.
4. 개발 환경이 그런데로 잘 갖추어져있습니다.
5. 많은 reference code와 관련 책들이 나와 있습니다.

꼭 x86과의 비교뿐만 아니라, MIPS나 SH4등에 비해서도
더욱 일반적으로 쓰이는 이유 또한 위와 같을것 입니다.

사랑천사의 이미지

저기 근데...
컴퓨터 과학자(computer sicentist?)와 컴퓨터 엔지니어(computer engineer)이 뭐가 차이가 있는 거조? 그리고 언급하신 분 말씀의 뉘양스가.. 컴퓨터 과학자가 컴퓨터 엔지니어 보다 뭔가 잘난 면이 있는 것 처럼 느껴지는데 그렇게 말씀하신 것이 맞는지 궁금하네요.

제가 알기로.. 컴퓨터 과학자는 컴퓨터 엔지니어 보다 자기 분야에서 뭔가 더 특화된 연구를 하는 사람으로 알고 있는데 그 분야라는게 CPU 아키텍처에 대한 부분이 아닌 이상은 엔지니어나 과학자나 비슷할 거 같다고 생각되네요.

사람천사