Embedded환경에서 전용CPU 대신에 범용CPU를 사용하는것?

kalstein의 이미지

임베디드쪽으로 프로그래밍하는 업무를 맡게 되었는데...
TI의 DSP칩을 사용하더군요. 요즘은 임베디드라고 해도 꽤 성능이 좋아보입니다.
클럭도 850MHz정도나 되구요...다만 내부 메모리는 2MByte로써 좀 안습입니다만.

그걸 보면서 느낀건...
일단 굳이 전용칩셋들을 쓰는 이유가 뭔지 궁금하더군요.
요즘 나오는 범용CPU들이 (Intel, AMD, etc...) 상당히 많이 빨라졌죠. 대역폭은 이미 6기가급으로 올라간 상황이구요. 메모리도 크고, 범용PC급이니 만큼 각종 Tool들이 다양하며, 가격도 물론 저렴합니다. (제쪽의 임베디드는...좀 큰 사이즈의 임베디드입니다 ^^;; 소형기기라기보단 산업쪽에 가깝죠. 전력문제도 그닥 고려치않아도 되는 환경인거죠)

이런 상황에서 전용DSP칩들이 범용CPU에 비해 월등히 빠른가요? 언어는 어차피 C/C++사용하고...다만 C++의 몇가지 기능들 (예를들어 STL이 없다던가..킁;;)이 제한되어지지요.

jj의 이미지

발열이나 전력소모는 어떤가요? 뭔가 특화된점이 있지 않을까요?

--
콘쏠의힘

--
Life is short. damn short...

kalstein의 이미지

음...글쎄요. 어차피 대형임베디드(좀 어감이 희안하네;;)는 쿨링 시스템 들어갑니다. 요즘 한창 히트치고있는 코어2듀어 프로세서 (인텔 콘로) 같은 경우에는 발열이 상당히 적은편에 속하지요...(펜3,4에 비해서도...기존에 몇년씩 돌아가는 서버들 많은걸 봐도 안정성면에서도 괜찮을거 같구요)


------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/

sungjin의 이미지

DSP의 경우 특화된 어플리케이션(영상/음성 처리, etc)에서 범용 CPU(x86 계열)보다
더 나은 성능이 나오는 걸로 알고있는데..

kalstein의 이미지

그게 일반적인 인식이었는데...요즘같이 x86의 성능이 많이 올라간 상황에도 그런가? 싶어서요 ㅎㅎ 정말 요즘에는 왠만한것은 HW Chip은 인터페이스 역할만 하고, 대부분 CPU (or GPU)에서 처리해버리잖아요?? (ex. HDTV)


------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/

blkstorm의 이미지

(x86+디코더 칩)보다 원칩으로 가는 것이 가격 경쟁력이 훨씬 높습니다.

kalstein의 이미지

가격을 알아보니...

뭐 좀 비싸겠거니...하고 짐작은 했지만 (아무래도 대상이...비싼기기에 들어가거든요) 보드 한장당 3천...정도라더군요;;; 전력소모야 둘째치더라도, 가격경쟁력이...과연 있는지는 의문이었습니다.

학교에 있었던 임베디드 리눅스 킷도...하나당 400만원씩 했던게 생각나네요. 고장안나게 잘 하라고 했었죠;; 그건 cpu는 ARM쓰고, 그 외에 기타 인터페이스는 usb, lan 등이 있었던걸로 기억합니다. 과연 x86으로 구성을 해도 그 가격이 나올지는...의문입니다만;;;


------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/

whitelazy의 이미지

개발 중인 시스템입니까 아니면 실제 구현되는 시스템에 들어가는 보드가 3천.. 정도라는건지 3천이 3천원은 아닐테고 3천만원? =_=? 그러면 정말로 가격에 의문이 가지만...
개발중인 시스템이라면 상관없는예기입니다
나중에 시스템에 맞게 보드 새로 개발하면 단가는 한없이 내려가겠지요...
일반적으로 보는 킷들은 정말 비싼겁니다 리눅스 트래이닝킷같은경우 개발 단가 + 인건비 + 회사 운영비 등이 다 고려되지 않았을까요 슈퍼에서 과자파는것도아니고 한번에 왕창 팔고 한동안기술지원만하다가 어느학교 개강때쯤되면 또다시 한번 왕창팔고 합니다 한번 팔고 다음팔때까지 라면끓일수는 없으니 그동안의 운영비까지 한방에 뽑아야할테니까요 그래서 그렇게 비싸지지 않았나 싶습니다..
대신에 개발보드들은 그냥 비싼건 비싸고 기능많고 싼건 싸고 기능없고 하더군요 -_-a
실례를 들자면 좀 작긴하지만 일반적으로 구할수있는 센서네트웍용 MICA2 클론 보드들은 보통 10만원 중반에서 20만원 안팎합니다 그거 실제로 노가다해서 뜬다면 개당단가 2만원 안팎이 아닐까요 대충 전에 계산했을때 한번 PCB뜨는거 가격하고 기타등등 따져봤었는데 3~4만될듯하더군요 한 50개 만든다면 가능할듯합니다 정말 왕창뜬다면 그이하겠지요...=_=
따라서 x86트레이닝 보드가 나온다면 그정도 가격할지도 모릅니다

