Processor Architect.... egoist
프로세서, SoC, ASIC 설계에 대한 재미난 이야기들. 그리고, 쉼표...
BLOG main image
Notice
babyworm은?
CATEGORY
전체 (307)
SoC 설계 관련 (126)
마이크로 프로세서 이야기 (24)
유용한 설계도구 (7)
검증이야기 (15)
관련 새소식 (38)
초보자 코너 (17)
북마크 (2)
코덱 (0)
개인적인 (137)
책이야기 (19)
만화/애니메이션 (3)
영화/드라마이야기 (4)
음악이야기 (13)
Boards
질문 게시판
ASIC plannet
Recent Entries
열심히 살아야겠다.
잡담 몇 가지..
애증의 관계? 아래아 한글... (1)
창조를 위해서 필수적으로... (2)
VP8 and WebM (2)
새로 blog들을 모아봤어요..
일단 끝.. 이라고 할 수도... (2)
Cygwin1.7에서 Eclipse CD...
AMBA 4.0 공개 (1)
그러게 진작에 잘하지 (3)
Recent Comments
저도 한컴사의 워드는 1.5때...
06/21 - likesam
당연하지~!
06/12 - babyworm
저도 얼마전에 한국에 있는...
06/07 - 홍용재
Homesick을 겪을때는 지났잖...
05/25 - babyworm
읽어보려다가 초반부터 비명...
05/24 - 홍용재
한RSS에 추가 add to Bloglines
add to google


Add to Technorati Favorites



TAGS
마이크로 프로세서 synopsys verification SystemVerilog verilog HDL EISC 개인적인 PLI ARM AMD GPU Mentor EDA Synthesis Cadence assertion 프로세서 FPGA 검증 Intel
Recent Trackbacks
WebM 조금 이르지 않을까?
내 맘대로 보는 세상
tkhwang의 생각
tkhwang's me2DAY
똑똑한 32비트 마이콤? Cantus
Dr.Lee's Blog..
죠커의 생각
jokka's me2DAY
불필요하게 어려운 말을 쓰는...
한날은 생각한다
Calendar
«   2010/07   »
일 월 화 수 목 금 토
        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/07
2010/06
2010/05
2010/04
2010/03
2010/02
2010/01
2009/12
2009/11
2009/10
2009/09
2009/08
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
332372 Visitors up to today!
Today 20 hit, Yesterday 177 hit

