Processor Architect.... egoist
프로세서, SoC, ASIC 설계에 대한 재미난 이야기들. 그리고, 쉼표...
BLOG main image
Notice
babyworm은?
CATEGORY
전체 (298)
SoC 설계 관련 (122)
마이크로 프로세서 이야기 (24)
유용한 설계도구 (7)
검증이야기 (15)
관련 새소식 (36)
초보자 코너 (16)
북마크 (2)
개인적인 (133)
책이야기 (18)
만화/애니메이션 (3)
영화/드라마이야기 (4)
음악이야기 (13)
Boards
질문 게시판
칩쟁이들 모임(올블카페)
Recent Entries
그러게 진작에 잘하지 (1)
살인의 추억
생존 보고 (6)
도대체.. 아.. 내돈 주고... (4)
핑크색 무선 키보드; dico... (7)
끊임 없는 뽐뿌질.. 푸샥... (6)
Windows 7과 Office 2010... (3)
Windows 7 Launching part... (4)
아름다운 동행
자잘하고 소소한 이야기들 (4)
Recent Comments
오랫만에 댓글을 남기는 것...
03/01 - 홍용재
익뮤는 아주 잘쓰고 있습니다...
02/04 - babyworm
흠.. 마케팅쪽에서 활발히 움...
02/04 - babyworm
역시 연초라 바쁘시군요 :)...
02/04 - babyworm
좋은 블로그 알려주셔서 감사...
02/02 - yOunGoNi
한RSS에 추가 add to Bloglines
add to google


Add to Technorati Favorites



TAGS
마이크로 프로세서 synopsys verification verilog HDL SystemVerilog EISC 개인적인 PLI ARM AMD GPU Mentor LaTex EDA Synthesis Cadence assertion 프로세서 FPGA 검증
Recent Trackbacks
똑똑한 32비트 마이콤? Cantus
Dr.Lee's Blog..
죠커의 생각
jokka's me2DAY
불필요하게 어려운 말을 쓰는...
한날은 생각한다
Verilog Coding Style for Sy...
Stay Tuned...
CEO's Leadership Seminar
Stay Tuned...
Calendar
«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Archive
2010/03
2010/02
2010/01
2009/12
2009/11
2009/10
2009/09
2009/08
2009/07
2009/06
2009/05
2009/04
Link Site
Dreamer GUNDAM의 블로그
EDA board
luuvish's agit
Planet KTUG
[B]babyworm의 개인적인 블로그
[B]PAPA JOHN'S
[JW]iDea Holic
[JW]JS™
[JW]Jung-Hyeon's weB@LOG
[JW]Kino's blog
[JW]애니와 만화의 세계!
[JW]첫사랑 첼로
[JW]최신컴터 놀이~
[W] eetimes
[W] KERIS 학술 정보 서비스
[W] Microprocessor Report
[W] verification guild
[W]ASIC&FPGA cafe
[W]filedic
[W]WWW CA Page
[W]아람92
308089 Visitors up to today!
Today 34 hit, Yesterday 207 hit

English Ver. (by Google)
Creative Commons License
이 블로그의 모든 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
'마이크로 프로세서'에 해당되는 글 26건
생존 보고 (6) | 2010/01/30
완벽 잡담.. | 2009/07/28
마이크로 프로세서에 관심 있으신 분을 위한 글. (6) | 2009/07/23
개소식 정보 (2) | 2009/06/26
AE32000C-Lucida 프로세서 기반의 첫 상용칩. CANTUS | 2009/06/24
국산 프로세서 지원 센터 (6) | 2009/06/19
새로운 EISC 기반 제품.. 출장 (2) | 2009/04/13
상당히 괜찮은 microprocessor report deal (2) | 2009/04/08
새로운 EISC processor (2) | 2008/12/06
Asynchronous는 어려워 (4) | 2008/10/22
ARM의 Cortex-A9 프로세서. | 2007/10/05
Tilera Processor.. 병렬성을 통한 성능 향상 (2) | 2007/09/13
2x2나 Quad나.. (1) | 2007/09/11
인터넷 연결.. (2) | 2007/07/15
속도악마 대 머리괴물... (2) | 2007/07/05
참 파란만장합니다. (16) | 2007/07/02
마이크로 프로세서가 나아가야 할 방향... (2) | 2007/06/23
가상화 기술.. 왜 각광 받는가? (7) | 2007/04/11
Metal Gate로 더 빠르게.. (3) | 2007/02/03
마이크로 프로세서 탄생 35주년.. | 2006/12/25
생존 보고
[babyworm, 2010/01/30 23:40, 개인적인]
사실 여러가지 이유로 2010년에는 2월 설날이 올때까지 신년이 아니라 생각하기로 하고 잠수탈 생각이었습니다. :)
결심~! 이런것은 아니고 (글 안쓰는 것도 결심인가.. 쯧쯧..), 새로운 일에 적응하는 과정과 정신 없는 육아와 졸업을 위해 노력하고 있는 안사람의 바쁨과 책 번역 와중에 정신의 여유를 가지고 글을 쓸 수 있다는 것이 어느 순간 호사스러운 일이 되는 상황이 된 것뿐이지요. 그러다보니, '사실 나의 2010년은 음력으로 시작해요~' 라는 말도 안되는 이유를 붙일까.. 라는 생각이 든 것이지요 :)

그러다 글을 쓰게 된 이유는 왠지 2010년 1월 archieve가 0 이 떠 있으면 한참 후에 log없는 삶이었나.. 라는 생각이 들것 같은 느낌과 착하게도 일 열심히 하라고 딸래미와 같이 친정에 가준 마누라님(올레~ 상황이랄까요..) 덕분에 잠시 시간이 생겼다는 것 정도..

여하튼, 잘 살고 있습니다. :)
바쁜 만큼 기쁜일이 많고 스카이 스포츠 형식으로 평점을 매기자면 "babyworm (7); lively" 정도는 줄 수 있을 것 같습니다.

아.. 글을 쓰게 된 중요한 이유 중에 하나는 좋은 블로그를 발견해서 입니다. babyworm 추천 1월의 블로그 정도로 할까요?

http://recipes.egloos.com/

역시 세상에 고수는 널렸어요.
소위 이야기하는 실력도 있고 글빨도 있는 분이군요. 언젠가 저도 저의 언어로 좋은 내용을 담은 글을 쓸 수 있는 날이 있으면 좋겠네요.


아.. 빼먹고 안썼는데..
이번에 나온 iPad는 좀 실망이죠.
ARM instruction 기반의 프로세서에서 항상 강조하는 것이 성능 대비 전력소모인데, 1GHz 동작 속도에서 10시간 동작이라니.. Intel UltraThin 계통에서 이미 이룬일이라 별로 임펙트가...
물론, LCD나 기타 다른 부분의 전력 소모가 더 많을테니.. 라고 프로세서는 별로 중요하지 않다고 이야기할 수 있습니다. 하지만, 그런 명제를 걸게되면 전력 대비 성능이 좋은 프로세서를 쓰는 의미가 없어지지요.
애플이 PA-semi를 인수하여 만든 결과물 치고는 좀 실망스럽지만, 그래도 뭐 좋아지기는 하겠죠.


babyworm
2010/01/30 23:40 2010/01/30 23:40
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서, 임베디드

Trackback0 : Comment6
Trackback Address :: http://babyworm.net/tatter/trackback/322
donny | 2010/01/31 23:08 | PERMALINK | EDIT/DEL | REPLY
오랜만이시네요. 저도 요새 업무과다로 포스팅 쉬고 있습니다.. ^^;
작년에 '임베디드 레시피' 한 권 구입해서 출퇴근 길에 지하철에서 읽었습니다. 좋은 책이라 저도 주위에 몇분 권해드렸습니다.
iPad는 기대에 미치진 못하는데, 한가지 좋은 활용도가 있더군요. 아들녀석이 하루종일 아이폰을 갖고 노는데, 너무 가까이 보는 것과 자꾸 전화를 걸려는 것이 고민인데, iPad를 사주면 화면이 크고 전화가 안되니 딱이더군요 ^^; 일단 교육용 플랫폼으로는 가능성이 있다고 봅니다.
babyworm | 2010/02/04 02:27 | PERMALINK | EDIT/DEL
역시 연초라 바쁘시군요 :)
전자책으로써의 LCD에 저는 좋은 평가를 내리지 않는 입장이라서요. 뭔가 다른 것이 있을 것이라 기대는 하고 있습니다.
홍용재 | 2010/02/01 07:11 | PERMALINK | EDIT/DEL | REPLY
최근 EDACafe 등에서 익숙한 이름을 보고 혼자 반가워하고 있었습니다. ^^ 하시는 일이 잘 되신다니 저도 기분이 좋네요. 반가운 기사들도 그렇고요.

iPad 는 커진 사이즈에도 불구하고 반응속도가 너무 좋아서 놀랍더군요. A8 인지 A9 인지 궁금해서 ARM에 있는 동기한데 살짝 물어봤는데 자기 주변에도 아는 사람이 없다네요. 안가르주려고 하는건지...^^;

멀티태스킹도 안되고 A9은 오버스팩인듯 싶어서 Snapdragon 처럼 A8으로 performance upgrade 하지 않았을까 싶은데 기사에는 전부 A9 이군요.

올려주신 링크는 공부 소모임하는 후배들 한테도 알려줘야겠습니다. 너무 좋네요. ^^
babyworm | 2010/02/04 02:30 | PERMALINK | EDIT/DEL
흠.. 마케팅쪽에서 활발히 움직이는 것이지. :)
A4에 들어간 건 single core cortex-A9이라고 들었는데.. 근데 cortex-A9도 out-of-order하는 것 이외에.. (예전에도 적었지만, embedded에서 out-of-order하는 것이 맞느냐를 가지고 ARM 엔지니어랑 인텔 엔지니어랑 재미있는 설전이 있었거든)
yOunGoNi | 2010/02/02 13:35 | PERMALINK | EDIT/DEL | REPLY
좋은 블로그 알려주셔서 감사합니다. 하드웨어 설계를 하면서도 기본적인 Clock Schme / PLL / GPIO 등의 활용과 개념이 부족한 것을 느끼고 있습니다. Embedded에 국한되지 않더라도 기본적인 내용에 대한 설명도 잘 나와 있네요.
요새 익뮤는 잘 쓰고 계신가요..저도 익뮤가 급 뽐뿌가 오고 있는데... 선뜻 구매하기가 꺼려지네요..문자 전송이나 GPS(맵 연동)가 잘되는지 알고 싶네요 ^^; 실 사용기 포스팅도 기대하고 있습니다.
babyworm | 2010/02/04 02:34 | PERMALINK | EDIT/DEL
익뮤는 아주 잘쓰고 있습니다.
노키아의 컨셉인지.. 기본적인 기능은 아주 편한데(초성 검색도 되고..), 영상통화 하는 방법이 약간 귀찮고 (메뉴를 몇번 거쳐야해서).
어떤 기능은 깜짝 놀랄만큼 잘 만들었는데, 어떤 기능은 허접하고.. 이상한 컨셉이에요 ㅋㅋ
여하튼 GPS 아주 연동 잘되고(사진에 지오테깅, 구글맵 등등), 문자 전송은 기본으로도 나쁘지 않지만 여러가지 앱이 있으니 그걸 사용하셔도 되겠고..
인터넷 접속은 내장 브라우져도 훌륭하고, 오페라는 더 훌륭하고..유투브도 되고.. 뭐 이정도.. :)
메일 확인이나 스케쥴 확인은 요즘 거의 다 익뮤를 이용해서 하고 있어요.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
완벽 잡담..
[babyworm, 2009/07/28 09:55, 개인적인]
네이밍이라는 것이 아주 중요하다고 생각합니다.
회사에서도 학교에서도 네이밍이란 것이 중요하다고 생각하고 있는데, 이건 저만 그런것이 아니고 H&P 책의 저자이기도 한 David Patterson교수의 주장이기도 합니다.
좋은 이름, 부르기 좋은 이름을 만들고 좋은 뜻을 만드는 것이 중요하다는 거죠.

오늘의 완벽 잡담은 이 네이밍에 대한 이야기입니다. ^^;

자주 가는 사이트에 가끔 "한국에 절대 진출이 불가능한... "이라는 글이 올라오는데, 오늘은 우리말로 부르면 약간 많이 그런 이름을 가진 가수가 소개되었습니다. 제 생각으로도 절대 진출 불가 아닐까 싶습니다.

이런 비슷한 것이 JOT note 같은 건데(욕 아닙니다.. ^^; jot down 이라는 것은 메모하다는 의미로 아주 아주 많이 사용되는 구문이죠. ), 메모 노트 프로그램인데.. 참..노트도 있구요.. 여하튼 어감이 그래서 우리나라에서는 사용하기 어려울 것 같습니다.

지금은 몇번의 이름 변경을 통해서 SoC Forum 정도로 바뀌었지만, 예전에 우리나라 비메모리 반도체 기업체들의 협회도 참 어감이 그랬더랬다.. ASIC Design Association.. 줄여서 ADA...  (아마도 어감이 별로라서 이름을 바꾼것이 아닐까? ^^;)
물론, 내외부에서 '에이다'로 불러줄 것을 요청받았습니다만, 다들...

또 지금은 사라졌지만, 국내 IP 유통의 1세대라 볼수 있는 System Integration and IP Authoring Center 도 그 줄임말로 이야기가 많았죠. 줄임말은 당연히 SIPAC.
물론, 당연히 내외부에서 '싸이펙'으로 불러줄 것을 요청 받았습니다만, 다들....

