오늘 서울대 최기영 교수님으로 부터 Reconfigurable Architecture 개요를 들었다.

오... 무척 흥미롭다 ㅇ_ㅁ...

http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/date/&toc=comp/proceedings/date/2005/2288/01/2288toc.xml

FPGA에 cpu를 설계해 올리려고 한 것 자체도 무척 작은 일이라는 생각이 들었다.
또 하나의 벽이 깨진 기분이다 ㅇ_ㅁ;;

소감문. ㅋㅋ

어제 서울대 최기영 교수의 'Reconfigurable Processor Architecture' 세미나를 들었습니다.

무척 흥미롭고 새로운 안목을 열어주는 세미나였는데요,

Reconfigurable Processor (이하 RP) 는 한마디로 ARM 처럼 동작하다가 동영상 플레이가

요구되는 프로그램이 실행될때, 갑자기 0 또는 1 cycle 내에 DSP 처럼 동작할수있게 동작하고자

하는 애플리케이션에 특성에 맞게 프로세서의 기능 조직(?)이 변신할 수 있게 만들자는 얘기같네요.

얼만큼 범용적인 로직을 실행할 수 있느냐에 따라서 아래 처럼 순서가 매겨지는데,

H/W ASIC < CGRA < FPGA < DSP같은것들 < ARM같은것들

물론 왼쪽의 것으로 가면 갈 수록 특정 목적 하라는 전제하에서는 가장 빠른 속도를 내게 되겠고요,

H/W ASIC (하드웨어 가속 회로로 특수목적용으로 그때 그때 설계되는 하드웨어 로직)
CGRA (Coarse Grained Reconfigurable Architecture) : 이분야가 제 생각엔 RP 분야인듯.
FGPA는 Fine Grained 쪽으로 Gate단위로 설정하므로 CGRA보단 세밀하게 자유롭게 설정하여 하드웨어
로직을 만들어낼 수 있지만, 세밀하다보니까, Configuration Point가 너무 많아, 한번 Configuration하려면
외부에 SDRAM같은 메모리에 verlog나 VHDL로 synthesis한 큰 configuration data를 넣어두었다가
기능 동작을 위해서 FGPA로 부어넣어 실행하게 되므로 설정은 기능 동작 전에만 변경가능하고, 실행도중에
설정을 바꿀 수 없는 static configuration이라고 하는군요.
이에 반에 Coarse Grained는 ALU같은 실행 unit 단위로 배열이되어 있기 때문에 FPGA보다 훨씬 적은
Configuration Point가 있어 실행 도중에도 Configuration Register들을 두어 0또는 1 cycle내에 dynamic
configuration을 할 수 있다고 합니다.

Tensilica의 Atensa라는 Configurable Processor는 재미있게도 C로 짠 코드를 XPRES라는 컴파일러로
돌리면 코드를 분석하여 코드의 일부분은 H/W 로직으로 synthesis하고 일부 하드웨어 가속이 힘든 부분은
그냥 C Compiling하여 H/W synthesis된 부분은 Xtensa Processor Generator를 이용하여
'그 애플리케이션 목적의 Processor'가 된다는 군요;
소프트 개발자는 processor에 맞는 코드를 짜는 걸 기본으로 생각하는데, 이건 코드에 맞는 processor를
만든다는 얘기니, 저의 생각의 벽을 허물게하는 이야기 였습니다.

현재, 연구는 많이되어 있으나 실제 상용은 그리 많지 않다고 하네요. 이유는 어중띠는거죠 -_-;
빠르기는 ASIC을 따라갈순 없고, ARM보다는 빠르지만, FPGA처럼 실용성에 문제가 있나봅니다.
하지만 수요 변경이 급증하지만 이에 맞춰 ASIC생산성이 따라가질 못하는 편차가 심해지고 있기 떄문에
한정된 H/W Resource로 성능 높은 여러 특수 기능을 요구하는 smart device 발전에 따라 곧 RP도
활성화 될것아라고 봅니다.

+ Recent posts