English Ver. (by Google)
Creative Commons License
이 블로그의 모든 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
'EISC'에 해당되는 글 12건
AE32000C-Lucida 프로세서 기반의 첫 상용칩. CANTUS | 2009/06/24
새로운 EISC 기반 제품.. 출장 (2) | 2009/04/13
Asynchronous는 어려워 (4) | 2008/10/22
ARM의 Cortex-A9 프로세서. | 2007/10/05
참 파란만장합니다. (16) | 2007/07/02
PLI와 Simulator의 연결(I) | 2007/06/11
Verilog 관련 검색에 대한 친절한(?) 답변과 리퍼러 로그.. | 2006/11/10
EISC 관련 기사 하나.. TMA2560-RFID/USN용 센서 노드 칩 | 2006/11/07
EISC 프로세서 관련 신문 기사 하나 (4) | 2006/10/23
국산 마이크로 프로세서 (4) | 2006/09/04
똑똑한 프로세서가 늘어난다. | 2006/08/10
새로운 프로세서를 만들다.. (2) | 2006/07/16
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
새로운 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
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
참 파란만장합니다.
[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
PLI와 Simulator의 연결(I)
[babyworm, 2007/06/11 23:45, SoC 설계 관련/검증이야기]

Automated Functional Verification 방법에는 여러 가지가 있지만, testvector 발생 유닛(보통 Directed Random방식을 사용하지요?)과 golden model을 이용한 checker model을 만들어서 DUV(Design Under Verification)의 결과와 비교하는 것이 가장 편한 방법 중에 하나임은 부정할 수 없습니다. (여담입니다만, 국내에서는 많은 경우 golden model없이 설계하는 경우가 많아서 검증을 위하여 작성한 golden model이 실제로 RTL보다도 정확성이 떨어지는 경우가 있다는 것이 문제가 종종 발생합니다. 여기서는 golden모델의 확보에 대한 이야기는 나중으로 미루죠.)보통 golden model은 C model을 이용하게 되는데, C 모델을 Verilog와 동시에 simulation하는 것은 그리 녹녹한 일이 아닙니다.

저는 프로세서를 대부분 다루기 때문에 C모델이라 함이 대부분 ISS simulator가 됩니다. 이후에 Simulator와 C모델은 그냥 섞어 쓸 가능성이 높은데, 보시는 분께서 편하신 대로 생각하시면 되겠습니다.

우선 Simulator를 만들 때 그 목적을 정확히 할 필요가 있습니다. 초기에 Simulator의 목적은 executable spec.의 의미가 가장 중요한 의미였을 것입니다. 그래서, 대부분 function level의 정확성을 가지지요. 프로세서의 경우 보통 이야기하는 ISS(Instruction Set Simulator)정도의 수준일 것입니다.

이때 고려하는 사항은 동작의 정확성, 빠른 동작 속도, 유연한 변경 가능성(design space exploration을 해야 하니까요)과 같은 것을 고려하게 됩니다.

그런데, 아시다시피 Verilog와 Simulation을 한다던지, Verilog Model대신 사용하려고 할 경우에는 ISS level뿐만 아니라, BFM 수준, 간혹은 Pin-level accuracy를 필요하게 됩니다. 통신이나 영상쪽의 모델은 뭐 Functional model이나 BFM이나 큰 어려움이 없습니다. Latency가 거의 정의되어 있기 때문이지요.

프로세서의 경우 약간 복잡해지는데, hazard의 발생, instruction issue rate의 변화, exception의 발생을 고려해야 하는데, 이 경우 bus function이 발생하는 Instruction Fetch와 Data Access stage의 동작을 모사하기 위해서는 대부분의 pipeline을 표현해내야 합니다. 예전에 pipeline 수준의 accuracy를 가지는 simulator를 만들고, pin-level interface를 붙여서 나름대로 쓸만한 PLI model을 만든 적이 있지요. 단지 문제는 pipeline수준의 accuracy를 가지다 보니, 너무 너무 느려져 버린거지요.

쉽게 쉽게 만들려면 functional model로 simulator를 만들고, Verilog Model(DUV)상에 하나의 명령이 retire되는 순간에 register들의 값을 비교하는 방법도 가능합니다. 하지만, 해당 model이 불필요한 hazard 발생은 없는지, Instruction Fetching에 불필요한 사항이 추가되지는 않았는지 확인 할 수는 없습니다. (당연하죠.. reference model이 functional model이니 timing spec.을 만족시켰는지는 알수 없는것이지요)

흠.. 많이 옆으로 샜는데요..

C Model과 Verilog와 붙이는 방법이 Verilog-PLI (Programming Language Interface)를 이용하는 겁니다. Simulator는 clock단위로 동작하므로, 느낌상 아래와 같이 동작시키면 될 것 같습니다. 이런 경우에 verilog에서 C function을 호출할 때 가장 많이 사용되는 건 calltf()를 이용하는 방법입니다.


always @(posedge clk or negedge rst_x) begin

  $run_sim_calltf(xxxx);

end

즉, run_sim()을 calltf()의 callback function으로 등록하는 겁니다. 그리고, 매 클럭 calltf()를 불러주는 것이지요.

근데, simualtor의 이전 상태를 계속적으로 보존해야 하는 경우에는 매 클럭 새롭게 호출되는 calltf()를 이용할 때 문제가 있을 수 있습니다. (사실 그리 어려운 일은 아닙니다만, 예를 들기 위하여 ^^ ) 그래서, 내용을 보존하고 싶을 때는 misctf()를 사용하는 것도 괜찮습니다. misctf()는 원래 verilog simulation의 이런 저런 정리 작업을 하는데 사용하는 목적으로 만드는 건데요. 아래와 같이도 사용할 수 있습니다.


initial begin

  $run_sim_misctf(data, reason, paramvc);

end

뭐 이런 느낌입니다. misctf()의 경우 시뮬레이터의 초기 시에 simulator에 연결된 이후에 simulator의 종료 시까지 계속 머무르면서 파라미터의 값이 변경 될 때 마다 제어권을 가집니다. 이 파라미터의 변화시마다 클럭이 변화되었는지 확인하고, 클럭이 변화하였을 때 값을 호출하면 되겠습니다.


아래는 한 4년 전에 만든 PLI 모델중의 misctf부분인데요.. 실제 구현은 없으니 공개해도 별 문제 없을 것입니다. ^^; 대략 이런 느낌으로 만드시면 됩니다. :)
다음 번에는 좀 더 재미난 PLI 함수를 다루어보죠.. (아.. VPI는 초반에 좀 다루지 않네요. ^^; Blog의 예제를 위해서라도 예전에 acc_와 tf_를 이용해서 만든 PLI 모델을 업그레이드해야겠군요. )


int misctf_proc(int data, int reason,int paramvc) {
 
 static int  reset_called = FALSE;
 int   POInt;
 
 
 
 switch (reason) {
  case reason_paramvc : { // 파라미터의 값 변화로 인한 호출의 경우
   if (tf_getp(PIN_RST_X) == 0) { // reset state
    // 아래의 형태는 초기 조건에서의 리셋 호출을 위하여 사용된다.
    if (reset_called == FALSE || paramvc == PIN_RST_X) {
     io_printf("$AE32KB_RUN : CORE RESET CONDITION\n");
     // 실제적인 reset을 수행한다.
     
     reset_called = TRUE;
     
     POInt = 0;
     
     if (tf_getp(PIN_OSIEN) == 1) {
      POInt = POInt | OSIEN;
      if (tf_getp(PIN_OSIROM) == 1) {
       POInt = POInt | OSIROM;
      }
     }
     ResetCore(POInt);
    }
   }
   else if ( paramvc == PIN_CLK ) {  
    if (is_posedge(PIN_CLK,paramvc) == TRUE) {
     // 변경된 모든 입력 값을 받아서 반영한다. 
     apply_input();
     io_printf("%s : CLOCK POSEDGE\n", tf_strgettime());
     
     EndClock();
     // end_clock함수
     
     StartClock();
     // start clock 함수
     
     // 변경된 데이터를 기반으로 핀과 레지스터를 변경시킨다.
    }
   }
   break;
  }
//  case
  default :
  break;
 }
 
 // apply outputs
 apply_output();
    return 0;
}


이제 EISC processor도 어느 정도 정비를 마치고, 빠른 미래에  좀 더 공격적인 마케팅을 시작할 예정입니다. ^^; 많이 기대를 해 주세요.. 특히 학생분들께 좋은 기회가 많이 돌아가도록 노력 중입니다.
babyworm
2007/06/11 23:45 2007/06/11 23:45
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, PLI, Simulator, verification, verilog HDL

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