여기서 또 옆길로 빠지자면 SIPAC이 사라진 것에 대해서는 여러가지 이유가 있습니다만.. 사실 전 개인적으로 바른 정책적 판단이었는지는 의문입니다. 물론, IP를 담당하는 기관이 SIPAC과 ETRI 산하의 기관으로 나뉘어져 있었으니 통합할 필요가 있었을 것인데..
통합에 의하여 사라진 것이 아니라 SIPAC을 KIPEX라는 기관으로 이관하였을 뿐이고, KIPEX라는 기관도 이번에 저희쪽의 프로세서 지원 센터 쪽으로 통합 운영되는 것으로 가닥이 잡혔지요.(물론, 저희는 IP 유통에 관여하지 않고 단지 특허청에서 만든 IP에 대한 보급만 관여하게 됩니다.)

IP 유통이라는 것이 실제적으로 빈번하게 일어나고 있지만, 대부분 기업대 기업으로 일어납니다. 물론, 정보는 D&R 과 같은 사이트를 통해서 정보를 얻은 후 기업간에 거래가 일어나는 경우가 많습니다. 즉, IP 유통이라는 건 아마도 돈을 벌수 있는 모델이 없을 것이라 보는데, 이것이 기업체에 의해서 운영되었을 때는 음.. 글쎄요..

실제적으로 IP 유통이 원활하게 이루어지려면, 표준화된 IP 보호 장치가 필요한데, IEEE 등에서 노력 중입니다만, 아직 실무에서 보급되지는 않은 상태이니 시간이 좀 더 필요하겠지요. 아.. 또 옆길의 옆길로 빠졌군요..
다시 돌아오면, SIPAC 같은 기구는 비영리 기관으로 학교의 IP를 위탁 받아서 정비하고, 상용화 가능성을 모색할 수 있는 형태의 기관으로 커 나갔으면 어땠을까 하는 생각이 있습니다. 예전처럼 단순 유통이 아니구요.. :)  

다시 네이밍 이야기로 돌아와서..

Core-A의 네이밍은 상당히 좋아요. 붙여쓰면 Corea도 되고 (물론 의도했겠지요?)
이름처럼 좋은 코아가 되길 바랍니다. 아직은 창출 사업쪽에서 비지니스를 위해서 필요한 것에 대한 인식이 부족하신 듯 한데, 저희 센터 쪽에서 적극적인 feedback이 있어야 겠지요..

EISC의 경우 네이밍이 의미상으로는 적절한데, RISC/CISC와 같은 거대 담론에 휩쓸리기 쉽게 네이밍 된 것이 못내 아쉽습니다.
EISC의 경우는 compressed code RISC 형식을 가지고 있는 프로세서인데, 코드 밀도와 메모리 접근에 대하여 최적화되면서 몇몇 CISC적인 요소가 추가되었다는 특징이 있습니다.
그래서 RISC+CISC = EISC 라는 마케팅 용어가 만들어졌던 걸로 추정하는데(이 당시에는 제가 EISC 프로세서 설계 프로젝트에 처음 참여하던 시기라서요 ^^;), 학계에서는 이런 부분에 대해서 매우 꼼꼼하기 때문에 당연히 맹공을 받았지요.. ^^;
학계쪽으로는 compressed code RISC의 일종이라는 점을 강조했으면 좀 유연하게 풀었을 텐데요..

그래도, 뭐 어찌보면 무관심보다야 논란이 더 좋죠 ^^; (마케팅에서는 그걸 노렸을지도..)
당시에 회사에서 적절히 대처하지 못한것이 못내 아쉬울 뿐인거죠 ^^

이상 오늘의 완벽 잡담 끝..
babyworm
2009/07/28 09:55 2009/07/28 09:55
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/304
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
마이크로 프로세서에 관심 있으신 분을 위한 글.
[babyworm, 2009/07/23 15:38, SoC 설계 관련/마이크로 프로세서 이야기]

이 글은 예전에 쓴 "프로세서/비메모리 반도체 설계를 희망하시는 분들께"라는 글과 연관성이 있습니다. 단지 프로세서 설계를 희망하시는 분들께 유용할 수도(?) 있는 내용 위주로 쓰여졌다는 것만 다르겠습니다.

일단 마이크로 프로세서라는 분야에 대해서 설명이 필요할 것으로 봅니다. 학교에서 마이크로 프로세서 구현에 대한 연구는 EE(전자공학)에서 이루어지는 것이 대부분이며, 기업체의 경우 embedded microprocessor는 상당히 많은 업체에서 상용화에 도전하고 있습니다.

하지만, 마이크로 프로세서라는 분야는 그 특성상 몇몇 ISA(명령어 셋 아키텍쳐) 들이 그 점유율을 크게 가져가는 경우가 많기 때문에, 독자적인 ISA를 지닌 마이크로 프로세서를 만들어서 성공한다는 것은 매우 어렵습니다. 이는 사용할 수 있는 프로그램의 수가 많고, 개발자 pool이 튼튼한 프로세서가 계속하여 성장한다는 당연한 이야기(eco-system이라고 보통 표현되는..) 때문입니다.

일례로 PC/서버 계통에서는 x86 ISA가 완전하게 시장을 장악했다고 해도 과언이 아니며, 그 이외의 ISA가 들어오기는 매우 어려울 것으로 봅니다. (그런 측면에서 저는 ARM이 PC 마켓 - netbook이라 불리는 부분에 있어서도..-에서 점유율을 가져 오기는 매우 어려울 것으로 생각하고 있습니다.)

국내에서는 자체 ISA를 가진 프로세서를 설계하는 회사도 거의 없을 뿐 아니라, 이를 지원해 줄 수 있는 컴파일러와 OS를 만드는 회사도 거의 없습니다. 여러가지 여건 상 마이크로 프로세서를 하시는 분들께는 좋지 않은 여건이지요

그럼에도 기업체에서는 학교에서 마이크로 프로세서를 선택하신 분들에 대한 요구가 적지 않은 데요.. 그 이유는 마이크로 프로세서를 만들기 위함이라기보다, 마이크로 프로세서를 이루고 있는 여러 가지 기술을 기반으로 다른 기술에 적응이 빠르다는 장점 때문입니다. 마이크로 프로세서를 만드시는 분들은 소프트웨어와 하드웨어, 모델링 등에 어느 정도 넓은 지식을 갖추어야 하며, 하드웨어에 있어서도 연산기, 제어 유닛, 버스, 캐시 등에도 어느 정도 이상의 지식을 갖추어야 하는데 이런 폭넓은 지식들이 다양한 설계를 하는데 좋은 밑바탕이 되기 때문입니다.

특히 마이크로 프로세서를 공부한다는 건 제어와 연산, 메모리 접근을 최적화 시키는 데 있어서 상당히 깊은 지식을 얻게 되는데, 이러한 지식은 여러 종류의 프로세서 – video, multimedia, audio, network processor등-에 아주 유용하게 사용할 수 있는 기반을 갖추게 된다는 걸 의미합니다.

대충 마이크로 프로세서를 공부한다는 것이 어떤 의미인지는 설명 드렸으니, 그럼 프로세서를 하려면 뭐를 봐야 하느냐 하는 문제에 대해서 설명하겠습니다.

프로세서를 만드는 건 1) 상위 레벨 모델을 기반으로 작업하는 것, 2) RTL 수준까지의 설계, 3) gate 수준에서의 설계 정도로 나누어 생각해 볼 수 있겠습니다. 세 가지 모두 어느 정도 갖추어야 하겠습니다만, 학교에서 논문을 쓰기 위해서는 1)번을 잘해야 하고, 칩을 보고 싶으면 2)번을 잘해야 하고, 우리나라 회사에서 적응하기 쉬우시려면 3)번도 잘해야 합니다.

일단, 프로세서에는 다양한 스펙트럼이 존재합니다. 일례로 프로세서의 구조, 분기 예측, pipeline의 형태, 새로운 연산기나 명령어 적용, 값의 예측 등에 따른 performance변화나 전력 소모의 변화를 연구하게 되는데, 이런 것을 할 때 마다 실제 칩을 설계를 하게 되면 졸업할 수 있는 분이 없으실 테니 일반적으로 C 수준의 simulator를 이용하게 됩니다.

이러한 연구에 들어가기 위해서는 앞에서 이야기 된 S/W가 어떻게 컴파일 되어서 프로세서에게 인식되는지에 대한 이해(ISA)와 더불어 프로세서를 구성하는 여러 가지 요소 – pipeline, cache, virtual memory –에 대한 이해가 있어야지 연구가 진행될 수 있겠습니다. 생각보다 기본적인 데이터 통신이나 데이터 구조에 대한 이해는 아이디어를 얻어내는데 아주 많은 도움을 줍니다. 또한, 많은 경우에 수학적 모델을 세워야 할 필요가 있으므로, 수학적 모델에 대해서도 알아두실 필요가 있습니다.전력 측정 등을 하게 되면 당연히 기본적인 전자회로에 대한 이해는 필수적일테구요

이러한 상위 수준의 모델을 이용한 연구에 가장 널리 사용되는 것은 simplescalar라는 시뮬레이터지요. 이 시뮬레이터는 alpha 아키텍쳐에 기반을 두고 처음에 만들어졌는데 구조가 유연해서 ARM 버전도 있고, (EISC 버전도 있고..) 전력 측정을 위한 simplepower라던지 여러 variation들이 있습니다. 여러분들이 연구를 진행할 때도 마찬가지로 해당 시뮬레이터에 자기의 아이디어를 적용시켜 modify하고 성능을 보는 형태로 연구를 진행하고, 논문을 쓰는 거죠. 이런 일을 위해서는 기본적으로 "C/C++ 와 기본적인 데이터 구조 및 알고리즘에 대해서는 어느 정도 이상 할 줄 알아야 합니다." 몇 번 말씀 드렸습니다만, 이쪽 분야 엔지니어에게 있어서 C/C++은 그냥 언어나 다름 없습니다.

두 번째로 자신의 idea가 어느 정도 확정되었으면, 이것을 RTL(register transfer level)로 설계(보통 verilogHDL이나 VHDL을 사용합니다.)해서, 논리 합성이라는 과정을 거쳐야 합니다. 이때 아이디어가 좋았고, 아키텍쳐가 좋았어도 논리 회로에 대한 기본적인 이해가 없다면 좋은 회로를 만들어내기 어렵습니다. 따라서, "논리 회로에 대한 이해"와 "RTL 설계를 위한 언어 - verilog든 VHDL이던"는 기본적으로 필요합니다.

세 번째로 gate 수준의 설계는 국내 대기업에서 프로세서 작업을 할 때 많이 사용되는데요..(gate 수준의 최적화를 많이 하시니..) 저는 이 분야에 교양적인 지식 밖에 없어서 조언을 드릴 부분이 매우 작습니다. J

아.. 책 이야기를 빼 놓았군요.

저는 Architecture에 있어서는 처음 시작하신다면 Hennessy & Patterson의 computer organization & design이라는 책이나 M.Mano의 책으로 시작하시는 것이 무난하다고 봅니다. 이후에 Hennessy & Patterson의 책(CAQA라 불리는)과 Flynn의 책을 추천해 드리고 싶습니다. 쉽게 읽힐 분량도 아니고, 쉽게 읽히는 내용도 아닙니다만 꼭 한번은 완독 하시길 바랍니다. 깊이 있게 보다는 넓게 보시고 싶으시다면 Sima의 책(advanced computer architecture)도 추천해 드릴만 합니다.

설계의 교양이라는 점에 있어서는 ASIC이라는 책을 보시고 난 이후에 Chinnery의 Closing the Gap Between ASIC and Custom이라는 책도 괜찮습니다. 상당히 괜찮은 관점을 보여줍니다.

RTL Design에 있어서는 (VerilogHDL이나 VHDL과 같은 HDL을 아신다는 가정하에 – verilog에 관련된 책은 예전에 제가 추천한 적이 있습니다. ) Reuse Methodology Manual을 "반드시" 읽어보시길 권하고 싶습니다. 학교에서 짜여진 코드가 생각보다 구닥다리 코딩 스타일을 가지고 있는 경우가 많습니다. Software engineering과 마찬가지로 하드웨어에서도 요즘 중요한 문제는 HDL코드의 readability와 reusability 입니다. 아주 critical 한 부분이 아니라면 약간 타이밍과 면적에 손해를 보더라도 요즘 코딩 스타일을 따르시는 것이 지속적으로 코드를 갱신 할 수 있습니다.

Verification에 있어서는 Comprehensive functional verification이라는 책을 권해 드리고 싶습니다. SoC 시리즈 입문서이기도 하고 잘 쓰여진 책입니다.

마지막으로 마이크로 프로세서를 만드시려는 분들께 한가지만 더..

마이크로 프로세서를 만들 때 가장 중요한 것이며, 가장 간과하기 쉬운 것이 ISA 입니다. 사실 ISA의 설계가 마이크로 프로세서에 있어서 절반 이상이라고 봅니다. 마이크로 프로세서에 있어서 ISA는 이 프로세서가 지향하고 있는 점(철학이라고 하면 좀 거창하고...)을 가장 잘 표현합니다. 학교에 계신 많은 분들은 "어떻게 하면 쉽게 프로세서가 설계 될 것인가?"라는 관점에서 ISA를 설계하시는 경우도 많지요 ^^; 또한, 어떤 프로세서의 경우는 표면적으로 지향하는 바와 ISA가 전혀 매칭이 안되는 경우도 있구요.

