Category Archives: SoC & IP design

via nano와 Intel atom간의 벤치마크가 화제라는데..

오랫만에 올블을 보다보니, VIA nano와 Intel ATOM간의 벤치 마크 결과 VIA가 앞섰다는 이야기가 있어서 좀 찾아봤습니다.


지난 글에서 간단히 썼듯이 ATOM의 경우 전력 성능을 위하여 speculation을 최대한 자제한 프로세서라 할 수 있지요. 따라서 in-order issue pipeline을 사용하고 있습니다.


MPFJ 2008에서 Belli Kuttanna의 발표를 보면 다음과 같은 내용이 있지요.



이 이야기를 하면서, ‘baseline core에 비하여 성능이 떨어지더라도, 전력 소모를 줄이는 것이 목표이며, 이를 위해서 처음부터 다시 개발했다(developed from scratch)’ 라는 이야기를 같이 했었지요. 그만큼 저전력 마켓에 대한 의지가 강력하다는 의미로 받아들일 수 있겠습니다.


문제는 in-order issue의 경우 out-of-order에 비하여 여러 면에서 성능 차이가 발생하게 되는데, 이를 해결하기 위한 intel의 방법입니다. ATOM에서는 2개의 thread를 지원하는 SMT 구조를 채용하고, 프로세서의 입장에서는 약간 특이한 OF(RF)-AG-DC1-DC2-EX-WB 형태의 backend pipeline을 구성하여 x86 native(macro) instruction에 최적화 시킨듯한 느낌입니다. 이 경우 분기 예측의 중요성이 매우 커지게 되는데, 이를 보완하기 위해서 branch trace buffer, GShare predictor와 Return stack buffer등을 채용해서 분기 쪽은 비교적 aggressive하게 만든 거죠.


좀 재미난 건, 슬라이드 중의 다음 내용인데요..


Reduced number of specialized execution units and queuing structures
– no integer multiplier, divider, store data buffer


처음에는 저렇게 해도 성능(clock freq말고요..)이 나올까.. 라는 부분이 궁금했습니다만, 강력한 SIMD/FP part가 있으니 integer part중 복잡한 연산을 모두 FP 부분에 넘기고, 이 결과를 바로 integer 연산 pipeline쪽으로 넘기는 동작을 수행하더군요. SIMD/FP 연산의 경우는 reg-reg 연산이라서 가능한 거겠지요. 물론 데이터 패스에 보면 메모리에서 FP로 바로 넘어가는 것도 있습니다만, 발생하는 일이 많지 않으니 저렇게 설정했겠습니다.





아.. 제목의 것으로 돌아가서, VIA nano의 경우 약간 접근이 다릅니다. wikipedia의 정보를 보니, VIA의 경우 out-of-order pipeline을 사용한 것을 알 수 있습니다. 따라서, 일반적인 개념상 더 빨라야 정상이겠습니다.

Built-In Self Test

질문 게시판에 질문해 주신 분이 계셔서 적습니다.

제가 DFT쪽의 전공은 아니라서 개론적인 사항만 간략히 설명드리겠습니다. 더 자세한 부분은 책을 참고하시는 것이 좋을 것 같습니다.

BIST는 말 그대로 Built-in self-test를 통하여 block을 check하는 방법을 의미합니다. 말 그대로 test vector generator와 result checker가 logic으로 내장되어 있어서 외부의 동작 없이 해당 블럭에 대한 검사를 수행하는 방법입니다.

이 방법은 대부분의 SoC에서 많이 사용하는 full scan과 같은 방법을 통한 functional check가 test vector를 scan chain을 통과시켜서 입력시키고, 그 결과를 역시 scan chain을 통과시켜 비교하는 방법을 사용하는 것과 비교하면, scan chain 통과에 걸리는 시간이 없기 때문에 해당 블럭에 대하여 in-speed test가 가능하고, 비교적 빠르게 검사할 수 있다는 장점이 있습니다.

하지만, 장점이 있으면 단점이 있는 것이 이 세상사는 이치라.. ^^;

입력 시켜야 하는 test vector의 복잡도와 checking logic의 복잡도에 따라 built-in 시켜야 하는 로직이 엄청 커질 수도 있다는 점이 단점이지요. 그래서, test vector generation과 checking이 간단한 메모리 검사등에는 널리 사용되나 일반적인 logic에는 잘 사용되지 않고 있습니다. (물론, 일반적인 로직들에서 이러한 test vector generation과 checking을 어떻게 하면 효율적으로 수행할 수 있을 것이냐?? 하는 것이 재미있는 주제로 많이 연구되고 있고.. 후배 중에 한명이 arithmetic BIST와 같은 알고리즘을 시도해본 적도 있습니다만..^^;)