Secret
Verilog 관련 검색에 대한 친절한(?) 답변과 리퍼러 로그..
[babyworm, 2006/11/10 17:26, SoC 설계 관련/초보자 코너]

요즘에 리퍼러 로그를 보니, 검색을 통하여 들어오시는 분들이 상당하시군요..
(덕분에 gzip 플러그인을 통해 전송량을 절반으로 줄여놨었지만, 다시 트래픽이 차오르고 있습니다. ㅠㅠ; 물론, 많은 분들이 찾아주시는 건 좋은 일이지요.. 이 분야에 관심 있는 분들이 많다는 것이니까요..)

이 포스팅은 리퍼러 로그에 남은 검색어를 통하여 살펴본, 제 블로그에 방문하시는 분들이 관심을 가지는 것에 대한 친절(?)한 답변들입니다. ^^;

verilog 관련
가장 많은 검색어는 verilog/VHDL 입니다. 요즘에 이걸로 수업받으시는 분들이 많고, 요즘이 term project 철이라서 검색 순위가 급증하고 있는 것이 아닌가 생각합니다.

* Verilog와 VHDL중에 어떤것이 더 좋은가..
둘 다 좋은 언어입니다. verilog가 "설계"라는 목적에 좀더 부합하고, VHDL이 "검증"에 더 편리한 기능을 제공합니다. 개인적으로 생각하기에 verilog가 설계만 따진다면 더 편하다고 생각합니다.

* VHDL -> verilog변환, verilog ->VHDL 변환
가끔 뉴스 그룹에서 이거 변환 프로그램 찾으시는 분들도 봤는데, vhdl2v 같은 전용 변환 프로그램이 있기는 합니다만, 시도해보시면 상당한 스트레스를 받을 것이라 생각합니다.  ESNUG에 나온 내용을 붙이자면, 잘 안된다! 입니다.

ESNUG내용보기

http://www.deepchip.com/items/0386-11.html
Hello John,

I'm scrambling my head over this...

I am using VHDL-2-Verilog translator by ASC.  I could not translate my
functions from VHDL to Verilog -- they are simply skipped!

My VHDL source code has a package which has some function declarations
(eg. calculate_lrc(data)) and definitions in it.  The problem is when I try
to convert the package or code from VHDL to Verilog, the functions are
skipped.  So the verilog file just has constants and no "function", as if
there was no function declaration in the original file.

I tried using -Function_Map option but it would only allow me to keep the
original function call but the parameters are skipped.  Also no function
conversions.

So does ASC's vhdl2v not support function and procedure conversions from
VHDL to Verilog?

  - Rakesh Mehta
     Nortel Networks

대안으로는 verilog나 vhdl이나 동일한 중간 포맷으로 해석해서 사용하는 툴을 쓰는 건데..
제가 사용해본 것은 Summit design의 visual HDL로 변환하는 것이었는데, 역시 structural 설계는 잘되는데 약간 behavioral하게 설계된건 잘 안되었습니다.

만일 동작만 보면되고, 안의 내용은 필요없다! 라고 생각하신다면, synopsys에서 합성한 후에 원하는 format으로 netlist를 출력해서 시뮬레이션에 사용하는 것이 제일 속편합니다. 물론, simulation용 라이브러리를 물어야 하지만 말입니다.
(뭐, 요즘엔 ncsim이나 modelsim이나 모두 VHDL/Verilog를 single kernel에서 시뮬레이트해서 이런 필요는 없겠지만.. 라이센스 문제가 아닌 이상엔 말이죠..)

* verilog에서의 #
위의 문법은 원하는 만큼 지연을 발생시키는 것입니다. 합성시에는 무시됩니다.

* verilog에서의 <=과 = 의 차이
blocking assignment와 non-blocking assignment를 혼동하시는 분들이 생각보다 많은데요..(저도 verilog 처음에 잘 몰랐습니다.) blocking assignment는 "시간이 흐르지 않는 상태(흐르지 않게 block하면서)에서 값이 저장된다"이구요.. non-blocking assignment는 "시간이 흐르면서 값이 저장된다" 입니다.
즉, 아래와 같은 연속된 assign의 경우 위의 blocking을 사용하였을때 d는 a의 값을 가지게 됩니다. 값의 할당 자체에 시간이 소모되지 않도록 하나의 할당이 끝날때까지 시간을 멈추기 때문입니다...
그런데, 밑의 nonblocking 예에서는 "값을 할당하자"라는 것은 현 시점에서, 값이 갱신되는 것은 delta delay이후에 이루어지게 됩니다. 왜냐하면, 값이 할당되든 안되든 값을 할당하겠다는 3개의 문장을 모두 보고나서 delta delay이후에 값이 갱신되기 때문이죠.


이해 되시려나요?

* verilog PLI 관련
예전에 계속쓰려다 잠시 중단되었는데, PLI 관련 내용은 요즘에 제 작업 관계로 앞으로 1~2개월동안 자주 올라올 확률이 높습니다. 테스트 벤치 생성 유닛과 scoreboard를 C로 만들고 이걸 verilog PLI로 연결할 예정이거든요..
기대하셔도 좋을듯..


다른 검색을 통한 리퍼러 로그..
Design Compiler와 VCS, Modelsim에 대한 검색이 많았습니다.
사실, 툴에 대해서는 소개나, 새소식만 하고 있어서 별다른 내용이 없었는데 말이죠.. ^^;
참.. 시뮬레이션 하는 방법은 quick reference guide를 살펴보시면 쉽게 하실 수 있습니다. ^^;