EISC의 경우는 ISA를 설계할 때 다양한 실험을 통해서 "프로그램의 크기와 메모리 접근이 가장 줄어들도록 하려면 어떻게 해야 하는가?" 라는 관점에서 모든 명령어 셋이 설계 되었습니다. 이는 임베디드에서는 프로그램의 크기 = cost라는 공식이 성립하기 때문이기도 하고, processor와 memory간의 속도 차가 점점 벌어질 것이라는 관점, memory접근으로 인하여 발생하는 전력 소모의 문제 등을 고려하여 잡은 목표입니다(EISC의 요즘 마케팅 포인트 중의 하나가 energy efficient microprocessor 이지요). 이를 위하여 다양한 실험이 수행되었고, 이중에 가장 적합하다고 생각하는 명령어 형태가 결정된 것이지요. 한 비트 한 비트 설계가 쉽게 이루어진 것은 아니고, 모두 의미가 있지요. 이후에 추가된 DSP 확장 명령어들도 각기 다양한 DSP 커널을 분석하고 이를 기반으로 ISA가 정해졌고, 구현할 때도 이런 부분이 고려되었습니다. 이런 목표 하에 설계되어 명령어의 형태가 일반적인 compressed code RISC들 보다는 약간 더 복잡하고, 이는 디코더 복잡도를 높이는 단점으로 바뀝니다. 달리 이야기하면, ISA를 설계할 때 어떤 결정은 어떤 면에서는 장점이 되지만, 다른 측면에서는 단점이 되는 부분이 있으니 조심해서 결정해야 할 부분이 많은 거죠.

마이크로 프로세서를 공부하고자 하시는 분들께 마지막으로 말씀 드리자면, 최소한 1년 정도는 넓게 공부하시고, 되도록 책을 많이 읽으시라는 "아주 지극히 일반적인" 말씀만을 드릴 수밖에 없네요. ^^; 또 한가지는 프로세서를 하실 분들은 DSP, 데이터 통신에 대해서는 어느 정도 알고 계신 것이 여러모로 도움이 됩니다.

결론 없는 "공부하세요"라는 글이 되었군요. 아.. 요즘 나 왜 이래.. orz

babyworm
2009/07/23 15:38 2009/07/23 15:38
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서

Trackback0 : Comment6
Trackback Address :: http://babyworm.net/tatter/trackback/303
박종연 | 2009/07/23 17:12 | PERMALINK | EDIT/DEL | REPLY
와.. 정말 커다란 도움이 되었습니다.
마이크로프로세서 설계에 대한 전체적인 리뷰가 한번에 되네요!!
항상 블로그에 올려주시는 글들을 감사히 읽고 있습니다.
앞으로도 쭈~욱 좋은 글들 부탁 드립니다.
babyworm | 2009/07/28 09:24 | PERMALINK | EDIT/DEL
네 감사합니다. :)
김동현 | 2009/07/24 19:44 | PERMALINK | EDIT/DEL | REPLY
감사합니다 ^^ 이번에 근 1년이라는 시간이 주어졌는데
위에서 말씀하신데로 열심히 공부해야겠습니다 ^^
babyworm | 2009/07/28 09:25 | PERMALINK | EDIT/DEL
제가 소프트웨어 부분의 서적을 소개하지 못했는데.. 소프트웨어 부분도 많이 보세요. 특히 OS에 대해서는 잘 봐두시는 것이 MMU를 만드실때 필수적입니다. :)
홍용재 | 2009/07/25 07:24 | PERMALINK | EDIT/DEL | REPLY
오교수님 수업 받으면서 instruction 7개, 당연히 cache 비슷한 것도 없고, pipeline도 없는 초간단 프로세서를 만들었었습니다. 프로그램 코드를 먼저 만들어 놓고 프로세서를 만들었었는데, 프로세서가 만들어 지는 과정에 따라 프로그램도 같이 변하더군요. 하하하 ^^;

어쩌다 보니 석사과정 지도교수님도 ARC 프로세서를 디자인하셨던 분이셨는데, 그 때 코드를 보면서 옛날에 열심히 공부했으면 이거 보면서 많은 것을 배울 수 있었을텐데 하고 후회가 되더군요. 아는게 없으니 갖다줘도 도무지 먹을 수가 없어서...^^;
babyworm | 2009/07/28 09:25 | PERMALINK | EDIT/DEL
오~ ARC !
우린 언제나 ARC 처럼 크려나.. :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
개소식 정보
[babyworm, 2009/06/26 18:22, 개인적인]

2009년 6월 29일 12시 부터
서울 그랜드 인터컨티낸탈 호텔 2층 오키트 룸


--

국산 프로세서 지원 센터에 대한 글을 하나 올렸었는데요. 정작 중요한 장소를 안 썼더군요. :)
위와 같습니다.

별다른 행사는 없고, 간단한 소개와 식사 정도랄까요. 저의 넓대대한 얼굴을 보시고 싶으신 분은 오세요 ㅋㅋ

--

사실 이 글은 매우 길게 적었었습니다. (제목도 길었었고 ㅋㅋ)

요즘 국산 프로세서 지원 센터에 대하여 이런 저런 일이 일어나서요.
특허청의 도움 요청을 받고 국내에서 프로세서를 하는 사람으로써 대의적인 측면에서 이 사업에 참여하기 위하여 회사의 수 많은 분들을 설득시켜서 참여했건만 양측에서 공격받고 있어서 정말 참담한 심정입니다.

정말 뭐가 국산 프로세서를 위하여 도움이 되는 것인지만 생각하면 참 쉬운 이야기인데 선의를 악의로 해석하고, 정치적으로 풀려고 하니 일이 더 힘들어 지는 것 같습니다.

많은 이야기를 적었었습니다만, 똑똑한 Textcube에서 글을 씹어주어서 민감한 이야기는 빼고 많이 순화해서 글을 쓸수 있게 되었습니다. :)

이럴때는 컴퓨터의 에러가 얼마나 고마운지 모릅니다. :)
(예전에도 온라인 장터에서 노트북 살 때 사기 당할 뻔 했는데, 송금 이체하는데 컴퓨터가 다운되어서 모면한 적이 있지요..당시로는 상당히 큰 사기 사건이었습니다. 여하튼 제가 컴퓨터신의 보호를 받고 있는지도.. ^^ v)

여하튼, 지난 한 주는 제가 선택한 길에 대한 깊은 회한을 느낀 한 주였습니다.



babyworm
2009/06/26 18:22 2009/06/26 18:22
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/296
홍용재 | 2009/06/30 04:16 | PERMALINK | EDIT/DEL | REPLY
그저 힘내시라는 말 밖에 할 수가 없네요. 직접 겪어본 적은 없지만, 비슷한 얘기를 들을 때 마다 가슴이 답답해 집니다.최근에 한국형 FPGA 개발과 국산 프로세서 관련 기사들을 보면서 반가워 했었는데...

힘 내시고 그래도 무조건 다 잘 될 것이라 믿습니다. ^^
babyworm | 2009/06/30 19:48 | PERMALINK | EDIT/DEL
고맙네~ ^^;
이런 저런 것을 보고 있는 것과 공격을 받는 것과 불신과 이런 것들에 이제 좀 지쳤다는 것이 솔직한 이야기겠지.

어찌 보면 다 내가 부족한 탓이에요 ^^;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
AE32000C-Lucida 프로세서 기반의 첫 상용칩. CANTUS
[babyworm, 2009/06/24 00:07, 개인적인]
이번에 회사에서 CANTUS라는 저가 MCU가 공식적으로 론칭했고, 론칭하자마자 양산 오더가 들어와서 양산에 들어갔습니다. 이 MCU는 저희 팀이 개발한 AE32000C-Lucida 프로세서라는 것이 처음 적용된 상용화 칩이지요.

EISC 프로세서로 저희가 주로 개발하는 프로세서는 에너지 효율과 DSP 연산 처리가 강화된 AE32000C 라는 ISA를 위주로 하고 있습니다. 대부분의 개발 방향이 비용 효율성과 에너지 효율성이라는 부분에 초점이 맞추어지지요. 분기 예측 기능도, 파이프라인도, 캐시 구조도 이쪽에 방향성을 두고 개발되었습니다.

기존에 AE32000C 시리즈에서 가장 많이 사용된 AE32000C-Lucifer프로세서1를 기반으로 기반 성능을 10% 이상 높이고 면적은 줄이고, 에너지 효율도 높이고, 디버거 형태나 효율도 높이고.. 이런 형태로 개발된 것이 AE32000C-Lucida 프로세서지요. 사실 내부적으로 개발이 완료가 된 것은 몇년 되었고, 라이센스나 데모 칩등은 몇번 나왔는데, 이제야 첫번째 상용칩이 나왔으니 상용화라는 것이 참 시간이 많이 걸리는 작업이긴 합니다.

이번에 나온 CANTUS는 범용 MCU로 응용에 필요한 수준의 SRAM과 NOR flash가 내장되어 있기 떄문에 3.3V 전원과 크리스탈만 연결하면, 동작시키는데 문제가 없다는 장점이 있죠. 좋은 음질이 필요치 않다면 CODEC이 내장되어 있고, EISC를 위한 MP3 디코딩 프로그램이 제공되니까 간단한 MP3 플레이어를 만드는 건 아~주 간단하죠. (물론, 좋은 음질을 원한다면 audio codec을 붙이는 것이 깨끗하죠.. 이를 위한 인터페이스도 있고요)

여담입니다만, 저는 저희회사에서 이런 MCU를 많이 하는 것이 좋을 것이라 생각해요.
아키텍쳐를 보급하는데는 수량이 많지 않은 멀티미디어 부분 보다는, 수량을 많이 소화하는 MCU가 더 좋을 것이니까요. (AVR같은 것 봐도 그렇지요 ^^;)


  1. 국내 S사를 비롯해서 많은 라이센스가 이 프로세서를 통하여 이루어졌습니다. [Back]
babyworm
2009/06/24 00:07 2009/06/24 00:07
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Cantus, EISC, MCU, 마이크로 프로세서

Trackback1 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/295
똑똑한 32비트 마이콤? Cantus
Tracked from Dr.Lee's Blog.. | 2009/06/24 12:00 | DEL
오래간만에 칩하나가 태어났다. 1999:04:17 01:00:06 외부 과제로 칩은 많이 해 오고 있는데, 회사 자체 제품으로는 비디오 오버레이 시장 말고 범용 프로세서 시장으로 오래간만에 제대로 된 제품 ?
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
국산 프로세서 지원 센터
[babyworm, 2009/06/19 08:46, SoC 설계 관련/관련 새소식]
특허청의 Core-A라는 프로세서에 대한 상용화 지원을 도와달라는 부탁을 받은 것은 작년 말의 일인 것 같습니다. 개인적으로는 블로그에서 몇번 밝혔듯이 이 바닥 자체가 넓어지는 것이 제가 바라는 것입니다만, 프로세서 만들어 파는 회사에서 잠재적인 경쟁상대가 될 수 있는 프로세서에 대한 상용화 지원을 한다는 건 쉽지 않은 노릇이지요.

각 프로세서에 대한 포지셔닝에 대한 고민이 한동안 있었고, 결국은 상용화 지원을 도와주는 것으로 가닥을 잡았습니다. 단, 조건은 Core-A 뿐만 아니라 EISC 프로세서의 상용화도 같이 지원할 수 있는 지원 센터로 운용하겠다는 것이 중요한 부분이었습니다.
특허청에서 이런 저런 내부적인 논의가 있었겠으나 이를 받아들이면서 Core-A와 EISC를 아울어 지원해 주는 국산 프로세서 지원 센터가 출범하게 되었고, 공식적인 개소식이 6월 29일에 있을 예정입니다. 1

Core-A의 경우 아직은 기술적으로 해결해야 할 부분이 존재하고 있으므로, 본격적인 보급은 내년정도 부터 시작될 예정이고 올해는 기술적인 평가와 시장에 대비하기 위한 이런 저런 작업이 진행될 예정입니다. EISC 부분의 마케팅은 이쪽 센터 부분에 통합되어 강화되어 운영될 예정이구요

이번달 부터 운영이 시작되었는데, 특허청 분들이 너무 의욕적이라 저희 내부적으로 정비가 안된 상태에서 운영을 시작하면서 내부적으로 좌충우돌하는 중입니다. 차차 해결되려니 생각하고 있습니다. 제대로 돌아가려면 시간이 좀 걸릴 것이라고 생각하고 있습니다.

추후에 국산 프로세서 지원센터의 소식을 더 올리도록 하지요.



p.s. 진작에 국가에서 비영리 기관으로 이런 기관을 만들어 주었으면 좋았을 거란 생각이 있습니다. 좀더 중립적인 입장에서 컴파일러와 프로세서에 대한 기술을 지원하고, 공동 마케팅을 수행할 수 있는 기관 말입니다. 비록 저희 회사지만, 치우치지 않고 업무를 수행하려고 노력하려 합니다.  (사실 특허청 입장에서는 Core-A가 많이 상용화 되면 좋은 거고, 에이디칩스란 회사 입장에서는 EISC가 많이 팔리면 좋은 것이지만, 저의 입장에서는 바닥 자체가 넓어지면 좋은 거라서요..^^;  )
  1. 물론, EISC 관련 비용은 저희가 매칭 펀드라는 개념으로 지출하는 방향으로 되었습니다. 그래도 특허청의 생각에서 출발했고, 비용도 많이 받고 있으므로 특허청의 Core-A에 대한 부분에 대하여 많이 신경쓰고 있습니다. [Back]
babyworm
2009/06/19 08:46 2009/06/19 08:46
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
국산 프로세서 지원센터, 마이크로 프로세서

Trackback0 : Comment6
Trackback Address :: http://babyworm.net/tatter/trackback/294
donny | 2009/06/19 10:41 | PERMALINK | EDIT/DEL | REPLY
오랜만의 포스팅이시네요. 건강은 좀 회복되셨는지요?
6월29일에 개소식이 있군요. 시간되면 한번 들러봐야겠네요 ^^
babyworm | 2009/06/20 22:30 | PERMALINK | EDIT/DEL
엇.. 저의 소식은 어찌 ^^;
병(?)은 매우 호전되었습니다. 이제 안경도 쓸 수 있는 경지에 ㅋㅋ
네.. 시간되면 오세요~
helloska | 2009/06/19 11:23 | PERMALINK | EDIT/DEL | REPLY
축하드립니다.
박인철 교수님 백방으로 뛰어다니시고,
ICS랩 학생들 심하게 힘들어 하던데...
결국 결실을 맺는군요.

