AE32000C-Lucida 프로세서 기반의 첫 상용칩. CANTUS

이번에 회사에서 CANTUS라는 저가 MCU가 공식적으로 론칭했고, 론칭하자마자 양산 오더가 들어와서 양산에 들어갔습니다. 이 MCU는 저희 팀이 개발한 AE32000C-Lucida 프로세서라는 것이 처음 적용된 상용화 칩이지요.

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

기존에 AE32000C 시리즈에서 가장 많이 사용된 AE32000C-Lucifer프로세서[1]국내 S사를 비롯해서 많은 라이센스가 이 프로세서를 통하여 이루어졌습니다.를 기반으로 기반 성능을 10% 이상 높이고 면적은 줄이고, 에너지 효율도 높이고, 디버거 형태나 효율도 높이고.. 이런 형태로 개발된 것이 AE32000C-Lucida 프로세서지요. 사실 내부적으로 개발이 완료가 된 것은 몇년 되었고, 라이센스나 데모 칩등은 몇번 나왔는데, 이제야 첫번째 상용칩이 나왔으니 상용화라는 것이 참 시간이 많이 걸리는 작업이긴 합니다.
이번에 나온 CANTUS는 범용 MCU로 응용에 필요한 수준의 SRAM과 NOR flash가 내장되어 있기 떄문에 3.3V 전원과 크리스탈만 연결하면, 동작시키는데 문제가 없다는 장점이 있죠. 좋은 음질이 필요치 않다면 CODEC이 내장되어 있고, EISC를 위한 MP3 디코딩 프로그램이 제공되니까 간단한 MP3 플레이어를 만드는 건 아~주 간단하죠. (물론, 좋은 음질을 원한다면 audio codec을 붙이는 것이 깨끗하죠.. 이를 위한 인터페이스도 있고요)
여담입니다만, 저는 저희회사에서 이런 MCU를 많이 하는 것이 좋을 것이라 생각해요.
아키텍쳐를 보급하는데는 수량이 많지 않은 멀티미디어 부분 보다는, 수량을 많이 소화하는 MCU가 더 좋을 것이니까요. (AVR같은 것 봐도 그렇지요 ^^;)

References   [ + ]

1. 국내 S사를 비롯해서 많은 라이센스가 이 프로세서를 통하여 이루어졌습니다.

새로운 EISC 기반 제품.. 출장

1.
그전에도 보안 카메라 쪽에서 나름 인지도가 있는 S 계열사의 Winner3, Winner4 시리즈에 EISC가 채택되었었는데, 이번에는 S사의 보안 카메라 부분의 A1이라는 칩에 채택되어 양산되었습니다. (http://www.dt.co.kr/contents.html?article_no=2009040802011232718001) 이 제품들에 대한 라이센스가 몇 년전의 일인데, 이제야 성과물이 나오는군요. 
EISC 프로세서의 경우 그 동안 이것 이외에도 이쪽 저쪽에 라이센스가 좀 있는데, 작년부터 미미하지만 로열티 수입이 발생하기 시작한다는 점, 그보다 타사에서 상용화에 성공한 제품이 하나둘씩 나오고 있다는 점이 좋은 현상인 듯 합니다. 
프로세서라는 것이 시장에서 받아들여지는데 참 오래걸리는 놈이라는 걸 다시 한번 깨닿고 있습니다. 
2.
COOLCHIPS를 보기 위하여 내일 출국합니다. Poster 섹션에 많은 한국분들이 있으시더군요. 기회되면 즐거운 시간을 🙂
한가지.. 
밤에 집에 가면 졸려도 참고 있다가 후다닥 달려와서 안기는 14개월된 우리 딸래미가 마음에 걸립니다. 

Asynchronous는 어려워

요즘 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 직전이고.. 이런 저런 “잡일”로 바쁘네요.