프로세서에 대한 검색으로 들어오신 분들도 많았습니다. intel, AMD, ARM, calmRISC, M-Core, EISC(감사합니다.)
블로그에 좀더 프로세서에 관련된 좋은 내용을 적을까 싶기도 한데.. 이쪽 분야 하시는 분이 워낙 적어서 누가 관심이 있을까.. 라는 씨니컬한 마음이 될때도 있습니다. ^^;

아.. 특이한것이 virtual UART를 검색해서 들어오신 분이 계시던데..
제가 이 블로그에서 PLI + TCL/TK를 조합한 virtual UART라는 걸 만든적이 있다고 말씀을 드린적이 있는데, 검색해서 들어오신분은 아마 회사분이 아니실까 생각합니다. 회사분이시라면 인트라넷에 올라간 virtual UART 관련 메뉴얼을 참조하세요.. 소스코드와 작성법이 다 있으니까요..^^;

찾아주신 분들 모두 감사드립니다.

babyworm
2006/11/10 17:26 2006/11/10 17:26
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
AMD, ARM, EISC, PLI, processor, TCL/TK, verilog HDL, 리퍼러 로그, 프로세서

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

Secret
EISC 관련 기사 하나.. TMA2560-RFID/USN용 센서 노드 칩
[babyworm, 2006/11/07 23:15, SoC 설계 관련/마이크로 프로세서 이야기]
제가 설계한 건 아니고, 회사의 simple 32비트 EISC가 들어간 칩인데.. ETRI와 다목적 RFID/USN 과 같은 wireless sensor network의 node및 bridge용으로 만들고 있는 칩입니다.  
뭐, 사실상 직접적인 target은 센서 노드쪽에서 가장 많이 사용되는 ATMEGA128L을 노리고 있는 칩이지요.
최종적으로는 RF 부분과 통합 설계가 될 예정인데, 그중에 1차 버젼입니다.

이거 담당하고 있는 분은 처음에 이 칩 나왔을때 테스트때문에서 회사에서 매일 매일 죽을려고 했었습니다.  ^^;

Digital과 analog가 섞이는 것도 섞이는 것이고, design house도 좀 말썽이고.. 여러가지 머리 아픈 부분이 있어서 말이죠.. 특히 이 칩같은 경우 저전력 하려고 클럭은 기본이고 파워마져 끊고, main die이외에 EEPROM die와 Flash die를 MCP해 놓아서 테스트가 어려워서 정말 고생했지요..

그래도, 이제 동작하고 신문기사까지 나왔으니 고생한 보람이 있네요...^^;
차선임! 수고하셨소~

기사보기


[전자 엔지니어에서 퍼왔습니다.]
ETRI(한국전자통신연구원)는 USN용 고성능 제어장치(MCU) 칩 개발에 성공했다고 6일 밝혔다. USN용 고성능 제어장치(MCU) 칩

이 칩은 기존의 8비트 프로세서 칩 성능을 32비트로 4배 개선시켰고 메모리도 기존 128KB 수준을 256KB 수준으로 2배 업그레이드 한 것이며 어플리케이션도 다양한 응용분야에서 사용가능 하다고 ETRI는 말했다. 또한 이번 개발을 계기로 USN관련 연구개발에 탄력이 붙을 것으로 전망했다.

기존의 USN 센서노드는 일상생활에서 흔히 볼 수 있는 온도, 습도의 증감, 화재발생 여부 등 단순신호만을 감지하여 전달 처리할 수밖에 없었지만, 이번에 ETRI가 개발한 칩을 센서노드에 적용시키면 영상정보 전달 및 음성신호 감지 처리까지도 가능하다. 이에 따라 복잡한 센싱 데이터를 센서노드에서 가공 처리하여 전달할 수 있어 다양한 USN 응용서비스 제공이 가능한 게 특징이다.

즉, 응급상황시 비명을 지르면 주변의 센서가 이를 인식, 센서노드에 정보를 전달해 도움을 청할 수 있고 또는 CCTV의 음영지역에서 센서노드의 설치로 위험신호가 감지되면(호루라기(Whistle)를 불면) 가까운 경찰서에 알려줄 수도 있어 ‘안전귀가 서비스’ 등에도 유용하게 활용될 수 있다.

ETRI는 정보통신부 “RFID/USN용 센서태그 및 센서노드 기술개발” 사업을 통해 에이디칩스와 공동으로 “USN용 고성능 32비트 MCU TMA2560”을 개발하는데 성공했으며, 상용화 시점은 2007년 하반기로 전망했다.

아울러 내년에는 개발된 프로세서와 통신기능 칩을 하나의 칩으로 즉, SoC(System-on- Chip)화 할 계획이여서 통합 칩의 크기 또한 계속 줄게 될 것이다고 밝혔다.

ETRI는 11월 7일부터 코엑스에서 개최되는 ‘RFID/USN KOREA 2006’ 국제 전시회 및 컨퍼런스에 TMA2560 및 본 칩을 이용한 위험감지인식과 산업현장 감시제어 응용 서비스를 옥타컴과 태광이엔시와 공동으로 각각 시연해 보일 예정이다.

babyworm
2006/11/07 23:15 2006/11/07 23:15
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, RFID, Sensor Node, TMA2560, USN

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

Secret
EISC 프로세서 관련 신문 기사 하나
[babyworm, 2006/10/23 11:56, SoC 설계 관련/마이크로 프로세서 이야기]

오늘자 전자신문에 제가 개발하고 있는 EISC 프로세서 관련 기사가 전자신문에 나왔네요..