EISC 와 Core-A 의 건승을 기원합니다.
대한민국 비메모리 화이팅입니다. :)
babyworm | 2009/06/20 22:29 | PERMALINK | EDIT/DEL
감사합니다. 프로세서란 것이 프로세서 자체보다는 그 주변의 것이 많아서 이제 시작이죠. 잘 될것이라 믿습니다. ^^
비밀방문자 | 2009/06/20 01:54 | PERMALINK | EDIT/DEL | REPLY
관리자만 볼 수 있는 댓글입니다.
babyworm | 2009/06/20 22:28 | PERMALINK | EDIT/DEL
잘 되겠지요~ :)
네. 저도 뵈었으면 좋겠습니다. :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
새로운 EISC 기반 제품.. 출장
[babyworm, 2009/04/13 19:13, 개인적인]
1.
그전에도 보안 카메라 쪽에서 나름 인지도가 있는 S 계열사의 Winner3, Winner4 시리즈에 EISC가 채택되었었는데, 이번에는 S사의 보안 카메라 부분의 A1이라는 칩에 채택되어 양산되었습니다. (http://www.dt.co.kr/contents.html?artic ··· 32718001) 이 제품들에 대한 라이센스가 몇 년전의 일인데, 이제야 성과물이 나오는군요. 

EISC 프로세서의 경우 그 동안 이것 이외에도 이쪽 저쪽에 라이센스가 좀 있는데, 작년부터 미미하지만 로열티 수입이 발생하기 시작한다는 점, 그보다 타사에서 상용화에 성공한 제품이 하나둘씩 나오고 있다는 점이 좋은 현상인 듯 합니다. 

프로세서라는 것이 시장에서 받아들여지는데 참 오래걸리는 놈이라는 걸 다시 한번 깨닿고 있습니다. 

2.
COOLCHIPS를 보기 위하여 내일 출국합니다. Poster 섹션에 많은 한국분들이 있으시더군요. 기회되면 즐거운 시간을 :)

한가지.. 
밤에 집에 가면 졸려도 참고 있다가 후다닥 달려와서 안기는 14개월된 우리 딸래미가 마음에 걸립니다. 


babyworm
2009/04/13 19:13 2009/04/13 19:13
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, 마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/286
GUNDAM | 2009/04/16 16:26 | PERMALINK | EDIT/DEL | REPLY
오실때는 마음은 가볍게 양손은 무겁게~~
아시죠~
babyworm | 2009/04/20 12:14 | PERMALINK | EDIT/DEL
아키바에 갔었는데, 좋아하실만한 것들이 많더군요.. 환율크리로 사오지는 :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
상당히 괜찮은 microprocessor report deal
[babyworm, 2009/04/08 13:27, SoC 설계 관련/관련 새소식]
제가 즐겨보는 microprocessor report가 이번에 행사(?)를 하는군요. 신규 가입만 가능하다니 ㅠㅠ; (기존 가입자를 위한 deal도 만들어라~)

저희 회사는 2년 짜리를 구매해 둔 상태라 관계 없는 상태입니다만, microprocessor report를 구매하시고자 하는 분들께는 좋은 소식이겠네요. 4월 30일까지구요. Processor watch라는 e-mail news letter에 가입자 대상인데, 이 뉴스 레터가 무료기 때문에 원래 가격(1년에 $895)보다 $200불 싸게 보실 수 있겠네요. (흠.. 환률 생각하면 흠.. 그래도 예전에 신청한 것이 유리한 것일 수도 있겠네요. )

개인적으로 보는 건 힘들겠고, 도서 구입비가 남아있는 관련 기관/랩에서는 관심가져 볼만 하겠습니다. :)

----
Dear Colleague:

During this time of economic strife, I would like to extend a special
offer to all of our Processor Watch subscribers.  From now until April
30, 2009, you will receive a $200 off of a one-year web-only
subscription to Microprocessor Report by simply contacting me at
480-483-4441 or at epotter@reedbusiness.com.
This offer is for new subscriber only.

If you have questions, don’t hesitate to contact us.

Best,

Elaine

Elaine Potter
480-483-4441
epotter@reedbusiness.com


----
babyworm
2009/04/08 13:27 2009/04/08 13:27
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
microprocessor report, 마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/284
홍용재 | 2009/04/17 03:36 | PERMALINK | EDIT/DEL | REPLY
오랜기간 북마크에 걸려만 있습니다. 회사 휴게실에서 언뜻 본 것 같기도...^^;
babyworm | 2009/04/20 12:14 | PERMALINK | EDIT/DEL
아마 구독하고 있지 않을까 싶어요.. 재미 삼아 읽어볼 만한 잡지이니..
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
새로운 EISC processor
[babyworm, 2008/12/06 16:31, SoC 설계 관련/마이크로 프로세서 이야기]

저희 팀에서 이번에 새로 만든 EISC processor인 Empress에 대한 기사가 많이 나오고 있습니다. 단신을 제외하고도 꽤 많이 나왔군요.

 

  • 에이디칩스, 32비트 프로세서 코어 개발 [디지털 타임즈:12/5]
  • 에이디칩스, 모바일용 프로세서 코어 개발 [전자신문:12/5]
  • 에이디칩스,32비트 EISC 마이크로 프로세서코어 개발 [전자신문:12/4]
  • 에이디칩스, 32비트 ESIC칩 코어 개발 완료 [머니투데이:12/4]
  • 에이디칩스, 32비트 프로세서 신기술 개발 [머니투데이; 12/4]

 

일단 정말 승질 머리 디러운 팀장의 강력한 태클과 갈굼을 이겨내고 좋은 결과를 거둔 팀원들에게 최고의 찬사를 보내고 싶습니다. 짝짝짝~! (제가 그 팀을 알아서 하는 이야긴데, 제가 그 팀장 밑에 있었으면 아마 회사 때려쳤을 겁니다. ㅋㅋㅋ)

여하튼, 새로운 프로세서에 많은 관심이 보여지고 있다는 점에서 상당히 기쁘긴 하지만, 대부분의 기사가 속도에 방점을 찍는 관점에서 많이 기술되어 있다는 점은 약간 아쉬운 점이지요. 사실 속도를 높이는데 여러 가지 요인이 있겠지만, 마이크로 아키텍쳐적인 접근을 제외한다면, 가장 중요한 것이 좋은 공정 + 좋은 cell library + 좋은 macro block을 사용하는 것이 중요합니다. 근데, 저희는 그다지 큰 회사가 아닌 관계로 좋은 공정은 물론이요 좋은 cell library(고속 cell library는 따로 비용 청구가 되지요)나 좋은 macro(특히 cache tag에 사용되는 CAM이 아닌 일반 High density single port SRAM을 사용하게 되면 속도차이가 심하죠..)를 사용하는 것이 비용의 문제로 쉽지 않다고 인식하고 있습니다. 따라서, 속도는 마이크로 아키텍쳐에서 할 수 있는 수준까지만 잡아놓자는 것이 저의 일관된 접근 방법입니다.

이번 Empress 프로세서는 단순한 MHz 단위의 클럭 속도보다는 면적이나 전력 소모를 줄이고, 클럭당 명령어 수를 높일 수 있는 방법, 그리고 자바 언어 가속 기술에 무게를 두고 만든 버전입니다. 그래서, 적은 면적(대략 동급 ARM의 절반 크기)에서 좀더 정교한 분기 예측기와 loop 처리 기법, out-of-order completion 방법, non-blocking cache등의 주요 기술을 저희 프로세서를 위하여 개발하는데 공을 많이 들였습니다. 물론 부족한 부분이 아직 많아서 좀 더 노력해야 할 부분이 많지요.

보도 자료 상에서도 위의 이야기가 많이 있었는데, 실제적으로는 거의 다루어지지 않아서 좀 아쉽습니다. (기자 분들께서 비 전문가를 위해서 가장 이해하기 쉬운 부분을 발췌하신다는 것은 알고 있습니다만..)

앞으로도 저희 프로세서는 특별한 일이 없는 이상(예를 들어, 가끔 정말 모르시는 분께서 '어찌되어도 좋으니 xxxMHz를 맞추어야 한다'라고 외압을 넣으신다던지..) 단순히 클럭 끌어올리기는 없으며, 1) 명령어 수준의 병렬성과 쓰레드 수준의 병렬성을 찾아가는 방향과 2) 자바와 같이 intermediate language를 이용하는 환경을 가속하는 방향으로 발전할 예정입니다.

특히 2009년, 자바 언어와 2D 벡터 그래픽은 embedded 분야에서 매우 중요한 명제가 될 것으로 예측하고 있습니다. 그래서, 저희 팀에서는 프로세서의 자바 가속뿐 아니라 2D 벡터 그래픽 분야도 같이 병행하고 있지요. 2009년 요맘때쯤 또 한번 재미있는 소식을 전해 드릴 수 있기를 바라고 있습니다. ^^;

내년 상반기 중에는 사내에서 사용하고 있는 linux수준의 OS 구동이 가능한 시스템 수준의 시뮬레이터인 ESCAsim(EISC System Cycle Accurate Simulator)의 소스 코드를 좀 정리해서 Open Source로 배포하는 것도 계획 중이며, IDEC과의 작업도 성공적으로 진행 중에 있고, EISC 개발 지원을 위한 Community site도 준비 중에 있습니다.

사람도 없는데, 참.. 벌이는 일은 많고 해서 걱정이긴 합니다. 어려울 때 한발자국 더 뛰는 사람이 내일을 기약할 수 있을 것이라 믿고, 힘들지만 몸땡이를 더 굴려보렵니다.

babyworm
2008/12/06 16:31 2008/12/06 16:31
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC processor, 마이크로 프로세서, 보도 기사

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/259
Donny | 2008/12/09 17:07 | PERMALINK | EDIT/DEL | REPLY
그동안의 많은 노력에 대한 결과를 얻으셨다니, 성질 더러운 팀장님께 축하드립니다. ㅋ
동작속도위주로 기사화된 것이 좀 그렇네요. 하긴... '와트당 0.2mW'라고 써놓은 이해수준에서 더 좋은 내용을 기대하긴 어려워보입니다.
Empress라는 제품명이 멋지군요. 여제라는 뜻 외에서도 'Embedded + Impressive'의 합성어 같은 느낌도 들고 좋군요.
babyworm | 2008/12/12 08:53 | PERMALINK | EDIT/DEL
감사합니다.
아직 개발의 첫번째 단계를 거친 것이라 아직 개선해야 할 부분이 아주 많습니다.
저희 EISC 프로세서 심볼이 벌새라서 전통적으로 벌새의 종에서 그 이름을 따오는데 Empress도 역시 벌새 종의 하나이죠. 물론, 적절하게 약자를 만든 것처럼 나름 full name을 만들지만요 ^^;
근데, Embedded + Impressive가 더 캐치프레이즈로 좋은걸요. 다음부터는 이걸로 이야기 해야겠네요 :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Asynchronous는 어려워
[babyworm, 2008/10/22 17:28, 개인적인]

요즘 MPSoC쪽 버스 문제 때문에 GALS(Globally asynchronous Locally synchronous)를 다시 들여다보고 있는데, circuit design을 배제하고 verilog netlist 수준에서 기존의 합성 툴을 이용할 수 있도록 생각하다 보니 자꾸만 생각이 제한됩니다. 조막만한 아이디어가 있긴 한데, 이게 구현 가능한 것인지 생각해 보는 것 자체가 고역인걸 보니 그간 머리를 안 돌리긴 안 돌렸나봐요.
GALS중에 Pausible clock control에서 아이디어를 가지고 오되, 귀찮은 부분은 던져 버려서 latency를 줄이는 것에 주안점을 두고 있는데.. 흠 쉽지 않네요..


요즘 회사에서 superscalar microprocessor/SMT 쪽 강좌(?) 세미나(?) 뭐 이런걸 진행하고 있습니다. 컴퓨터 아키텍쳐란 과목에만 한정되는 이야기는 아닙니다만, 이런 종류의 과목이 비교적 편한 과목이지요. (동의하지 않을 분들도 많을 것이지만. ^^;)
물론, 이런 저런 복잡한 배경과 논리들이 얽혀 들어가지만, 신이 만든 것을 연구하는 생물학이나 화학, 물리학에 비하면 컴퓨터 아키텍쳐 같은 것은 예전 사람들이 만들어놓은 걸 논리적으로 풀어가서 발전시키는 형태의 학문이기 때문에 일종의 퀴즈와 같다는 느낌을 많이 받습니다. (안사람이 분자 생물학쪽을 전공하고 있는데, 이야기 듣다보면 정신이 멍~ 해지지요..) 감탄. 또 감탄! 세상엔 똑똑한 사람이 끝도 없이 있단 말이죠. 젠장..


Android의 Dalvik VM[참고자료]이 공개되었습니다. (원래 되어 있던 건가요? 소스공개는 오늘 되었다네요.. 여하튼). 특징적인건 이 VM에서 사용하는 bytecode가 java와는 동떨어진 형태네요. register 기반의 bytecode니까 말이죠. 아주 좋아요. ^^; 단, 호환성 문제는 어쩔라고 그러는지(살펴보니 .class는 .dex로 바꿔야 한다네요.).. JavaME에서의 Sun license를 피하기 위한 방법이라는데, register 기반이기 때문에 전반적인 성능은 java보다 좋을 확률이 좀 있군요.