개발보드 혹은 트레이닝 키트 가격으로 실제 시스템 가격을 계산해서는 안됩니다 개발보드 올려서 제품만드는게아닌이상은 그 이하로 생각해야할듯 싶습니다.

p.s 찾아보니 대충 TI DSP 6천대 시리즈면 8만원~20여만원정도로 넓게 퍼저였군요 고정소숫점이나 부동소숫점이 혼재되있긴하지만.. 시스템가격은 비슷할듯합니다

blkstorm의 이미지

아마도 휴대전화에 들어가는 MSM chip을 fpga로 그대로 구현한다면 (개발 내지는 실험실 레벨의 구현이라고 볼 수 있겠죠) 아마 칩당 가격이 수천만원 가까이 될겁니다.

(어흐, nda만 아니라면 이 주제에 관련해서 드릴 수 있는 재미있는 이야기가 수없이 많은데... 안타깝습니다. ^^;;)

whitelazy의 이미지

fpga로 구현한다면 크기랑 발열로인해 휴대할수있는 사이즈가 안나올꺼같은데요 ㅡ0ㅡ;;
나오나요? 제가본건 싼건만본지라 비싼건 될지도 =_=;; (저렴한 인생... ㅠ_ㅠ)

blkstorm의 이미지

절대로 안나오죠. (휴대전화용은 아니고 일반 소비자 가전용) SoC를 fpga로 구현한걸 본적이 있는데, 007가방 한개 좀 넘는 부피였습니다. 가격이 1억 정도였는데, 게이트수는 얼마였는지 기억이 안나네요.결국 조그만 칩으로 나오더군요.

whitelazy의 이미지

일반적인 인식이고 또 맞는 겁니다...
리미트 없이 서로 성능경쟁 붙이면 당연히 최고 사양 범용 코어가 성능이 압도적일수 밖에 없지만 제한된 환경에서는 비슷하거나 더 나은 성능을 낼수도 있습니다.. 일례로 핸드폰에 ARM+DSP올려서 그래픽 가속등을 하는경우가 있지 않을까요 전력 소모를 최소화 하면서 최대한의 성능을 뽑아내야한다거나 밀폐되거나 좁은 공간에 장착되어야 하면서 고성능을 요할때 등은 범용시피유는 아직 불리한점이 너무 많습니다 범용시피유등은 그런쪽보단 성능경쟁으로인해 발열 전력소모따위 가볍게 무시해주고 무지막지한 성능만을 자랑해왔습니다...
그에따른 안정성도 문제이구요 칩 자체의 안정성이야 좋을지 모르겠지만 구동계(쿨링팬 등)가 들어가는 범용코어는 장시간 작동엔 불리할수밖에 없습니다 부피도 문제고 말입니다
발열, 전력소모에 신경쓰기시작한건 최근이며 따라서 몇년지나면 DSP자리를 위협할지도 모르겠네요 쿨러안달고도 지금성능 가볍게 유지해주는 범용 코어 같은게 나와주면 뭐 크기제한만 아니면 위험하겠지요 DSP도 분발해야할듯합니다

p.s.에구 가까운글 밑에 붙이려고 따로썼는데 아예 뚝떨어져서 붙어버렸군요 창피하게스리 ㅎㅎ;;

blkstorm의 이미지

제가 로그인하는 사이에 달려는 답글과 똑같은 내용이 올라왔군요. ^^

dsp가 가장 전형적인 예인 것으로 알고 있습니다. 또 하나가 있다면 알파블렌딩 같은 예가 있을 수 있겠네요.

하드웨어에서 알파블렌딩을 지원하는 것이 범용 CPU를 사용하는 것보다 가격대 성능비가 나을 겁니다.