Scan과의 연관은 뭐 간단히 생각하실 수 있어요.

BIST를 제어하고, 결과에 문제가 없는지 체크하기 위해서는 적어도 입/출력이 필요한데 이걸 scan chain에 엮어서 제어하는 거죠. 그렇게 안해도 관계는 없습니다만.. ^^;

일반적으로 많이 사용하는 Memory BIST의 경우 대부분 CAD tool에서 생성시켜 주거나 공정에서 같이 제공해주고요.. 다른 것은 만들어야 겠지요? (이건 일반적으로 사용되는 방법이 아니라 전 잘 모르겠습니다. ^^;)

DFT쪽에 재미난 주제들이 많지요. 특히 재미있는 알고리즘과 엮이기도 하구요. 공부하시기 좋은 분야라 생각됩니다.


Technorati : ,

질문에 대한 늦은 답..

저에게 가끔 메일 혹은 방명록을 이용하여 문의해 주시는 분들이 계십니다.

제가 훌륭한 실력이라면 쉽게 쉽게 대답을 해 드릴것인데, 아쉽게도 현실과 실력의 괴리가 큰 관계로…게다가 요즘엔 제가 진행하는 프로젝트가 막바지라 정신이 없지요.

답변을 기다리고 계셨을 분들께 깊이 사죄의 말씀 드립니다.

PLI 관련 강의자료나 사이트

* 강의; 제가 알고 있기로 Verilog-PLI나 SystemC 관련된 강의로는 IDEC에서 다이나릿 기안도 박사님께서 하시는 강의가 거의 독보적인 것으로 알고 있습니다. 일단 SystemC 부분은 저도 들어봤는데, 매우 의미 있는 강의였습니다. Verilog-PLI는 제가 시간이 없어서 후배를 보내서 책만 사왔던 적이 있는데, 그 교재만으로도 Verilog-PLI를 편하게 살펴볼 수 있더군요.

* Site; 국내는 거의 없지요? Googling해보는 것이 가장 좋은데, 예전에는 spears던가 흠..synopsys분의 사이트를 많이 이용했는데, 요즘엔 잘 모르겠습니다.

* 책; 책의 경우 Sutherland의 The Verilog PLI Hnadbook이 가장 쉽게 접할 수 있습니다. 개인적으로는 위에 소개해 드린 기안도 박사님의 강의 교재가 가장 보기 편하다군요. Verilog PLI 2.0 (VPI)는 이걸로 배웠습니다. 예전엔 PLI 1.0만 거의할 줄 알았거든요. ㅎㅎ

FPGA 관련 자료

FPGA 관련해서는 몇번 말씀 드렸던 real world Xilinx FPGA 가 쓸만합니다. Altera는 제가 잘 써보질 않아서 모르겠습니다 ^^;

제 개인적인 생각입니다만, Xilinx나 Altera나 모두 각 회사에서 매우 훌륭한 메뉴얼을 보유하고 있어서 굳이 책이 필요하지 않다고 생각합니다. 별다른 책이 안나오는 이유도 메뉴얼과 Application note, FAQ로 대부분의 문제가 해결되기 때문이겠지요. ^^;

현재 대부분 출판된 FPGA 관련 책은 사실 FPGA 설계에 대한 팁이나 기술 보다는 설계를 어떻게해서 어떤 보드에 올리냐에 집중하고 있어서, 그냥 초보자 용으로는 좋지만 어느 정도 기술이 있으신 분들께는 잘 추천하기 어렵지요.

대부분 설계 관련 서적에 있어서 국내서를 찾아보기 어렵습니다. 초보자용은 많습니다만…

그 이유로 저는 하드웨어 설계자가 그만큼 적고, 그 정도 인력이면 대부분 영문 매뉴얼을 보는데 큰 부담이 없어서.. 가 아닌가 생각합니다.
영문 매뉴얼을 뛰어넘을 만큼의 재미난 팁을 모아서 한글판 책이라도 나와 주었으면 좋겠습니다만, 출판이 될 정도로 시장이 크지도 않구요. 🙂

그러다보니 학교 교재로 사용될 만큼의 초보자용 교재가 그나마 수익성이 있는 것이겠지요. ^^;

실력이 있으신 회사 일의 과정에서 얻은 기술을 일반에 공개하는 것에 대해서 위험성을 항상 가지고 있기도 하구요(이쪽 분야가 보안이란 것이 워낙에 민감하기도 하니까요..). 그래서, 국내 정보가 적은 것 아닌가 생각합니다. 참.. 이게 어려운 문제네요 ^^;