SIMD/Vector machine에 관심이 없던 건 아닌데, 좀 의외에 상황에서 건드려야 하는 상황이 발생했습니다. 인력의 문제로 사실 할까 말까를 한 2달 동안 고민했는데, 그냥 고민하고 앉아있는 시간이면 요상한 형태의 SIMD machine은 벌써 하나 만들었겠다라는 생각이 들었어요. 이것 저것 처한 상황 때문에 빠르게 진행될 가능성은 없지만, 간단하게 하나 만들어 봐야겠습니다. 대충 틀만 잡고 누구한테 떠넘겨 버릴지도. ㅋㅋ


회사차원에서 open source진영에 대한 지원을 고려하여, EISC 프로세서 관련 사이트 하나를 개설할까 개인적으로 생각중입니다. EISC processor/system시뮬레이터는 그냥 open source로 공개할 생각이고요. 예전에 작업된 이런 저런 시뮬레이터나 환경, 벤치마크 등도 같이 open해 버릴까.. 하는 생각입니다. 감추어두고 죽느니, 열어두고 살리는 것이 좋겠지요. IDEC과 공동으로 작업하는 MPW 지원 프로그램도 거의 정식 release 직전이고.. 이런 저런 "잡일"로 바쁘네요.

babyworm
2008/10/22 17:28 2008/10/22 17:28
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Dalvik VM, EISC, GALS, IDEC, open source, 마이크로 프로세서

Trackback0 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/251
donny | 2008/11/03 18:21 | PERMALINK | EDIT/DEL | REPLY
저도 이번에 비동기로 설계한 부분 때문에 좀 애를 먹고 있습니다. 비동기 회로는 생각할 것이 많네요.
동기회로만 사용해도 된다면 설계가 깔끔하고 설계환경도 잘되어있어 편리하겠지만 비동기로 설계해야할 부분은 적지 않은 것 같습니다.
babyworm | 2008/11/04 19:49 | PERMALINK | EDIT/DEL
네 말씀대로 가면 갈수록 비동기 기법이 적용될 것 같다는 생각입니다.
아쉽게도 학부/대학원 시절에 재미 삼아 책본것이 전부라서.. ㅠㅠ;
GALS는 논문 주제 찾다가 잡았던 거라 약간은 더 보긴 했는데, 본격적으로 손대기 전에 방향을 틀어서 실은 컨셉과 몇몇 기법만 아는 정도랄까요..
그래도, SPICE 계통을 안쓰고 netlist 수준에서 손댈 예정이라 아무래도 약간은 간단하겠지요.
kal9 | 2008/11/05 11:49 | PERMALINK | EDIT/DEL | REPLY
GALs 이거...Arteis 였나..;; 이 회사에서 최초로 상업했다...GALs라는 기술이 있더라... 이정도만 알고 있는데...;
직접 하시고 계시다니, 대단하십니다. 꼭 성공하세요 ^^

전문용어가 많이서 그런지...-_-;; 어렵네요...ㅋ
babyworm | 2008/11/05 19:58 | PERMALINK | EDIT/DEL
에구구구.. GALS나 비동기 프로세서하시는 분들도 많으신데..
저는 비동기에 있어서는 거의 초초보자입니다. GALS 기법은 NoC(Network on Chip)에서는 상당히 널리 사용되고 있는 기법입니다.
제가 예전에 NoC쪽에 관심이 있어서 GALS 기법을 쓰는 NoC에서, 시스템 전체의 전력 제어를 NoC의 각 switch(혹은 node)에서 각각 분산하여(서로 정보를 주고 받으면서)하되, 온도도 살펴보면서 속도/전력 제어하면 재미있겠다고 생각한 적이 있어서 약간 봤었는데요. 전력 쪽에 비슷한 개념이 있었고, 저희 랩이 비동기 하는 랩이 아니라 관두었죠 ㅋㅋ.
저는 안할 거니까.. 누가 NoC와 Thermal-Aware Computing이랑 엮어보세요. (그때 이후로 논문 찾아본적이 없어서 모르겠습니다만.. 아직은 없을듯 한데..) ㅋㅋ
지금은 NoC는 아니고 동기화때문에 보고 있습니다.

추가> 찾아보니 제가 생각했던 것과 비슷한 개념이 2004년에 있군요.. 저전력을 많이 하시는 Irwin교수님 방이군요 ^^;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
ARM의 Cortex-A9 프로세서.
[babyworm, 2007/10/05 13:32, SoC 설계 관련/마이크로 프로세서 이야기]

ARM에서 Cortex-A9을 발표하였다고 합니다 [ZDNet 기사]. 일단 저에게 있어서는 한숨 쉬어지는 일이고(ARM의 행보가 점차 빨라지니, 저희같은 업체가 따라잡을 수 있는 여지가 줄어들고 있는 것이 사실이니 말입니다.), 업계에 있어서는 환영할 만한 일이겠습니다. Cortex-A9의 경우 4개 까지 MP로 구성이 가능하다고 하니(MP 구성을 따지는 것으로 보아, cache snooping이 고려된 SMP겠지요..), 대단한 성능을 기대할 수 있겠습니다.

여기서 재미있는 것이 Intel의 대응인데요. 기존에 ARM 기반의 프로세서를 만들다가 해당 부분을 과감히 정리하였지요. 근데, EETimes에 의하면 Intel이 ARC의 프로세서를 라이센스했다고 합니다[EETimes 기사]. ARM 기반을 정리할 때는 x86기반의 embedded processor쪽으로 무게를 둔다고 생각했는데, 범용쪽은 x86기반, 저전력이 요구되는 application specific한 부분은 configurable processor인 ARC쪽에 무게를 두는 느낌입니다. 그래도, x86기반에서도 충분히 configurable하게 만드는데 어려움이 없을 것인데.. 저전력을 위해서 이런 결정을 내린 것이 아닌가 하는 생각입니다.

이러한 행보에 맞추어 저희 회사에서는 Heterogeneous MPSoC쪽에 무게를 두고, 여기에 적합한 lightweight/low power processor와 interconnection에 무게를 두고 있습니다[네이버]. 몇 가지 재미있는 아키텍처적인 시도를 구상하고 있는데, 보도 자료에는 좀 이상하게 나간 느낌이 있습니다. 물론, 마케팅적인 측면을 위해서 빠른 프로세서를 만들어야 겠다는 생각은 변함이 없습니다만.. 실제로 MPSoC에서 중요한 것은 적절한 성능의 작은 footprint를 지닌  low power 프로세서들이니까요. (적절한 성능이란 것이 task에 따라 바뀌는 것이므로, 아주 강력한 프로세서를 개발해야 할 필요성도 있는 것이지요)

뭔가 흥미 진진해질 것 같아요.

babyworm
2007/10/05 13:32 2007/10/05 13:32
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
ARC, ARM, Cortex, EISC, Intel, MPSoC, 마이크로 프로세서

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/196
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Tilera Processor.. 병렬성을 통한 성능 향상
[babyworm, 2007/09/13 21:13, SoC 설계 관련/마이크로 프로세서 이야기]

ISSCC'07에서 Intel에서 80개의  core를 집적한 Tera-FLOPS급 프로세서를 발표했었지요. 이번 HOT Chips 19에서는 Tilera라는 회사에서 TILE64 프로세서를 발표한 것이 화제가 되었습니다. 약간 비스므리한 과제를 기획하고 있어서 관심있게 몇 가지 프로젝트를 지켜보고 있었는데, TILE64는 사실 제가 알고 있던 프로세서는 아니었지요.

이는 NoC(Network-on-a-Chip)에 기반을 두고, 다수의 프로세서를 묶은 형태로 볼 수도 있겠는데요 (이런 프로세서가 처음은 아니지요. 기존의 intel의 network processor들이 이런 형태를 가져간 적이 있습니다). 사용하려는 application의 task parallelism이 상당한 경우에 유용한 형태라 볼 수 있습니다.


 

[TILE64의 구조; 일본 MYCOM에서 Tilera의 것을 인용한 것을 재인용합니다.]


이렇게 다수의 프로세서를 집적하는 경우, processor 개개의 속도보다는 area와 전력 소모가 중요한 요소가 됩니다. 프로세서의 속도를 올리는 것 보다 프로세서의 수를 증가시켜 성능 향상을 도모하는 것이니까요.

사실, 성능 향상에는 clock frequency를 증가시키는 것이 더 유용할 수 있습니다.(예전에 speed-demon approach를 말씀드린 것 처럼) 어짜피 전력 소모는 동작 주파수에 비례하니, 전력소모가 급증하지도 않을 테구요. 클럭 주파수를 2배 올려서 얻는 전력의 불이익보다, 코어 2개를 써서 얻는 전력의 불이익이 클 수도 있겠지요? 클럭 주파수를 2배로 올리면 performance가 2배가 되는데, 코어 2개를 쓰더라도 parallelism이 없으면 소용 없으니 말입니다.

그럼에도 왜 클럭 주파수를 높이지 않고 multicore를 사용할까요?

우선, 클럭 주파수를 높이는 것이 그렇게 녹녹하지 않다는 것이지요. 클럭 주파수를 높이기 위하여 합성을 심각하게 하면 area는 exponetial로 증가하며, 클럭 주파수를 높이기 위해서 미세 공정을 적용하면서 leakage current가 심각한 문제로 나타나고, 클럭 주파수를 높이기 위해서 dynamic gate를 쓰다보니 clock frequency 조절에 문제가 생기고, 클럭 주파수를 높이기 위해서 pipeline을 깊게 만들다보니 명령어 처리 효율(insturction per cycle:IPC)이 떨어지고, 이를 회복하려다보니 복잡한 dynamic branch prediction을 적용시켜야 하고.. 등등등..

클럭 주파수를 높이기 위해서 얻는 이득보다, 잃는 것이 많아지고 있는 것이지요. 즉, (parallelis이 어느 정도 존재한다면) 느린 코어를 여러개 쓰는 것이 유리한 시점까지 와버린 거라고 볼 수 있습니다. 문제는.. task 수준의 parallelism을 얻을 수 있는 application이 (현재로서는) 통신과 미디어 처리 부분이라는 것입니다. 이 문제의 극복은 쉽지 않아보이긴 합니다 ^^;

babyworm
2007/09/13 21:13 2007/09/13 21:13
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
TILE64, 마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/193
내가그린 | 2007/09/14 13:47 | PERMALINK | EDIT/DEL | REPLY
TILE64는 사실 그렇게 혁신적이지는 않죠. (HotChips니까 가능했을지도..)
2-3년전에 나온 Raza Microelectronics의 XLR 시리즈를 비롯해서 비슷한 구조의 칩이 많이 있었습니다.
물론 집적도의 차이가 있지만요. (공정이 다르니..)
요즘 학계에서 심심찮게 발표되는 내부 interconnection을 optic으로 하는 연구나,
load type에 따라 dynamic하게 core를 합쳤다가 분리했다가 하는 core fusion (Martinez 교수) 같은 연구,
DRAM layer를 한겹 더 올리는 3d stacking 구조등도 멀티코어와 연관지어 생각하면 재미있습니다.
babyworm | 2007/09/15 01:59 | PERMALINK | EDIT/DEL
혁신적이라기보다는 화제가된 거죠 ^^; 어찌보면, HOT Chip이라는 곳이 상용화를 위한 프로세서에 초점을 두고 있으니까요.
전 사실 얼마전에 MPR에 소개된 XMOS semi의 XCore가 더 관심이 가더군요. Optic으로 하거나, 3d stacking 기술은 약간은 교양 느낌이랄까요. :)
core fusion 기술은 한번 봐 두어야겠네요.
좋은 정보 감사합니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
2x2나 Quad나..
[babyworm, 2007/09/11 09:10, SoC 설계 관련/마이크로 프로세서 이야기]

프로세서 하는 사람으로 할 소리는 아닌듯 하지만, 사용자 입장에선 dual core 2개를 MCP하던, true quad core나 밥 적게 먹고, 일 잘하는 프로세서가 좋은 프로세서입니다.

예전에 포스팅에서 적은 적도 있지만, Intel의 전략은 일견 영악한 구석이 없잖아 있는 것이 사실이지만 사용자의 입장에서 그런 걸 따질 필요도 없으니, AMD가 굳이 "우린 true quad"라고 이야기할 필요도 없습니다.

단지, true quad의 장점을 보이면 되는 것이겠지요. 여기서는 잠깐 Quad core가 2x2보다 좋을 것 같은 부분을 짚어 보면,

  • processor 간의 bandwidth가 아무래도 PAD의 제약을 받고 있는 2x2전략보다는 높을 것이고,
  • PAD간에 소모되는 전력도 무시할 수 없을테니, 전력 소모도 적겠습니다. (그리, 크지는 않겠습니다만..)

장점만 있는건 아니니, 단점은

  • area가 그만큼 커진다는 말이니 아무래도 수율에 문제가 존재하겠고, 이는 단가 싸움에서 불리하게 작용할 가능성이 있습니다. 물론 2x2전략도 pad의 크기를 고려하면 마냥 행복한 전략은 아닙니다만..

같은 코어를 집적한다면 2x2보다 quad가 좋을 것이라고(가격은 둘째 치고) 말씀드릴 수 있겠습니다만, 현재로서는 뭐라 말할 수 없는 것이 intel과 AMD의 microarchitecture가 다르니 좀 애매한 부분이 있습니다.

물론, 발표된 barcelona자료에서는 몇 가지 장점(특히 대역폭에서)이 보이지만, 이것이 실제 performance로 연결될지는 좀 의문입니다. core당 1MB내지는 2MB의 L2 cache를 내장하고 나면, L2 이후의 traffic은 많이 줄어들지 않을까 생각도 됩니다.

결론은 시장 출시후에 나오겠지요

babyworm
2007/09/11 09:10 2007/09/11 09:10
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Barcelona, 마이크로 프로세서