사실 이 컴파일러 최적화 작업은 회사내(적어도 프로세서팀)에서는 숙원사업과 같은건데.. 아쉽게도 국내 컴파일러 전공 교수님들께서는 "논문 주제가 되기 힘들기 때문에" 연구를 잘 맏아주시지 않았습니다. 저희 내부 컴파일러 팀은 자체적으로 스트레스를 엄청 받고 있었구요..

다행이 GCC에 정통하신 고려대 김선욱 교수님께서 이 프로젝트를 맡아주셔서(사실 예전에 뵙고 말씀 나눈이후에 이분이 맡아주시길 내심 기대하고 있었습니다..), 좋은 결과가 나왔습니다.
아직은 개선해야 할 부분이 상당히 많다고 생각하고 있지만, 프로세서 만드는 입장에서는 컴파일러의 개선보다 좋은 소식이 없습니다. ^^;
어셈블리로 작성해서 비교했을때는 분명히 아주 좋다고 생각하는데.. 컴파일 해보면 컴파일러 성능 때문에 벤치마크 결과가  생각보다 안나오는 경우가 종종 있었거든요..

저희 회사 GCC나 linux port된 소스는 아마도 저희 회사 ftp에서 쉽게 구할 수 있을것이라 생각됩니다. (공개 커뮤니티 지원 인력 문제로.. 적극적으로 공개하고 있지는 않습니다만..) ^^;

