Author Archives: babyworm

Design-For-Test for digital IC and embedded core systems

 

 

요즘에 반도체 설계에 있어서 가장 중요시되는 것중에 하나는 “테스트를 고려한 설계(DFT)”, “검증을 고려한 설계(DFV: design for verification)”, “생산을 고려한 설계(DFM)”입니다.

DFV는 저 같은 front-end까지를 담당하는 엔지니어에게 중요한 요소입니다.
원하는 바대로 설계가 되었는지, 그 검증은 얼마나 편하게 되도록 고려되었는지.. 이를 위한 조작들(assertion과 같은)이 수행되었는지..

DFM은 back-end엔지니어에게 중요한 요소라고 봅니다. 이는 대부분 공정에서 fault가 발생할 여지를 얼마나 줄일 수 있느냐에 해당하므로, 설계의 goal을 침해하지 않는 범위에서 최대한 fault가 발생할만한 여지를 줄여주는 것입니다. 최근의 back-end 설계툴들은 이 부분을 모두 갖추고 있습니다.

DFT는 설계된 로직이 fab에서 반도체로 나왔을때 그 공정상에서 발생한 문제(fault)를 알아낼수 있는가 입니다. 이 부분은 front-end엔지니어나 back-end 엔지니어 모두에게 중요한 요소입니다.
오늘 소개해 드리는 이 책은..(책장수 같네요.) 바로 DFT에 대한 기초적인 사항을 다루고 있는 책입니다.

Prentice Hall에서 요즘에 나오는 교재를 위한 시리즈들중의 하나이며, 반도체 회사에 가길 지망하시는데(혹은 종사하시는데) DFT에 대한 기본적인 개념을 잡으실때 상당히 좋습니다.

우선, 그림이 많고 명확하다는 점이 가장 큰 장점입니다.   (그림 만세~!)
포함하고 있는 내용도 DFT전반에 대한 내용을 모두 다루고 있으므로, 한번 읽어보시면 도움이 될만한 책입니다.

단점은 현재 사기가 어렵다는 점.. 실무적인 툴의 사용이라던지 하는 부분은 빠져 있다는 점입니다.

DFT책중에 (개인적으로는) 추천이 어려운 책도 하나 알려드리죠..


Mourad/Zorian이 쓴 Principles of Testing Electronic Systems이라는 책이며, willy에서 나온 책입니다. (스펙만 보면 상당히 괜찮을 것 같습니다만..)

이 책은 그림이나 내용에 오타가 너무 많습니다. 특히 그림에서 몇몇 wire가 사라져 있어서 한참 봐야 할때가 있었습니다. 중요한 그림에의 오류는 참기 어렵습니다. (예를 들어 boundary scan cell을 설명하면서 serial-in, serial-out을 연결하는 wire가 없다던지..)

사실 전반적인 내용은 어떨지 모르겠습니다. 저의 얄팍한 인내심으로는 책을 덮어야 했으니까요..(반성…)

 

LaTeX 한글화를 위한 노력: KC2006

[wp]LaTeX[/wp]을 네이버에서 검색하면 “라텍스”라는 재질로 더 많이 검색됩니다.
간혹 이걸 이용해서 만든 성인용품도 나오구요.

LaTeX은 문서 작성 시스템입니다. 워드 프로세서는 아니구요..
차라리 Docbook쪽에 가깝습니다. (그 기원을 따지면 docbook보다 더 오래되었지만요..)
예전에 소위 이야기하는 WYSWYG 워드 프로세서들이 창궐하기 이전에는 모두들 latex과 비슷하게 문서를 텍스트에디터에서 작성하고, 이걸 컴파일해서 문서를 얻는 방법을 사용했습니다.
그중에 가장 유명하며, 가장 편리하고, 가정 널리 사용되었던 것이 TeX입니다.

제가 LaTeX을 처음 접한 건 아마도 96년 정도가 아닌가 싶습니다. 당시 교수님께서는 LaTeX라는 것이 있는데, 문서가 정말 멋지게 나온다는 말씀을 하셨고, 찾아 찾아 KAIST의 ftp에서 프로그램을 설치하고 난리를 쳤는데 결과적으로는 설치하고, 한글이 그냥 그래서 좌절하고 말았습니다.

친구녀석은 석사 논문을 텍으로 썼다가 학교 도서관에 전자문서를 제출해야 하는데, 도서관에서 ‘Latex이 멉니까? 우린 아래아 한글이나 MS 워드 밖에 안 받습니다”라고 해서 전체를 다시 써야 했던 슬픈 추억도 있습니다. (수학과 교수님 이야기로는 수학과에서는 예전부터 텍으로 받았다고 하시더군요..)

텍은 그 수식의 미려함, 그리고, 다양한 포맷, 글을 쓰는 사람에게 글의 모양이 아닌 글쓰기 자체에 집중할 수 있게 해준다는 장점을 지니고 있습니다.

[tex]$e = mc^2$[/tex]
(이 수식은 테터툴의 Latex 렌더러 플러그인을 통하여 만든 TeX 수식입니다.)

하지만, WYSWYG 형식의 워드 프로세서에 익숙한 사람들에게는 조금 거부감을 가지게 합니다.
물론, HTML을 소스 수준에서 편집할 수 있는 정도의 사람이면 LaTeX을 겁낼 것은 하나도! 없습니다.

예전에는 LaTeX 시스템을 설치하고, 사용하는데 까지 너무 어려웠습니다.
저도 지뢰밭을 걷는 느낌이라 왠만하면 손 안대고 사용하자.. 주의구요..

KTUG 로고

그런데, KTUG(Korean TeX User Group)에서 이번에 내 놓은 KTUG Collection 2006은 그야말로 축복입니다. (KTUG Collection 2006에 기울인 정성들에 축복이~! )

간단한 설치, 간단한 설정, 새로 추가된 KCMenu를 통한 간편한 컴파일!
(http://faq.ktug.or.kr/faq/KTUGCollection2006)
공개판을 받아서 설치하는 것도 간단하며, CD형태로 받는다면 정말 손쉽게 TeX을 컴파일해서 PDF형태로 만들수 있습니다.

LaTeX을 이용한 글쓰기는 사실 저도 본격적으로 시작한지 약 1년 남짓밖에 되지 않습니다만, 이제 워드도, 아래아 한글도 사용하지 않습니다.
[wp]CVS[/wp]와 연결되어 사용하는데는 아마도 latex이 가장 좋은 형식일 것입니다. 
그리고, 모든 문서를 CVS와 같이 사용하는 것은 문서/프로그램소스/기타 자료를 모두 버젼관리하에 두고 사용할 수 있다는 점에서 매력적입니다.

한번 도전해 보세요.

국산 마이크로 프로세서

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

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

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

국내 연구실중에서 상용 수준에 가장 근접했던 곳은 아마도 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 뿐만 아니라 여러 국산 프로세서에 대한 관심을 계속 가져 주시기 바랍니다.