Trackback0 : Comment1
Trackback Address :: http://babyworm.net/tatter/trackback/192
내가그린 | 2007/09/11 11:10 | PERMALINK | EDIT/DEL | REPLY
저도 같은 생각입니다. 소비자를 현혹시키는 AMD의 "진짜" 마케팅은 문제가 있죠.
설령 AMD가 주장하는 소위 "진짜" 쿼드코어가 그렇게 좋다고 하더라도,
경쟁사에서는 비록 2x2일 망정 훨씬전에 내놓아서 필요한 사람들은 진작부터 쓸 수 있었다는게
중요하다고 생각합니다.
물론 앞으로 코어 갯수가 더 많아지면 AMD의 "진짜" 소리는 쑥 들어가겠죠.
더이상 하나의 shared cache를 모든 코어에 연결하는 방법은 어려워지니까요.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
인터넷 연결..
[babyworm, 2007/07/15 21:37, 개인적인]
용인으로 이사왔습니다.
이사 뒷치닥거리로 바쁘기도 하거니와 결정적으로 인터넷이 연결되지 못한 열약한 환경이어서 글을 올리지 못했습니다.
L모사 선후배를 통하여 언제나 권유받는 P 광랜을 연결했습니다.
인사고과에 반영된다는 말에 도저히 다른 것을 선택할 수 없더군요. 쩝.. 아무리 전쟁이라지만, 아군의 사기를 이렇게 꺾으면서까지 사업을 해야 하는지 의문이기는 합니다. 뭐, 덕분에 폭발적인 가입자 증가지만요. 최종적으로 시장에서 승리하려면 어느 정도 가입자 규모가 유지되어야 하는 사업이니 어쩔 수 없을 것이라는 생각이기는 합니다만..

그러고보니, 시장에서 어느정도 점유율을 가져야지만 성공 확률이 높아지기는 CPU라는 것도 마찬가지군요.. 그렇다고 사원들에게 할당을 할 수도 없는 제품이니 고민이기는 합니다만.. ^^;
점점 빠른 행보를 보이는 ARM이나 MIPS에 대하여, 저희가 공략 할 수 있는 nitch market, 혹은 블루 오션을 찾아내는 것이 급선무겠지요.. 지난번에 아주 좋은 기회가 왔다가 손앞에서 사라진 것이 아깝기만 합니다. 일단은 EE에 중점을 두고 있습니다. 아시는 분은 아시겠지요.. EE :)
babyworm
2007/07/15 21:37 2007/07/15 21:37
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서, 이사

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/184
gnil | 2007/07/16 18:46 | PERMALINK | EDIT/DEL | REPLY
오늘 랩실 선배에게 권유받는 전화를 받고 신청했습니다;;
기존에 쓰던 게 있어서 망설였지만 워낙 저자세로 설득하시니...;;

P.S. EE가 뭔가요? 혹시 Extreme Entertainment ㅋ
babyworm | 2007/07/20 20:21 | PERMALINK | EDIT/DEL
^^; 역시 광범위하군요..
그래도, 파워콤의 품질이 괜찮더군요..
EE는 energy efficient입니다만, Extreme Entertainement도 좋은데요!
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
속도악마 대 머리괴물...
[babyworm, 2007/07/05 21:26, SoC 설계 관련/마이크로 프로세서 이야기]

착찹한 마음에 적은 글에 많은 분들이 격려해 주셔서 진심으로 감사드립니다.  착찹한 마음을 걷어내고 다시 나아기기 시작했습니다. 몇 번 적었듯이 쉽지 않은 길을 가는 것을 지지해 주고, 지원해 주는 회사에도 감사드리고 있습니다. 저희 프로세서에 부족했던 부분을 채울 수 있었던 좋은 기회였으므로, 너무나도 아쉽지만 EISC는 쉬운 길을 갈 운명은 아닌가 봅니다 ^^;

----
프로세서 설계에 있어서 두 가지 중요한 갈래가 있습니다.
바로 속도를 높이는 것이 최고라고 생각하는 접근 방법(소위 speed demon approach -  이후 SDA)와 클럭당 수행되는 명령어의 수를 높이는 방법(소위 brainiac approach  - 이후 BA -라 이야기하는)이 존재하는 것이지요.
두 가지 모두 아주 의미있는 접근이라고 할 수 있습니다. 예를 들어 SDA는 파이프라인 프로세서에서 명령어 수준의 병렬성(Instrcution level parallelism -ILP)를 하드웨어가 동적으로 찾아내는데는 어짜피 한계가 있으므로, 전반적인 클럭 스피드를 높이는 것이 좋다라는 생각입니다.
이 SDA를 기조에 두고 있는 아키텍쳐로 유명한 것이 Alpha였는데, 얼마전까지의 Intel의 Netburst microarchitecture 역시 SDA를 기반에 둔 것입니다. 최대한 파이프를 잘게 쪼개서 높은 클럭 주파수를 얻어냄으로써, 좋은 성능을 얻자는 것입니다.
두 번째 갈래인 BA의 경우 파이프라인을 잘게 나누어 속도를 높이는 것도 중요하지만 ILP를 최대한 찾아내서 IPC(instructions per cycle)를 높이는 것도 중요하다라는 관점입니다. 전통적인 컴퓨터 아키텍트들이 선호하는 관점이기도 하지요. 제가 AMD를 더 선호하는 이유도 IPC의 관점에서 좋은 프로세서를 만든다는 점 때문입니다. (물론, 인텔도 아주 아주 뛰어납니다. 코어2듀오를 보십시오!)
마케팅의 관점에서는 누구나 쉽게 이해할 수 있는 clock frequency를 따지기 때문에 SDA를 선호하기도 합니다. 이러한 관점은 IPC가 더 좋은 프로세서들에게는 좋지 않은 마켓 상황이므로 AMD가 처음에 (performance rate던가요? 기억이) 클럭 속도보다 높은 값(P4에 비교하면 어느정도 클럭에 해당한다는 의미의)을 사용하기도 했습니다.
이런 생각은 처음에 전혀 먹혀들어가지 않았지만, 인텔에서 코어 듀오 시리즈를 사용하면서 이제 폭넓게 먹혀 들어가고 있지요.

사실 SDA기반으로 프로세서를 만든다는 것은 마케팅의 입장에서 대부분 매우 유리합니다. BA는 benchmark 결과를 보여주어야 하니까요. 그런데, benchmark를 따져 보는 사람이 생각보다 없습니다. ^^; 아쉽게도
요즘들어서는 energy efficiency가 중요해지면서 BA가 더 각광받는 분위기이기는 합니다. :)
embedded도 마찬가지지요.

여담입니다만, 항상 BA라는 측면을 두고 설계해 왔는데요, 우선 뭐가 되었던 SDA가 필요할 때도 있습니다. :)

babyworm
2007/07/05 21:26 2007/07/05 21:26
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/183
felucca | 2007/07/20 05:09 | PERMALINK | EDIT/DEL | REPLY
저만해도 대학원 와서 공부를 하기 전까지는 AMD의 희안한 naming 정책을 이해 못했으니까요. 일반인들에게는 frequency 같이 이해하기 쉬운 single number가 먹혀드는 것 같습니다. P7의 취소 이후로는 그 single number가 core 숫자로 바뀐것같네요. core숫자가 frequency 숫자보다 더 성능하고 관련이 없을 수도 있다는(!) 문제가 있기는 하지만요. :)
babyworm | 2007/07/20 20:21 | PERMALINK | EDIT/DEL
그렇지요..^^;
그래서 마케팅 팀에서는 뭐니뭐니해도 클럭 스피드를 따지나봐요.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
참 파란만장합니다.
[babyworm, 2007/07/02 22:56, 개인적인]
음.. 원래 잉걸에는 손을 대지 않는 것이 정답이긴 한데.. 답답하긴 답답하네요.

몇번 쓴적이 있습니다만.. 개인적으로 프로세서를 만들어 봐야겠다는 생각에 이 일에 전념해 온지도 상당한 시간이 흘렀고, 어느 정도 가시적인 성과를 거둔 것도 있습니다. 아직은 마케팅력에 문제와 ARM의 거대함을 절감하고 있는 중이라는 것이 정답이겠지만.. 작은 회사에서 프로세서라는 하기 힘든 아이템을 가지고, 이만큼 버텨내면서 여기까지 온것이 자체도 대단하다고 생각하지요. 근데, 오늘 같은 일이 벌어지면, 제가 왜 프로세서를 했는지 참 의아합니다.

대중에게 잘 회자되지 않을 만한 무언가를 했다면 이슈화도 덜 되었을 것이고, 덜 힘들었을 것인데 말입니다.
예전에 회사에 좋지 않을 일이 있었을 때, 가장 먼저 나온 이야기가 "기술이 허깨비다"라는 말이지요. 그럼 제가 만든건 허깨비란 이야기지요 ^^; 뭐랄까요.. 많은 분들이 돈앞에서 이런 저런 이야기를 하는데, 그런 이야기를 보고 당시에 많은 엔지니어들이 회사를 떠났습니다. 자존심하나로 버티는 사람들이니까요.
이번에도 뭐 이런 저런 이야기 많습니다. 역시 또 나오는 이야기들 중의 하나가 "기술이 허깨비다"라는 이야기인데요.. 그 동안의 노력이 많은 분들의 말에 폄하되는 것이 참을 수 없군요. 여러 전문 위원들의 기술 평가 결과는 욕심 앞에서는 그냥 하나의 "글"일 뿐이고, 단지 뭔가 이유를 찾으려 하는 건 알고 있지만...
엔지니어로서 잘못이 있다면, ARM에 비하여 압도적인 performance를 내는 프로세서를 아직까지 만들지 못한 것이 잘못이겠지요. 이런 저런 말이 뭐가 필요하겠습니까.. ^^; 엔지니어는 기술로 자신을 나타내는 것이겠지요. Market 고려하지 않고 회사와 싸워서라도 제대로 하나 만들어야만 직성이 풀리겠습니다. 내년 9월 쯤을 기대해 주세요 
babyworm
2007/07/02 22:56 2007/07/02 22:56
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, 마이크로 프로세서

Trackback0 : Comment16
Trackback Address :: http://babyworm.net/tatter/trackback/182
gnil | 2007/07/03 01:40 | PERMALINK | EDIT/DEL | REPLY
이런... 뭔가 새로운 시너지가 나오나 싶었더니...
뚜껑 열기 전까진 정말 알 수 없는 세상이네요;;
힘내세요 ㅜ.ㅜ
babyworm | 2007/07/03 21:52 | PERMALINK | EDIT/DEL
헛.. 설계 회의 갔다왔더니만, 많은 분들이 리플 달아주셨군요..
사실 사외에서는 시끄러운데, 회사에서는 참 파란만장하다는 생각만하고 다들 열심히 개발중입니다. :)
감사합니다.
내가그린 | 2007/07/03 02:12 | PERMALINK | EDIT/DEL | REPLY
신문에서 결렬건을 읽었습니다.
저도 이 바닥 뻔히 아는데 지금까지 한국에서 버텨오신 것만도 대단하신겁니다.
최소한 기술과 경험이라도 머릿속에 남았지 않습니까. 그것만도 부럽습니다.
babyworm | 2007/07/03 21:52 | PERMALINK | EDIT/DEL
참 이 바닥이 재미는 있어요.. :)
걱정해 주셔서 감사합니다.
조운. | 2007/07/03 22:09 | PERMALINK | EDIT/DEL | REPLY
이 선임연구원님. 힘내세요. 파이팅입니다.
^^ ps. 죄송...
babyworm | 2007/07/03 21:54 | PERMALINK | EDIT/DEL
흠..다행히 회사에서 이 선임은 한명이니 그 친구한테 파이팅 메시지를 대신 전해드리겠습니다. ^^;
참고적으로 전 김책임입니다. :)
sunken | 2007/07/03 15:03 | PERMALINK | EDIT/DEL | REPLY
대전에서 조용히 컴파일러 뒤적이는 학생입니다.
좋은 글 많이 써 주셔서 조용히 읽고만 있었는데 안타깝기도 하고 해서 힘내시라고 덧글 남깁니다.
인수 소식을 들었을 때 처음엔 솔직히 의아하기도 했습니다.
마케팅 위주의 회사가 왠일로 기술개발에 그런 진지함을 보여주나 해서요.
그래도 나름 기대 많았는데.. 결국 이렇게 되니 정말 안타깝네요.
윗 분 말씀대로 여기서 그렇게 버텨오신 것 만으로도 대단하게 생각합니다.
조금만 더 버텨주세요. ^^
babyworm | 2007/07/03 21:58 | PERMALINK | EDIT/DEL
네.. 감사합니다.
지금 상황에서는 위에 본문에 적은 이유로 그만둘 수 없습니다. ^^;
버틴다는 느낌보다는 당연히 다시 돌아와 할일 하고 있는 기분입니다. 즐거운 경험은 아니었지만요.. :)
여담입니다만.. 컴파일러를 하시는 분이시군요! 국내에 컴파일러 전공하시는 분이 적어서, 저희 회사에서 아주 고전하고 있는데 말입니다. :)
혹시 나중에 기회된다면 같이 일할 기회가 있었으면 좋겠네요..
내가그린 | 2007/07/04 03:31 | PERMALINK | EDIT/DEL | REPLY
말이 나온 김에,
저는 보스턴(Cambridge)에서 프로세서 아키텍쳐 전공으로 포닥을 하고 있습니다.
8월말에 한국에 들어가는데, 한국에서는 이 전공을 살리기 (아니 더 정확히
표현하자면 "고집하기" ) 어려워서.. 다른쪽으로 돌려야 하지 않나 고민중입니다.