그리고, 임베디드 시장에서는 전력에 민감한 분야의 마켓쉐어가 훨씬 클겁니다.

결국, 업체들도 주된 고객의 입맛에 맞추다보니 cpu업계에서는 특화된 cpu에 투자를 많이 하고, 시장의 흐름이 그쪽으로 가는 것이겠지요.

honeamis의 이미지

TI 의 어떤 프로세서인지는 모르겠지만, 일단 TI 라 하면 임베디드 쪽에서는 범용에 가까운 쪽 같은데요..

--

민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

훌륭한녀석의 이미지

제가 보는 마지막(하지만 조만간 닥칠) 임베디드는 데스크탑같은 임베디드입니다. x86 프로세서에 노스브릿지, 사우스브릿지, 그래픽 IP가 포함되고, RAM과 자그마한 플래쉬가 통합된 칩 ㅜㅜ 멋지지 않습니까? 그리고 각종 IP들이 다닥다닥 붙어있는 그런!!! 하악하악.. 변태같군요. ㅡㅡ;
위에 쓴글은 제가 가지고 놀고 싶은 시스템입니다. 벌써 여러군데서 위와같은 UMPC같은 모바일용 장치를 위한 SOC를 만들고 있는걸로 알고있습니다.

본론

범용의 프로세서를 사용했을 경우에는 그 외의 다양한 주변 장치들이 많이 들어가게 됩니다. 우리가 쓰는 x86은 프로세서만! 있는것이 아니라 위에 열거한 칩셋들이 함께 들어가게 되고 그래픽이면 그래픽, 사운드면 사운드에 관련된 코덱들을 포함해야 합니다. 따라서 제품의 단가는 단가대로 높아지며 각각의 부품이 먹는 소비전력과 발열도 무시못하지요. 결국 무엇을 만들것이냐! 에 달려있습니다. 간단한 키오스크나 요즘 해외로 수출 많이 하는 노래방기계(여기에도 만드시는 분이 계신걸로 알고 있습니다만) 같은 장치는 범용 프로세서를 사용합니다. 하지만 모바일 장치나 고속의 연산을 처리해야 하는 장치일 경우(-이동통신 기지국이나 우리가 많이 쓰는 pmp같은것만 봐도) 악셀레이터나 DSP에 의존할 수 밖에 없습니다.

따라서

결론

범용이 좋긴 하지만 돈! 전력! 발열! 폼팩터! 등등에 따라서 많이 선택받지 못할 뿐이다.

훌륭한녀석!!

onmystep의 이미지

범용(?) CPU의 성능이 많이 빨라졌다 해도, 실제 반도체 혹은 DSP등의 기본 clock이 수백 MHz에

달하게 되면, 특정 연산이라던지 알고리즘에는 최적화된 기능은 웬만한 CPU보다 훨

씬 빠를수 있습니다.

같은 성능을 낸다 하더라도, PC CPU는 OS가 동작할수 있는 큰 Ram, 기타 저장장치, 높은

clock주파수를 위한 보다 안정적인 전원장치, 발열해결을 위한 여러가지 부품등등이 필요하게

되는데,
DSP나 기타 embedded system을 보면 상대적으로 매우 작은 memory, 많은 cpu resource가 들

어가는 연산등이 HW logic으로 구성되어 있어 몇 clock만으로 동작하는 block, 매우 간단한 전

원장치 등으로 매우 작은 공간을 차지하면서 장시간 동작할수 있습니다.

PC CPU는 mother board까지 포함한다 해도 사실 가격이 그리 높지 않은 건 사실입니다. 하지만,

산업 및 기타 군사용 기기 라면, 무엇보다도 신뢰도가 가장 중요하겠죠.
PC를 몇년이상 동작시켜는 한번도 죽지 않고 동작한다면 좋은 신뢰도 겠지만, 아무리 고가의

server들도 1년에 몇번은 죽습니다(service받는 client들이 모르게 backup server라던지 다른
형태로 보완을 해서 service가 한번도 중단 되지 않은것처럼 보일뿐).

반면 embedded system계열들은 대부분 개발자들이 구동하는 모든 구조를 대부분 깊게 이해하고,

이를 바탕으로 PC와 비교할때 매우 큰 신뢰도를 줄수가 있죠.

결국 전체 시스템을 이루는 가격과 제품의 안정성 혹은 신뢰도 때문이겠죠.