Category Archives: SoC & IP design

국외 논문 무료 검색 및 열람 서비스!

나름대로 공학자의 길을 지망하는지라 논문을 챙겨보고 있는데, 그동안은 학생 신분을 빙자하여 매년 얼마씩의 돈을 내고 ACM portal을 이용하고 있었습니다. (IEEE는 computer society 회원이기는 한데 Digital library는 너무 비싸서..ㅠㅠ; 다행히 학교에서 IEEE xplorer는 되었기에 좋았습니다만..)
내년부터는 학생 신분이 끝나고 1년간 할인해주는 기간도 끝나는지라.. 상당히 고민중이었습니다.

물론 citeceer같은 사이트가 있습니다만, 시간이 좀 지난 경우에만 원문 공개인 경우가 많기 때문이지요..

KTUG 게시판을 서성이던중 눈에 확 띄는 제목의 글이 올라와서 가봤습니다.

KERIS 학술 정보 서비스(http://www.riss4u.net/index.jsp)라는 곳인데, 무료 가입후 ACM portal을 사용할 수 있군요! 내년부터는 ACM 회원 정보만 남기고, portal은 신청하지 않아도 되겠습니다. ^^;

IEEE쪽이 좀 아쉽기는 한데.. 되도록 지금처럼 Computer Society쪽만 유지할까 생각중입니다. Computers잡지와 Micro는 볼 수 있으니 말입니다.

아… 위의 학술 정보 서비스는 실은 ACM말고도 많은 DB들이 있으니 다른 계통 분들도 충분히 관심을 가져볼만 합니다.

여기서 전자책도 되네요.. ACM에서 제공하는 것과 같은거 같은데.. full version인듯해요..^^;

EISC 프로세서 관련 신문 기사 하나

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

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

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

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

[기사 출처: http://www.etnews.co.kr/news/detail.html?id=200610200152]

[#M_기사보기..|닫기|
에이디칩스가 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.html?id=200610200152]_M#]

TLM으로 설계가 이동할 것인가?

Transaction Level Modeling(이후 TLM)이라는 것이 한 2-3년전부터 SoC설계 분야에서 논문/책/툴을 쏟아내고 있습니다. 그만큼 이제 시장 상황이 익어간다는 것이겠지요.

하지만 설계라는 분야에서 RTL에서 TLM 수준으로 추상화 수준이 이동할 것이라고 믿었던 사람들도 이제는 거의 TLM 수준에서 설계가 이루어질 것이라 믿고 있지 않습니다. 그 이유는 무엇일까요?

예전에 schematic capture수준에서 HDL을 기반으로 하는 RTL수준으로 설계가 옮겨 갈수 있었던 가장 큰 이유는 logic synthesis 기술의 혁신적인 발전에 있습니다.
(저가 처음 digital logic 설계를 배우던 시절이 이 개념이 한창 바뀌던 시절이었던것 같습니다. 학부 3학년때는 schematic capture툴로 설계를 했는데, 학부 4학년때는 VHDL을 시작했거든요.. 개인적으로는 schematic capture툴로 설계를 시작한 것이 설계의 기본기를 많이 배울수 있었던 기회였기에 아주 행운이었다고 생각합니다. )
초기에 logic synthesis는 사실 (전문가가 한) schematic 설계보다는 못하지만, 그 생산성에 있어서 비교할 수 없이 훌륭했고, 어느정도 시간이 흐른 이후에는 설계의 질 또한 훌륭한 수준이 되면서 대부분의 설계가 RTL에서 이루어지게 되었습니다. (물론, 아직도 schematic capture를 이용하여 설계하시는 분들이 계십니다. 몇년전에 일본에서 온 할아버지 엔지니어였던 야노상.. HDL도 잘 모르고, STA도 몰라서 같이 일하는데 아주 괴롭고, 걱정스러웠습니다만.. 동작 잘하는 칩을 만드는 엔지니어였습니다. ^^; 일면 부럽기도 하고요..그 나이까지 엔지니어를 한다는 것이요..)

TLM 수준에서 설계가 이행되지 못하고 있는 큰 이유는 구현(implementation)을 위하여, 손으로 재설계를 해야 하기 때문입니다. 즉, TLM으로 만들고 난 이후에 이를 RTL로 이전시킬 만한 (괜찮은) CAD 툴이 아직 없다는 것이 문제입니다.

뭐, 여러가지 시도가 있기는 합니다만.. 99년에 제가 한창 CAD 알고리즘을 공부할때 behavioral synthesis라는 논문들을 보고.. 이거 돈 되겠다.. 라고 생각했었는데..^^; 사실 이 분야에서 제대로 된 CAD툴이 아직도 못나오고 있는 실정입니다. (비슷한 것으로 자연어 통역기.. 70년대부터 계속 연구되었지만.. 아직까지 못나오고 있습니다… 인공 지능 분야에서 나오지 못할것으로 예상되는 프로젝트 중의 하나로 나와있더군요..^^; 아직 연구는 많이 하지만요..)
여하튼.. TLM 수준에서 RTL로 가는 건 앞에 말한 예보다는 쉬운 것이니 향후 몇년 내에 나올것이라 예상됩니다만.. 아직은 아닌 것이지요..

그럼.. TLM 수준의 설계는 이대로 사망하는 건가요?

TLM은 검증을 싣고..

TLM이 새로운 개념이 아니라는 것은 [wp]verification[/wp] engineer쪽에서는 기본입니다.
왜냐.. 예전부터 검증계에서는 TLM이 좋은 방법이었거든요..
SystemC는 이제 설계 언어라기 보다 검증언어입니다. 물론, architectural simulation하려고 할때 timed model을 예전 C++만을 이용할때 보다 아주 편하게 해주기는 합니다만, 이것이 설계는 아니지 않습니까…

이런 모습을 반영하듯, 초기 systemC는 synopsys에서 synthesizable subset을 지정하고 했습니다만.. 설계 언어로는 대부분 아무도 사용하지 않습니다. (정말 불편하죠..)

이제 SystemC에 추가되고 있는 기능은 대부분 검증 관련입니다. HVL(Hardware verification language)로의 확장에 역점을 두는 것이지요..

SystemVerilog도 마찬가지 입니다. verilog 2001에서 확장되어 발표된 SystemVerilog는 System설계 언어라기 보다 현재로서는 Verilog+HVL이라 할 수 있습니다. (많이 약합니다만..)

TLM기반의 SystemC, systemVerilog의 확장 라이브러리들

[wp]SystemC[/wp]에서는 [wp]Cadence[/wp]의 TestBuilder(이제는 CVE), 그리고, 이를 기반으로 한 SCV가 있습니다.
또한, 최근 멘토에서 AVM(Advanced Verfication Method)라는 검증 methodology(실은 라이브러리)가 나왔습니다. (http://www.mentor.com/products/fv/_3b715c/cb_download.cfm). 아마도 Cadence가 donation한 SCV(SCV good to go. Sir! ^^;)에 대한 대항마로 생각되는 부분이 많은데요.. 둘다 무료이고, 공개된 library이니까 설계하는 저희들이야 고맙죠.
국내에서는 CoSOC이라는 서울대 사업단에서 SCV기반의 검증 라이브러리가 나왔는데..  저는 사실 교육을 받고 왔지만 아직도 목적성을 잘 모르겠더군요.. 아무래도 업체가 아니고, 학교 연구소에서 국책 과제로 수행하는 것이다보니 완성도가 아직은 부족한 것 같습니다. (흠..이름을 잊어서 홈페이지에 가봤는데 없는 걸 보니 그냥 접었나보군요)

두 라이브러리 모두 역점을 두고 있는 부분이 [wp]assertion[/wp], functional coverage, constrant random vector generation입니다. 사실 검증에 있어서 coverage directed constrant random testing이 대세니까요..

요즘에 검증쪽 일을 할라고 슬슬 작업중인데.. 음.. 삽질을 많이 할듯 해서 걱정입니다.