그래서 더 대단하시다고 말씀드리는겁니다. 98년? 99년? 시스템IC 2010 프로젝트에
저도 다른팀으로 참여했었는데 그때 EISC 보고 여태까지 지속될거라고는 상상도 못했습니다.
babyworm | 2007/07/03 23:39 | PERMALINK | EDIT/DEL
아.. 그런 인연이 있으시군요.. 반갑습니다. 다른 팀이라면 S사의 CalmRISC였겠군요.
제가 아쉬워하는 것중에 하나가 calm을 S사가 열심히 개발하고, 너무나도 쉽게 포기한 후 ARM으로 돌아선 것입니다. 참 좋은 기회였는데 말입니다. 당시 S사와의 경쟁 과제로 국책 평가 받을 때 재미있는 뒷 이야기가 많았지요 ^^;
현재 국내에서 저희 회사를 제외하고도 어느 정도 프로세서를 하는 팀은 몇 곳이 있습니다. 아쉽게도 상용화 계획이 있는 건 아니고 프로젝트 기반이라 어찌될지 모른다는 면이 있기는 하지만, 굳이 전공을 못 살리실 이유는 없을 것 같습니다. 부족하지만 저희 회사도 있구요 ^^;
내가그린 | 2007/07/04 03:33 | PERMALINK | EDIT/DEL
아 당시 저는 학생이었고 H전자의 서브과제로 멀티미디어 프로세서를 개발했습니다.
babyworm | 2007/07/04 18:17 | PERMALINK | EDIT/DEL
아.. 그러시군요. ^^;
비밀방문자 | 2007/07/04 10:23 | PERMALINK | EDIT/DEL | REPLY
관리자만 볼 수 있는 댓글입니다.
비밀방문자 | 2007/07/04 10:23 | PERMALINK | EDIT/DEL | REPLY
관리자만 볼 수 있는 댓글입니다.
babyworm | 2007/07/04 18:20 | PERMALINK | EDIT/DEL
EISC에 대한 문의 사항이 있으시다면, 언제든지 e-mail 주시기 바랍니다. 회사로 연락 주셔도 좋구요. :)
파파존스 | 2007/07/07 02:48 | PERMALINK | EDIT/DEL | REPLY
Dr.Kim님....
SKT에 당한것도 억울한데.. 또 파란만장한 사건 저희 팀에 한건 더 있습니다.
월요일 이야기해드리죠~
오늘 이사날인가요? 욕 보이소~
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
마이크로 프로세서가 나아가야 할 방향...
[babyworm, 2007/06/23 13:28, SoC 설계 관련/마이크로 프로세서 이야기]
쓰고보니 상당히 거창한 제목입니다.
요즘 프로세서 로드맵 작성중이라는 말씀을 드렸는데, 회사에 중대한 일이 생겨서 전면적으로 홀드 상태입니다. 가용 자원이나 target이 약간 수정되어야 하니 말입니다.
그래도, 마이크로 프로세서가 나아가야 할 방향성은 크게 달라지지 않겠지요. 단지, 현재 상황에서는 targeting하기 어려울 것이라 생각했던 목표를 추가적으로 설정할 수 있게 되었다는 것이 중요하겠지요.

Energy Efficient

현재 microprocessor 개발에 있어서 (EISC나 ARM같은 embedded microprocessor에 한정하지 않더라도) 가장 중요한 목표가 무엇이겠습니까?
아마도 energy-efficient 가 아닐까 생각합니다.
생각보다 많은 분들이 저전력 (low power)프로세서와 에너지 효율이 높은(energy-efficient) 프로세서를 혼용하여 사용하시는데, 사실은 약간 차이가 있습니다.

아시다시피 전력은 소모되는 에너지를 단위 시간으로 나눈 것이지요.
에너지는 일량. 즉 어떤 일을 끝내는데 필요한 힘이라 보시면 되겠습니다.

Low Power와 energy-efficient가 어떻게 다른지 한번 간단한 예를 들어 봅시다.

A라는 프로세서는 123.exe라는 프로그램을 한번 처리하는데 10초가 걸리며 100mw의 전력을 소모하는 반면,
B라는 프로세서는 123.exe라는 프로그램을 한번 처리하는데 2초가 걸리며 200mw의 전력을 소모한다고 생각해 보죠.

어떤 프로세서가 energy-efficient하겠습니까? 당연히 B 프로세서입니다. 전력소모에 있어서는 A라는 프로세서가 더 저전력이지만 말입니다.
Energy 단위의 중요성은 "동일한 일"을 수행하는데 얼마나 적은 에너지를 소모하는냐를 따지는 척도이기 때문에, 단순히 단위 시간당 얼마나 적은 "전력"을 소모하느냐와는 약간 다르다고 생각하시면 됩니다.

다른 관점에서 전력은 power supply가 얼마나 전력을 공급해 줄 수 있느냐와 발열에 영향을 미칩니다. 그래서 desktop/server에서는 평균적인 전력 소모가 얼마나 되는지가 중요합니다.
이에 반하여 Energy는 동일 용량 battery로 얼마나 버틸 수 있느냐를 결정할 때 매우 중요한 요소입니다.
단, 아무리 energy efficient하더라도 전력 소모가 크다면 (예를 들어 C라는 프로세서가 123.exe를 처리하는데 0.0001초가 걸리고 30W가 소모된다고 예를 듭시다), battery를 사용하는 시장 자체에 진입이 불가능할 수도 있습니다. 그런 관점에서는 low power와 energy-efficient가 밀접한 관계가 있는 것이겠지요.

요즘에 low-power보다 energy-efficient가 중요시되는 중요한 이유중의 하나는 dynamic power management 기법의 적극적인 활용입니다. Dynamic power management 기법은 "사용하지 않을때는 해당 유닛에 공급되는 전력을 최소화 한다"라고 생각하시면 되는데, 저전력을 위하여 느릿 느릿 오랫동안 일을 지속하는 것 보다, 빠른 시간에 작업을 끝내고 전력 소모를 더이상 하지 않는 것이 좋다는 것이겠지요.
여담입니다만, Dynamic power consumption 기법이 활성화되지 않았다면, 사실 energy-efficient와 low power는 동일한 언어로 표현되지 않았을까.. 라는 생각도 해봅니다.

또 다른 관점에서...
Enenry-Efficient는 Hardware만의 문제가 아니라 Software도 같이 노력해야 하는 문제입니다. (물론, 저전력도 그렇습니다만) Energy란 "어떤 일"을 수행하는데 소모되는 시간이기 때문에, "어떤 일"을 빠르게 수행할 수 있도록 더 효율적인 코드를 만드는 책임이 소프트웨어에게 있는 것이지요.

프로그래머의 관점에서

프로세서를 사용하는 프로그래머에게는 약간 다른 관점이 있는데, 프로그래밍이 쉬워야 한다는 측면입니다.
프로세서 아키텍쳐는 벌써 dual core, quad core로 발전하고 있으며, GPU들도 programmable shader를 가지고 있으므로, 아키텍쳐적인 형태로 보았을 때는 heterogeneous multiprocessor의 형태를 이미 취하고 있다고 보셔도 됩니다.
문제는 프로그래머들은 아직 multiprocessor를 사용할 준비가 되어 있지 않다는 것입니다. Multiprocessor를 지원하는 OS와 compiler, library의 등장으로 물론 점점 multiprocessor를 효과적으로 사용해 나가는 상황이 되어가고 있는 것은 맞습니다만, 아직 프로그래머들이 multiprocessor가 제공하는 기능을 충분히 활용하고 있는 상태는 아닙니다.  
점차 나아지겠습니다만, 프로그래머의 역량 강화가 매우 시급한 상황입니다.

babyworm
2007/06/23 13:28 2007/06/23 13:28
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
마이크로 프로세서

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/181
내가그린 | 2007/06/23 23:09 | PERMALINK | EDIT/DEL | REPLY
저도 energy efficient한 프로세서를 연구하고 있습니다.
Multicore, heterogeneous multiprocessor와 같은 구조는 energy efficient와 다른 개념이지만
요즘엔 워낙 같이 나올 때가 많기 때문에 따로 떼어놓고 생각하기 힘들죠. (그래서 프로그래머를 언급하셨구요.)
소프트웨어의 입장에서 현재의 thread programming 패러다임에 근본적으로 문제가 있다는 인식이 널리 퍼지고 있는게 사실입니다. 인텔에서 대학마다 multicore 프로그래밍에 대한 강의를 지원하고 많은 돈을 쏟아부었지만 그렇게 큰 효과를 보지 못한 것도 그렇고, 버클리 Ptolemy 시뮬레이터와 같이 십년 동안 디버깅했는데도 순식간에 뻗어버릴 수도 있다는 것도 그런 예지요. 그래서 작년에 Edward Lee 교수가 IEEE Computer에 기고한 "The Problem with Threads"라는 글이 큰 반향을 일으켰던 것이구요.
회사에서 16코어 네트워크프로세서를 써서 시스템을 개발해야 했었는데 소프트웨어개발자에게는 재앙과도 같은 일이었습니다. 이식성은 무조건 포기고 효율적은 커녕 functionally correct하게 만드는 일도 큰 일이었죠.
말이 길어졌는데, 현재 이 분야에서 하드웨어의 성능이 급속히 증가하고 있다고 무조건 좋아할 일은 아닌 것 같습니다. 개인적인 의견으로 이런 점이 하드웨어-oriented 아키텍트들이 가장 빠지기 쉬운 함정이 아닌가 하는 생각입니다.
babyworm | 2007/06/25 13:49 | PERMALINK | EDIT/DEL
아.. network processor쪽은 워낙에 multicore들이 많죠.
Sequential하게 작성된 프로그램을 multi processor 환경에 맞게 compile해주거나 job assign하는 일은 기본적으로 만만치 않은 테마인 것으로 알고 있습니다.
그렇다고 프로그래머가 parallism을 잘 살려서 프로그램을 짜는 일은 매우 고통스러운 일이지요.. 저의 경우 그야말로 취미 수준에서 MPI를 다루어 보았습니다만, 아주 고통이었습니다. ^^;
Multiprocessor 환경에서는 프로그래머, 컴파일러, 운영체제, 프로세서 모두가 서로 다른 level의 정보를 hint로 사용해야만 원하는 성능을 얻을 수 있지 않을까 생각합니다. 모두에게 전향적인 시선을 요구하는 것이지요. :)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
가상화 기술.. 왜 각광 받는가?
[babyworm, 2007/04/11 22:31, SoC 설계 관련/마이크로 프로세서 이야기]
이 글은 MPR의 "gHOST in the machine"이라는 3주간의 연재 기사를 읽고 이를 토대로 "제 기억 남은 내용과 그 간의 어설픈 지식을 버무려" 쓴 글입니다. 관심 있으신 분은 microprocessor report를 보시는 것이 더 좋은 글을 읽으실 수 있습니다.

요즘 마이크로 프로세서에서는 "가상화(virtualization)"라는 기술이 각광받고 있습니다.
Intel도 AMD도 서로 앞을 다투어 "가상화" 가속 명령어라는 것을 대대적으로 홍보하고 있지요.
그럼.. 가상화 기술이 대관절 무엇이관대 이렇게도 세상을 시끄럽게 하는지 알아보도록 하겠습니다.

우선, 생각해볼 문제가 가상화란 것이 무엇인가 하는 점입니다.
가상화란 "A"라는 머신에 "B"라는 virtual machine을 구동시키는 것을 의미합니다. 근데, embedded 분야에 종사하시는 분은 상당히 익숙하실만한 Intel CPU상에서 ARM이나 MIPS cpu simulator가 구동되는것도 엄연히 virtual machine이 구동되는 것입니다. (사실 마음 같아서는 제가 만든 EISC processor simulator인 ESCAsim도 끼워 넣고 싶지만.. ^^; 사용해 보셨을 분이 극히 제한적이라.. 그래도 나름대로 uCLinux까지도 구동 가능한 simulator랍니다.). 또한, 일반적인 사용자분들께서도 JVM(Java Virtual Machine)에 익숙하실 것입니다.  즉, 가상화란 "특별한 기술"이 아니라는 거죠. 다른 프로세서의 "동작"을 모사하는 것은 범용 마이크로 프로세서에게 있어서는 큰 문제가 아니라는 것이죠.

제가 가상화 가속 기술들이 속속 소개 될때 가장 궁금했던 내용이 "왜 가상화 가속이 필요한가" 였습니다. 일반적으로 모든 프로세서에서 큰 어려움 없이 되는 것에 대한 가속이라.. 근데, 문제는 다른 것이더군요. 그리고, 이 문제가 multithread/multicore processor를 이끄는 힘 중에 하나가 됩니다. 흥미 진진하죠?

시간은 거슬러 소프트웨어 업계의 가장 변태적인(저는 가끔 천재적인 = 변태적인으로 인식하게 되더군요..) 소프트웨중의 하나인 "VMWare"가 나타납니다. VMWare는 Virtual machine인데, 해당 프로세서뿐 아니라 해당 시스템에 있는 모든 시스템을 가상화시킨 하나의 독립적인 "시스템"으로서의 가치가 있습니다.

이 각각의 독립적인 가상 시스템에서 서버를 운용한다면 어떻게 될까요?
하나의 머신에서 A,B,C라는 세 개의 서버가 운용되고, A라는 머신에 문제가 발생해도 B, C라는 머신은 문제 없이 수행되겠지요? 즉, 안정성의 문제가 향상되고.. OS 하나가 만들어 낼 수 있는 thread보다 OS 세 개가 만들어내는 thread가 당연히 많고 parallelism도 높겠지요. 즉, multiprocessing/multithreading에 유리한 환경이 됩니다.
이 부분이 가상화 기술이 multicore/multithreading의 기치를 높이 들고 있는 현재의 microprocessor에게 있어서 병렬성의 문제를 확보할 수 있는 아주 좋은 수단으로 여겨지게 되는 것입니다.

