Nios II C2H compiler 배경 지식에 대한 자료
2006년 05월 12일
트위터로 보내기페이스북으로 보내기구글플러스로 보내기

개발자들은 그들의 디자인을 분할하고, C코드의 일부분을 FPGA 내의 하드웨어 블록으로 실행시킴으로써 더 빠른 클럭의 프로세서를 사용하지 않고도 시스템 성능을 향상시킬 수 있다. 하드웨어 가속기는 범용 CPU에 비해 한 클럭 사이클 당 더 많은 계산을 할 수 있고, 눈에 띄게 향상된 성능을 제공한다. 그러나, 지금까지는 하드웨어 가속기를 사용해 Nios® II 프로세서의 소프트웨어 부담을 덜어주는 것은 수동 작업이었을 뿐 아니라, RTL 블록을 만들고 시험해 자신의 시스템에 통합하는 툴과 경험을 가진 개발자들에게만 가능한 것이었다.
알테라는 2000년에 소프트 코어 Nios 프로세서를 소개한 이후, Nios 사용자들이 임베디드 시스템을 FPGA로 구현하는데 필요한 툴을 제공하는 데 있어 많은 발전을 해왔다. 알테라는 지금까지 15,000개 이상의 Nios 개발 키트를 공급했고, 세계 상위 20개 OEM회사가 사용하고 있는 제2세대 Nios II 프로세서는 단 6년 만에 세계에서 가장 인기 있는 configurable 소프트 프로세서의 하나가 되었다. 알테라는 증가하는 Nios 사용자를 더욱 잘 지원하기 위해 하드웨어 가속기의 생성과 통합을 자동화하는 Nios II C2H 가속 컴파일러(C2H Acceleration Compiler)를 개발했다. Nios II 사용자들은 Nios II IDE를 사용해 그들의 소프트웨어 성능을 신속히 파악해 처리시간이 중요한 C 서브루틴들을 선택, 오른 쪽 버튼을 클릭함으로써 하드웨어 가속기로 변환시킬 수 있으므로 몇 주가 걸리던 작업을 불과 몇 분에 처리할 수 있게 되었다.
Nios II C2H 컴파일러는 Eclipse 기반 Nios II IDE에 플러그인이며, Nios II 프로세서를 위한 소프트웨어의 작성에 익숙한 사용자들에게 친근한 디자인 환경을 제공한다.

전형적인 Nios II 소프트웨어 디자인은 알고리즘적인 코드(예를 들면 데이터 변환), 일반 시스템 셋업, 유지 및 예외 코드 등이 섞여 있는 것이다. Nios II C2H 컴파일러는 사용자가 가속을 위해 지정한 부분의 코드만 하드웨어 가속기로 변환시킨다. 이러한 부분은 보통 계산 또는 데이터 이동이 많기 마련이다. 목표 알고리즘은 보통 간단한 것이어서 C언어에서 쉽게 구현되고 프로토타입 될 수 있다. 그러나, 이러한 알고리즘은 종종 프로세서의 실행 시간을 많이 잡아먹는다. 결과적으로 Nios II C2H 컴파일러는 전체 어플리케이션을 하드웨어로 변환하는 것이 아니라 오직 디자인에서 실행시간에 민감한 부분만 가속한다. 그림 1은 이 툴을 이용해 가속한 몇몇 낯익은 벤치마크 애플리케이션들과 그로 인해 추가 소비된 로직 자원을 보여주고 있다. 하드웨어 가속기가 추가적인 FPGA 로직과 메모리, 곱셈 자원을 필요로 하는 반면, 많은 계산이 요구되는 여러 오퍼레이션들이 매우 효과적으로 하드웨어로 변환됨으로써 매우 적은 추가 비용에 큰 성능 향상 효과를 가져온다.
 
SOPC Builder와 Avalon 연결 패브릭의 힘에 의지

알테라의 FPGA 기반 소프트웨어 가속 접근법은 함수들의 상호연결을 위해 SOPC Biulder 고유의 Avalon® 스위치 패브릭을 이용함으로써 Nios II 컴파일러가 다른 FPGA 기반 솔루션들에 비해 훨씬 더 광범위한 어플리케이션에 걸쳐 뛰어난 가속 결과를 제공하도록 만든다. 모든 Nios II CPU 시스템은 Altrea® SOPC Builder 시스템 개발 툴을 이용해 구성된다. 각각의 Nios II 시스템에 대해 SOPC Builder는 Nios II 코어를 주변기기나 FPGA 기반 시스템의 나머지 부분과 연결하기 위해 Avalon 연결 패브릭 IP 블록을 만든다. Avalon 연결 패브릭은 동시에 일어나는 복수의 마스터-슬레이브 트랜잭션을 지원하는 진정한 논블로킹 연결이며, 기존의 미디어 버스 공유 구조에 비해 전체 시스템 성능을 극적으로 향상시킨다
Nios II C2H 컴파일러에 의해 생성된 하드웨어 가속기는 이 연결 패브릭을 통해 Nios II 프로세서에 연결된다(그림 2). 결과적으로 하드웨어 가속기는 외부 메모리를 포함해 프로세서의 메모리 시스템에 고대역폭 액세스를 가능하게 만들어, 광범위한 애플리케이션에 걸쳐 효과적인 가속을 가능하게 한다.
 
시스템-레벨 디자인 파트너 지원

알테라와 알테라의 전자 시스템 레벨(ESL – Electronic System Level) 디자인 파트너들은 시스템 설계자, 디자인 엔지니어와 소프트웨어 개발자가 FPGA 내의 C 기반 코드를 가속할 수 있도록 만들어주는 툴들 간의 상호작동성을 더 크게 하기 위해 협력하고 있다. 알테라는 SOPC Builder 시스템-레벨 개발 툴과 Nios II IDE를 위한 API를 개방했다. 알테라는 이제 파트너들에게 SOPC Builder를 포함하는 Quartus® II 디자인 소프트웨어의 OEM 버전을 제공하고 있다. 이로 인해 알테라의 EDA 파트너들은 완전한 턴키 시스템-레벨-투-실리콘 디자인 솔루션을 제공할 수 있게 될 것이다.

가격과 구입 가능 시기

Nios II C2H 컴파일러는 현재 베타 고객들에게 출하되고 있으며, 2006년 5월부터 일반 구입이 가능하다. Nios II C2H 컴파일러는 Nios II IDE에 플러그-인으로 통합되어 제공되며 각 시트당 미화 2,995달러에 별도의 라이선스 계약을 맺어야만 한다. 추가 정보는 www.altera.com/c2h에서 구할 수 있다.

* 원본자료 및 그림은 첨부파일 참조(자료제공: 알테라)

그래픽 / 영상
많이 본 뉴스