[기사 출처: http://www.etnews.co.kr/news/detail.htm ··· 10200152]

기사보기..


에이디칩스가 33% 가량 성능이 향상된 컴파일러를 개발, ARM이 장악하고 있는 CPU 코어 시장에 도전장을 내밀었다.

컴파일러란 고급언어로 쓰여진 프로그램을 컴퓨터가 직접 이해할 수 있는 언어로 바꿔주는 프로그램으로, 반도체 코어 개발환경의 핵심 요소다.

에이디칩스(대표 권기홍·사진 http://www.adc.co.kr)는 고려대 김선욱 교수가 이끄는 컴파일러 연구실과 공동으로 32비트 EISC용 컴파일러 버전 2.5를 개발했다고 22일 밝혔다.

이 컴파일러는 서울시 산·학·연협력 사업인 나노 IP·SOC 설계기술혁신 사업단의 지원을 통해 에이디칩스와 고려대가 힘을 합쳐 개발한 것으로, 임베디드 벤치마크 프로그램 (EEMBC)를 실행해 성능을 분석한 결과 기존 EISC 컴파일러보다 33.6%의 성능 향상을 보였으며 ARM9 프로세서와 비교해 약 6%의 성능향상을 결과를 얻었다.

에이디칩스는 ARM9과 같은 급의 국산 CPU 코어 ‘확장명령구조(EISC) AE32000C’를 개발했으면서도 그동안 컴파일러를 비롯한 개발환경을 뒷받침해주지 못해 ARM의 장벽을 뛰어넘지 못했다. ARM9은 전세계 CPU코어 시장의 80% 이상을 장악한 ARM의 대표적인 CPU코어로, 고성능 마이크로컨트롤러나 퀄컴의 CDMA 베이스밴드 칩을 비롯한 다양한 반도체의 코어로 사용되고 있는 제품이다.

[기사 출처: http://www.etnews.co.kr/news/detail.htm ··· 10200152]
babyworm
2006/10/23 11:56 2006/10/23 11:56
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
ARM9, Compiler, EISC, GCC

Trackback1 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/78
오늘 우리회사 상한가 한방~
Tracked from PAPA JOHN'S | 2006/10/24 01:31 | DEL
오래간만에 우리 회사 에이디칩스가 상한가 한방을 맞았다. 기다려오던 빨간 똥침(↑)... (기사 전문 보기: http://www.etnews.co.kr/news/detail.html?id=200610200152) 독자적인 내장형프로세서의 원천기술을 ..
gnil | 2006/10/23 13:29 | PERMALINK | EDIT/DEL | REPLY
... 파이팅 ^-^/

학부 때 들어본 "컴파일러 이론"은 상당히 분석적/체계적이다.. (front-end에 한해서)
라는 느낌을 받았습니다... 하지만 실제론 안 그렇겠죠? ^^;;

(기사보기 링크가 이상해요~)
babyworm | 2006/10/23 20:10 | PERMALINK | EDIT/DEL
GCC라는 좋은 플랫폼하에서 이루어지는 것이니까, 실제로는 이론적인면과 노가다성 분석이 합쳐 있죠.. 최적화 과정에서는 이론적인 기반이 아주 중요한 것 같더군요. 전 컴파일러에 대해서는 초보적인 수준밖에 몰라서. :)

참.. 기사보기 링크가 RSS에서는 안되길래 수정했습니다.
파파존스 | 2006/10/24 01:34 | PERMALINK | EDIT/DEL | REPLY
프로세서팀에 축하를 해야겠죠?
축하~~ :)
ASSEM으로 하면 ARM 보다 좋은데~~~ 이 말 당분간 안해도 되는거죠?

내일 뵙죠~
babyworm | 2006/10/24 20:48 | PERMALINK | EDIT/DEL
아직은 해야죠.. 예전보다는 아주~ 많이 줄겠지만요..
좀더 개선될 여지가 아주 많다고 생각하거든요. ;)
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
국산 마이크로 프로세서
[babyworm, 2006/09/04 18:03, SoC 설계 관련/마이크로 프로세서 이야기]

얼마전에 다나와라는 사이트에서 국산 마이크로 프로세서에 대한 이야기가 오고 간적이 있습니다.
이런 저런 이야기가 많이 오고 갔지만, 물끄러미 보고 있자니 사용자들의 국산 프로세서에 대한 열망이 느껴지더군요..

저도 그리 깊이 아는 것은 아니지만, 제가 아는 한도내에서 국산 마이크로 프로세서에 대해서 이야기해 보고자 합니다.

국산 마이크로 프로세서에 대한 연구는 대학 연구실과 국가 연구소들에서 지속적으로 관심의 대상이었습니다만, 상용화 된 경우는 제가 알고 있기로 없습니다.

국내 연구실중에서 상용 수준에 가장 근접했던 곳은 아마도 KAIST에서 수행된 x86 호환칩(펜티엄 호환칩까지 나왔습니다)이 아닌가 생각됩니다. 물론, 이를 후원하던 현대전자가 사라지면서 이 프로젝트는 사실상 사라졌습니다만...

사용자 삽입 이미지

KAIST 경종민 교수님 연구실에서 개발한 Marcia 프로세서(펜티엄 호환칩)


사실상 데스크탑이나 서버용도의 프로세서에 있어서는 큰 격차가 있는 상태이므로 이를 따라 잡기는 쉽지 않을 것이라 생각됩니다. 게다가, 데스크탑과 서버 시장 모두 x86기반의 아키텍쳐가 거의 통일하고 있는 상태이므로, 다른 아키텍쳐가 나온다해도 이미 강력하게 구축된 소프트웨어 지원을 따라잡기는 어려울 것이라 생각됩니다.

기업체로 눈을 돌렸을때 역시 가장 상용수준에 근접했던 곳은 삼성전자 프로세서 연구실입니다.
삼성-알파라는 프로세서로 세계최초로 1GHz의 벽을 뛰어넘은 프로세서를 만든 곳이죠.
아쉬운 점은 알파라는 기존의 프로세서를 받아서(제가 알기로는 backend까지 끝난.. 즉, 거의 다 설계된 도면이라고 해야 겠지요..), 이를 삼성 공정에 circuit수준에서 최적화시키는 공정을 한것으로 알고 있습니다.
그렇다해도, 이 circuit 이하 수준의 최적화 기술이 매우 어려운 기술이므로 절대로 낮추어 볼만한 일은 아닙니다.
아쉽게 알파 프로세서가 사양길로 접어들면서, 삼성에서도 이 프로젝트를 접게 되었습니다.
이후에 리누스가 있는 것으로 유명한 트랜스메타의 칩에 대한 도입이 검토되었지만 무산되었으며, 서버/데스크탑 시장은 접게 됩니다. 그리고, 눈을 내장형 프로세서로 돌려서 ARM 프로세서 아키텍쳐를 받아서 역시 세계 최고속도의 ARM을 만들고 있습니다. (best cond.에서 1GHz를 넘고 있는 프로세서니 대단합니다.)


이제 국내 기술만으로 만들어진 자체 프로세서에 대한 이야기를 해봅시다.

우선, 잠시 프로세서에 대한 이야기를 하겠습니다.
프로세서라는 것은 프로세서 기술이라는 것이 한 20%정도 밖에 차지하지 않습니다. 광범위한 컴파일러 기술, OS 기술, 시스템 프로그래밍 기술.. 이런 것이 필요하죠..

프로세서가 높은 성능을 발휘한다는 것은 이러한 모든 것이 집결되었을때 가능한 것입니다.
그런데, 아쉽게도 국내에는 컴파일러, OS, 시스템 프로그래밍이라는 분야가 아주 취약합니다.
삼성과 같이 능력있는 기업에서 자체 아키텍쳐를 개발한 적이 있으나, 이를 사장시키고 ARM 기반의 프로세서를 채택한 것도 바로 이미 구축되어 있는 ARM의 강력한 인프라를 사용할 수 있다는 장점때문입니다.
한마디로, 프로세서를 만드는 것보다 프로세서를 제대로 운용하는데 필요한 프로그램을 얻기가 더 어렵다.. 그래서, 되도록이면 기존의 것을 쓰려고 한다..  이것입니다.

하지만, 이는 여러 소프트웨어의 강력한 지원이 필요한 시장에서의 이야기이고, 소프트웨어의 호환성이라던지 지원에 대한 의미가 약간 적은 내장형 프로세서 시장에서는 여러가지 의미 있는 시도들이 존재했는데..(아직도 존재합니다요..)

가장 큰 것이 System IC 2010과제(시스템 IC를 2010년까지 선진국 수준으로 끌어올리자는 대형 국책 프로젝트입니다.)에서 두개의 의미 있는 프로세서가 개발되었다는 점입니다.

사용자 삽입 이미지

CalmRISC 이미지 컷[삼성전자]



첫번째는 삼성의 calmRISC입니다. 지금은 조용히 사장되었습니다만, 삼성 특유의 공격적인 투자로 좋은 출발을 했었습니다. 삼성 전자 공정 특유의 저전력 소모라던지.. 몇몇 연구실과 연계해서 캐쉬 구조나 컴파일러, OS모두 좋은 방향으로 가고 있었습니다만.. 너무 특색없는 RISC였던것이 문제였던것 같습니다.
개발환경도 너무 과하게 큰 BDM기반의 기술을 채택했구요..
현재는 이름만 남아 있는듯 합니다만, 빨리 되살아나길 바랍니다.

두번째는 ADChips의 EISC 프로세서입니다. 현재 제가 만들고 있는 CPU이기도 합니다. RISC기반의 프로세서인데 CISC적인 요소가 많은 유별난 아키텍쳐를 가지고 있으며, 그래서 EISC라고 이름 붙여진 프로세서입니다. system IC 2010에서 삼성 calmRISC와 경쟁 과제로 선정되어 최종적으로 과제에서 더 높은 평점을 받으며 아주 좋은 출발을 했습니다.
(아마도, 조금 더 큰 기업에서 공격적인 투자를 진행했다면 EISC의 현재 모습은 좀 더 다른 모습이 아닐까 생각됩니다.. 아쉽기는 하지만, 현재의 EISC의 모습이 이정도되는 것도 중소기업으로 하기 힘든 투자를 계속하고 있는 회사 결단의 산물이겠습니다.)
사용자 삽입 이미지

EISC가 탑재된 그래픽 프로세서, 게임기에서 많이 사용됩니다.


현재도 EISC 프로세서는 지속적으로 개발과정에 있고, 여러 대학과의 연계를 통해서 컴파일러도 재 정비되고 있습니다. uCLinux가 포팅되어 현재 사용가능하고, Linux포팅도 곧 될 예정이지요.
현재 SoC Robotwar(레이저를 탑재한 전차형 로봇간의 2:2 전투, 게임 시작 이후에는 참가자가 프로그래밍한 인공지능 프로그램에 의해서만 게임이 진행되며, 사용자가 조작할 수 없다는 점이 특징입니다. http://www.u-socrobot.org/)에서 메인 프로세서로 사용중입니다.  (음 유비쿼터스 SoC 로봇워로 이름이 바뀌었군요..)
사용자 삽입 이미지

SoC 로봇워 경기장면, 원통의 색이나, 벽의 패턴을 인식해서 공격이나 동작을 선택합니다.


그 이외에 국내에서의 프로세서들중에서 눈길을 끄는 부분은 8051기반의 프로세서들이 아직도 잘 팔리고 있다는 점이고, 이를 이용해서 돈을 벌고 있는 회사가 있다는 점입니다. 개발자들은 아무래도 익숙한 것을 계속 고집하는 경향이 있지요.. 하지만, 그 이상으로 8051의 저력이 무섭습니다.

위에 이야기 한것 처럼 국산 프로세서가 전무한것은 아닙니다.
단, 외산 프로세서 아키텍쳐에 국산 기술을 입혀서 만들고 있는 경우가 대부분이라 잘 인식하지 못할 뿐이지요(ARM을 이용한 삼성-ARM, 8051기반의 프로세서들).
국산 기술만의 프로세서의 경우 아직 시장에서 크게 두각을 나타내지 못하고 있다는 점도 있구요 (EISC).
대학과 국책 연구실에서는 오늘도 수많은 시도가 있을것입니다. 아직 일반인의 눈에 보이지 않을뿐이지요.

제가 만들고 있는 EISC의 경우만 이야기하자면,
EISC의 경우 그 개발 키트가 공개되어 있으니, 곧 공개 개발자들에서도 재미있는 시도들이 이루어지지 않을까 생각됩니다.
저희도 좀 공격적으로 알릴 필요가 있구요. (사실 회사에서는 인력 부족이라 공개 커뮤니티에 너무 알려지면 공개 커뮤니티를 지원할 인력 문제에 대한 고민도 없잖아 있습니다만...)

EISC 뿐만 아니라 여러 국산 프로세서에 대한 관심을 계속 가져 주시기 바랍니다.

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

Trackback1 : Comment4
Trackback Address :: http://babyworm.net/tatter/trackback/36
칩쟁이들의 모임등록
Tracked from Stay Tuned... | 2008/03/12 18:43 | DEL
블로그를 다시 시작할 수 있게 가장 큰 계기를 만들어 준 사람은 babyworm님이다. 학교에 있을 때 SystemIC 2010이라는 정부 프로젝트를 함께 한 분인데, 말이 함께이지 서로 소속과 과제가 달라서 ..
미디어몹 | 2006/09/04 09:49 | PERMALINK | EDIT/DEL | REPLY
babyworm 님의 상기 포스트가 미디어몹에 링크가 되었습니다.
세가워리 | 2006/09/04 11:50 | PERMALINK | EDIT/DEL | REPLY
잘 읽었습니다. 국산 마이크로프로세서라... 졸업작품 때문에 AVR 관련 책을 뒤적거렸던 기억이 살짝 스치네요 ㅎㅎㅎ
고길동 | 2007/11/27 12:37 | PERMALINK | EDIT/DEL | REPLY
국산 프로세서가 상품화된 게 있었군요.
전에 할 수 없이 대만산 RISC 프로세서를 쓰다가 호되게 고생한 적이 있어서
프로세서 선정시 무엇보다 신경쓰는게 신뢰성입니다. (클럭을 망가뜨려도 살아나야 하지요. :-D)
쓰던걸 계속 쓰려는 것에는 그런 이유도 있습니다.
babyworm | 2007/11/30 11:47 | PERMALINK | EDIT/DEL
네.. 프로세서들이 초기에 고전하는 것도 신뢰성에 대한 의심때문이지요.
저희도 초기에 고전을 많이 했습니다만(실은 아직도 고전중이지만), 이제 이런 저런 회사들에 조금씩 들어가고 있고, 그 기회에서 성공해서 계속해서 들어가고 있는 추세지요.. ^^
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
똑똑한 프로세서가 늘어난다.
[babyworm, 2006/08/10 22:04, SoC 설계 관련]
ARM에서 기존의 시리즈 번호를 접고 새롭게 cortex시리즈를 시작한지도 일년정도 된것 같다.

저가, 저전력 컨트롤러 시장을 타겟으로하는 M시리즈와 고성능, 고속 내장형 마이크로 프로세서 시장을 타겟으로 하는 A시리즈에 이어, 메인 스트림 시장을 타겟으로 하는 R시리즈가 선보였다.

사용자 삽입 이미지

Cortex R4의 블럭 다이어그램[출처: arm.com]


8단 파이프라인(실제적으로는 9단 파이프라고 생각된다.)으로 구성되어 있으며, 거의 ARM11의 파이프 구성과 유사하다.
하지만, synthsizable core로서 선보였으므로, cache SRAM에 더 많은 시간을 할당하기 위하여 파이프 구성을 새롭게 했다는 점이 다를것이다.
또한, 좀더 정밀해진 분기 예측기(global predictor를 사용한 건 의외이긴 하다.)를 내장하고 있으며, 벤치마크에 따라서는 95%까지 예측 성공율을 보여준다고 한다.(이 이야기는 그야말로 벤치마크에 따라서겠다.. 그동안 논문에서 보아온 global predictor의 성능으로 보았을때는 말이다..)

인텔의 Core 2 마이크로 아키텍쳐, AMD의 프로세서, ARM까지..
이제는 더 깊은 파이프라인보다는 정교한 프로세서가 각광받는 시대가 된 것으로 보이고,
이것은 깊은 파이프라인에서 피할 수 없는 분기에 대한 문제, 그리고, 저전력에 대한 요구(클럭 주파수가 낮을수록 상대적으로 전력 소모가 적으니까..물론 다 그런건 아니지만..) area보다는 성능을 중요시하게 된 부분, 그리고 컴파일러의 발전 결과로 볼수 있겠다.

내장형 마이크로 프로세서에서도 이제 똑똑한 프로세서들간의 전쟁이 기대된다.
babyworm
2006/08/10 22:04 2006/08/10 22:04
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
ARM, EISC, 내장형 마이크로 프로세서, 프로세서

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

Secret
새로운 프로세서를 만들다..
[babyworm, 2006/07/16 01:58, 개인적인]

EISC라는 프로세서를 접하고 시작한지 올해로 벌써 8년째다.

학교에서 있을때 대한민국에 변변한 프로세서가 없다는 것에, 그리고 아키텍쳐와 마이크로 아키텍쳐가 없다는 것에 낙담하고 있던차에 SystemIC2010사업으로 embedded microprocessor사업이 있다는 것도 알게 되고 그리고, 아시아 디자인(지금은 ADChips라는 이름으로 바뀌었다)이라는 회사에서 EISC라는 들어보지 못한 프로세서를 만든다는 말을 들었다.

연구실에서 32bit EISC 담당하고, 분석하고, 설계하면서 얼마나 즐거웠던가.

그동안 나의 공부 부족을 한탄하기도 하고, 팀원들을 탓하기도 하면서 몇개의 프로세서를 만들었다.
내가 담당하고 있는 제품군은 32bit EISC processor, 소위 main stream이라 불리는 분야의 내장형 마이크로 프로세서군이다.
우리회사에서 부르는 공식적인 명령어 체계 이름으로는 AE32000.

이번에 AE32000의 이름을 걸고 4번째 프로세서를 만들고 있다. 사실 major change로 보면 3번째 설계를 계승하는 것인데, 2년전에 해야 했을 일을 나 자신의 방황으로 2년이 지난 지금에야 하고 있다.

설계가 예상처럼 된다면, 이제 5단 파이프를 가지는 스칼라 프로세서 중에서는 가장 높은 IPC를 지니고 있는 프로세서이자 저전력 프로세서가 될것이라 자신한다.

그 이후에는 8~9단 파이프를 지니는 고속 프로세서를 만들 예정이다. superscalar도 고려중이지만, 현재는 시장에서 가장 유망한 프로세서를 만들어 두고, 팔릴 수 있도록 만드는 것이 중요하다.

아직도 나는 내가 다니는 회사의 무모한 도전에 박수를 보낸다.
대한민국만큼 유행에 민감한 시장에(한마디로, ARM이 유행하면 ARM이외의 embedded microprocessor는 모르는 환경이 되는) 매년 많은 인력을 투자하며 싸워 나가는 회사가 자랑스럽다.

단지, 가끔은 나 자신이 '이걸 만들어서 어떻게 ARM과 경쟁하나.. ARM은 속도를 위해서 공정도 조작하고, OS들도 많고.. '라는 생각으로 나약해 질때가 있지만..
후배들에게 내가 학교에서 느꼈던 생각이 들지 않도록 하기 위해서라도 반드시 경쟁력이 있는 것을 만들고 말리라..

다짐..

babyworm
2006/07/16 01:58 2006/07/16 01:58
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
EISC, Embedded, processor

Trackback0 : Comment2
Trackback Address :: http://babyworm.net/tatter/trackback/24
김은찬 | 2006/08/24 11:49 | PERMALINK | EDIT/DEL | REPLY
아니 다니는 회사가 어디랩니까? 정말 대단한 도전이라고 말해주고 싶네요.^^
파파죤스 | 2006/08/31 01:13 | PERMALINK | EDIT/DEL
본문에 나와 있는데요.. ^^ 에이디칩스(舊 아시아디자인)
회사주소는 http://www.adc.co.kr입니다.
[로그인][오픈아이디란?]
Name
Password
Homepage

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