그런데, 문제는 각 가상 시스템이 host OS의 application이라는 점입니다. 즉, host OS에 문제가 발생하면 전체 가상 시스템에 문제가 발생한다는 문제점이 있는거죠. 이 문제는 아주 치명적입니다. 여러 개의 가상 시스템이 한번에 모두 죽어버릴 수 있는 여지가 있는 것이니까요.

이 문제를 해결하고자 하는 방법이 기존의 user/supervisor 모델에 hypervisor라는 권한(혹은 권한 수준)을 추가하는 것입니다. 즉, 예전에는 O/S가 모든 하드웨어나 서비스에 접근했는데, 이중에 민감한 부분은 hypervisor(혹은 virtual machine manager)라는 firmware가 서비스를 담당하고, 그 위에서 각 OS(실은 VM이겠죠?)들이 도는 구조로 바뀌는 거죠.
예전에 application이 OS에 종속되고, OS가 다시 hyperviosr에 종속되면서 점점 하드웨어에 직접 접근해서 시스템 전체를 불안하게 만드는 것이 허용되지 않게 되는 것입니다.

가상화 "가속" 기술이란 말하자면, 이런 hypervisor를 추가하여 운용할 수 있도록 하는 명령을 추가하는 것으로 보시면 되겠습니다. Microprocessor report상에서는 각 프로세서간의 차이점등 아주 재미있는 내용이 많으니, 관심있으신 분은 꼭 보세요 :) (이 부분도 포스팅 하고 싶습니다만, 좀 내용이 너무 전문적일지도 모른다는 생각에.. 혹시라도 요청이 있다면 고려하겠습니다)
babyworm
2007/04/11 22:31 2007/04/11 22:31
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
가상화, 마이크로 프로세서

Trackback0 : Comment7
Trackback Address :: http://babyworm.net/tatter/trackback/161
felucca | 2007/04/12 03:58 | PERMALINK | EDIT/DEL | REPLY
VMWare.. x86 hw virtualization 지원이 되면서 과연 어떻게 변화를 꾀할지. 궁금하네요 :)
MPR을 읽고는 싶은데.. 라이센스가 없어요 ㅠㅠ 무지 비싼걸로 알고있는데.. 회사에서 구독하시나봐요?

babyworm | 2007/04/12 13:47 | PERMALINK | EDIT/DEL
기사중에 VMWare의 실험 결과가 나왔있는데, 나중에 정리해서 올리지요.. 생각보다 재미있는 결과가 나왔더군요. :)
회사에서는 on-line 버젼을 구매해서 구독하고 있는 상태입니다.
Help by Grace | 2007/04/12 13:07 | PERMALINK | EDIT/DEL | REPLY
MPR 은 학생할인 같은것은 없나요? ;; 읽어보고 싶은데 학생이 1년에 900불을 내는건 ...... OTL
babyworm | 2007/04/12 13:50 | PERMALINK | EDIT/DEL
아마도 교수님께 여쭈어보시면 방법이 있을듯 한데요..
그것 이외에 일년에 몇번씩 절반 정도의 가격에 구독할 수 있는 프로모션이 있습니다. 학생 시절에는 그 메일을 자주 받았던 기억이 있습니다.
교수님들께서도 프로모션 메일이 가는 것으로 알고 있습니다.
Help by Grace | 2007/04/12 14:05 | PERMALINK | EDIT/DEL | REPLY
지금 해외라 지금은 불가능하네요 ㅡㅡ; 한국들어가서 복학을 하면 한번 architecture 전문 교수님을 찾아뵈어야 할것 같네요 ^^* 감사합니다.
라이천령 | 2008/09/21 21:57 | PERMALINK | EDIT/DEL | REPLY
Vmware 에서 하드웨어로 가상화 가속같은것을 구현해주는 제품도 위에서 설명하신 hypervisor 위에서 돌아가는 방식이 되는것일까요?
babyworm | 2008/09/22 15:40 | PERMALINK | EDIT/DEL
VMWare의 경우 host OS 상에 virtual machine을 구현하는 대표적인 방법입니다. 이 경우 host OS의 안정성에 따라 virtual machine의 안정성도 떨어질 수 있다는 단점을 지니게 되지요.
이런 문제를 극복하기 위하여 일종의 light-weight OS인 hypervisor가 도입된 것으로 보시면 되겠습니다. 이쪽 계통에서는 코드의 양과 신뢰성은 반비례한다고 하는데요.. hypervisor의 경우 OS간의 switching이나 핵심적인 자원 접근에만 관여하므로 그 크기가 매우 작아지고, 여기서 신뢰성을 확보한다는 아이디어가 가장 크겠습니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
Metal Gate로 더 빠르게..
[babyworm, 2007/02/03 21:58, SoC 설계 관련/관련 새소식]

ZDnet의 기사를 보니 메탈 게이트를 사용하는 트렌지스터가 상용화된다는 이야기가 써 있군요. 이 이야기는 하드웨어 리뷰 사이트들을 통해서 개략적으로 접하고 있었는데, ZDnet의 기사를 통해서 좀더 자세히 알게 되었습니다. (이번 MPR에도 잘 나와 있습니다만, 한글로 읽는 것이 더 편해서 ^^;)

사실 저는 반도체 물성과 같은 부분은 전공이 아니라 잘 모릅니다. 학부와 대학원때 과목을 들은 정도지요.. ^^ 간략하게나마 뭐가 어떻게 돌아가는 건지 설명드리자면, 우선 간단히 CMOS에 대해서 설명드리고 시작하는 것이 편할 것 같습니다.
트렌지스터라는 것이 일종의 스위치와 같은 것입니다. 버튼을 누르면 전류가 흐르고, 누르지 않으면 전류가 흐르지 않는 것이죠. CMOS 트렌지스터에서 이 버튼에 해당하는 부분이 바로 Gate라고 보시면 되겠습니다. 즉, Gate에 일정 전압이 가해지면 가로막혀 있던 부분이 열리는 그런 원리랄까요..

근데, CMOS transitor에는 문턱전압(Vth)이란 것이 있죠. Gate에서 어느 정도 전압이 가해져야 "문턱을 넘어서" 전류가 흐를 수 있는 것이냐는 것인데요.. 가끔 Gate에 전압이 가해지지 않더라도 문턱을 넘어가는 날랜 전자가 있습니다. 이런 넘들에 의해서 게이트의 상태에 변화가 없더라도 흐르는 전류가 바로 "leakage current"라고 보시면 됩니다. 말 그대로 줄줄 세는 거죠..
쉽게 생각해서, 문턱이 높으면 높을수록 게이트에서 전압이 없을때 필요없이 전류가 흐를 가능성이 낮아집니다. 근데, 문턱이 낮으면 낮을수록 게이트에서 전압이 공급되지 않더라도 문턱을 넘어가는 전자의 비율이 높아지죠. 반대로, 문턱이 높으면 높을 수록 Gate에 전압을 가해서 스위치를 켜는 시간이 오래 걸립니다.

이런 원리로 빠른 공정 = 낮은 문턱 전압 = 많은 leakage current로 연결됩니다. (뭐, 설명은 아주 대충했지만 말입니다.)
예전에 0.18um정도까지만 해도 leakage current를 신경쓰는 일은 거의 없었어요.. (사실 0.35um까지는 전혀, 0.18um부터는 조금.. ) 공정이 줄어들면서 문턱 자체를 구성하는 부분도 기껏해서 원자 수십개 수준으로 줄어들게 되었습니다(그것 보다 적나요? 정확하진 않네요.^^;). 그러다보니, 문턱전압도 낮아지고 leakage current라는 것이 동작할때 소모되는 것보다 더 많은 전력을 소모하게 된 거죠.

그래서, High-K라는 것이 나온 건데요.. K라는 것이 유전율(전자가 얼마나 빨리 흐를 수 있느냐)인데요.. K가 높아지면 문턱을 높인 다음에, 문턱을 약간만 내려도 그 좁은 길로 전자가 빨리 빨리 흘러갈 수 있다는 거죠. 좁은 대신 전자의 흐름 자체를 좋게 만들었으니까요.. (역시 쉽게 말하느라고 아주 정확한 표현은 아닙니다만..)

45nm에서 인텔에서는 그동안 사용하였던 poly silicon(지금까지 대부분의 공정은 silicon substrate위에 poly silicon으로 gate 얹어서 사용해 왔습니다. 이때 NMOS냐 PMOS냐에 따라서 N+/P+를 선택하는 거죠)대신에 NMOS나 PMOS에 맞는 Metal gate를 구성했다는 거죠. 아주 대단한 일입니다. 이로 인해서 속도는 유지하면서 leakage current는 잡을 수 있을테니 말입니다. 그리고, 또하나.. 이론대로라면 대부분의 전통적인 공정이 변경될 필요가 없을 것 같습니다. 단지 poly silicon대신 metal(물론 그렇게 쉽게 바뀔 부분은 아니지만 말입니다. ^^;)로 변경되는 정도니까요.

기사에서처럼 당연히 metal의 혼합비는 극비겠죠.. 뭘 물어보고..

IBM에서도 high-K를 채택한다고 하던데.. (이것도 어디 기사에서 봤는데 말이죠..), AMD와 IBM이 비교적 가까우니..이쪽 진영에서도 금방 바뀌지 않을까 생각합니다.

Moore 선생님.. 기쁘시겠어요.. ^^;

babyworm
2007/02/03 21:58 2007/02/03 21:58
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
AMD, Intel, 공정, 마이크로 프로세서

Trackback0 : Comment3
Trackback Address :: http://babyworm.net/tatter/trackback/140
gnil | 2007/02/07 13:58 | PERMALINK | EDIT/DEL | REPLY
DRAM에서도 metal gate는 대세~
babyworm | 2007/02/09 19:46 | PERMALINK | EDIT/DEL
DRAM에서도 가능하군요.. DRAM은 capacitor type인데 metal gate를 쓰나요? 아.. Cell이 아니라 interface 부분의 이야기이려나요? :)
gnil | 2007/02/12 22:04 | PERMALINK | EDIT/DEL | REPLY
cell 영역의 loading을 줄이기 위해 metal gate를 씁니다.
그러면 repeater, amp 등과 같은 부가 회로 개수를 줄일 수 있어서 cell eff.가 높아지고
결과적으로는 net die를 늘려 줌으로써 양산 시 좀 더 싸게 만들 수 있다는 것 같습니다~
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
마이크로 프로세서 탄생 35주년..
[babyworm, 2006/12/25 20:40, SoC 설계 관련/마이크로 프로세서 이야기]

들어가기전에: 이 포스팅은 MPR 12월 11일자 내용을 읽고나서 감상 비슷하게 적은 것입니다. 

1971년 11월 15일에 최초의 상용 마이크로 프로세서인 intel 4004가 발표되었으니, 올해로 마이크로 프로세서가 발표된지 35주년입니다. 마이크로프로세서 아키텍트를 하고 있는 사람에게는 어느정도 의미가 있는 해라 할 수 있겠지요. (4004를 최초의 마이크로 프로세서로 보는 것은 최초의 상용화된 one-chip standard part microprocessor라는 의미로 해석할 수 있습니다. )

2250 transistor(equ gate로 약 500게이트쯤..), 740KHz 동작 속도, 10um PMOS 공정에서 제작된 4004에 비하여 지금의 마이크로 프로세서는 충실히 인텔 설립자인 무어의 법칙을 따라 성장해왔으니 격세 지감입니다. (사실, 무어의 법칙이란게 자연 법칙이 아닌 CEO가 세운 사업 목표 같은거라.. 그 밑에 있는 엔지니어들의 노력을 바탕에 두고 있는 것이지요. 요즘 NAND flash에서 적용되는 황의 법칙도 마찬가지입니다. 삼성 엔지니어들의 고생은 너무도 많이 듣고 있습니다. )
게다가, 4004 마이크로 프로세서는 요즘 PC/Server를 지배하고 있는 x86 아키텍쳐의 직접적인 선조가 되는 것이니, 참 기나긴 생명력을 지속해 오고 있다 말할 수 있겠습니다.

4004 마이크로 프로세서의 설계를 통해서 메모리 반도체를 만들던 인텔은 일약 비메모리 반도체의 최전선에 서는 프로세서를 만드는 회사로서 성공적인 변신을 하게 되었구요.

사용자 삽입 이미지
4004 마이크로 프로세서가 전자 계산기를 위해서 처음 설계된 것을 많은 분들이 전산 개론 시간을 통해서 들으셨을 것입니다. 기존의 전자 계산기가 그야말로 계산 위주의 동작으로 한정했던 반면에 4004의 경우 좀더 "일반화"함으로써 그 사용 범위를 다양화 할 수 있을 것이라는 아이디어로 설계되었다고 봐야겠지요. 그리고, 그 아이디어의 유용성은 지금 우리가 사용하는 많은 기기들에 마이크로 프로세서가 적용되고 있다는 것에서 입증되고 있다고 생각합니다.

4비트 ALU와 데이터 패스, 12비트 주소, 8비트/16비트 명령어 46개로 이루어진 4004는 요즘 학부 마이크로 프로세서 시간에 과제로 내 주기에도 너무 쉽다고 생각할 정도입니다. 집적회로 시간에 모든 회로를 그리도록 하는 과제라면 약간 재미있겠습니다만...

아직 진행형인 마이크로 프로세서의 진화에서 i4004를 회고해보는 것도 의미있는 일이군요. 여기에서 여러가지 재미있는 내용을 더 보실 수 있습니다.

babyworm
2006/12/25 20:40 2006/12/25 20:40
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
35주년, 4004, 마이크로 프로세서

Trackback0 : Comment0
Trackback Address :: http://babyworm.net/tatter/trackback/123
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
*1 *2
Location : Tag : GuestBook : Admin
babyworm’s Blog is powered by Tattertools.com / Designed by Hisday / Modified by Daisy