FPGA를 활용한 멀티 프로세서 솔루션 구현 FPGA를 활용한 멀티 프로세서 솔루션 구현
김재호 2008-01-24 14:42:04

고성능 처리 솔루션을 위해

FPGA를 활용한 멀티 프로세서 솔루션 구현 <1>

새로운 하드웨어 개발 툴, IP 코어 및 FPGA 인프라에 의해 이러한 기술의 주요 응용 분야가 탄생해 왔다. 임베디드 공동체 내에서 이러한 기술이 성공을 거둠에 따라 주요 FPGA 벤더들에 의한 개발 및 성장이 빠른 속도로 진행되고 있다. 이제 이러한 가능성의 상용화 방안을 찾을 시기이다.

글 │밥 가레트(Bob Garrett), 알테라

고성능 처리 솔루션을 원하는 임베디드 설계자는 필연적으로 비용/성능/전원의‘세 가지 요소를 고려해야 하는 상황’에 직면하게 되며, 이 세 가지 요소 중 두 가지는 충족이 가능하지만 세 가지를 모두 충족시키는 것은 어렵다. 시간과 경비가 충분하고 리스크

에 대처할 여유가 있는 경우에는 맞춤형 ASIC 설계가 적합하지만, 디바이스크기가 계속 작아지고 있고 ASIC 설계 비용은 지속적으로 늘어나고 있기 때문에 완전한 맞춤형 설계에 드는 경비를 감당할 만한 분야는 점점 줄어드는 추세에 있다.

여러 개의 소프트 코어 프로세서를 특징으로 하는 FPGA 기반 임베디드시스템은 임베디드 설계자에게 여러가지 강력한 옵션을 제공한다. 맞춤형 기능 세트를 통해 최적화된 성능의

SoC를 구성할 수 있는 것은 더 이상 ASIC 설계자만의 특권이 아니다. 이제 개발자는 최종 제품 테스트 단계에서도 임베디드 시스템의 성능 특성을 변경할 수 있다. 또한 제품 수명 주기를 늘려 출시를 앞당기고 소프트웨어와 하드웨어 기능 모두를 인터넷을 통해 원격으로 업그레이드 할 수 있다.

‘멀티 프로세서’라고 하면‘병렬 처리’에 대한 학문적인 의미가 떠오를 수도 있지만 하나의 디바이스에 여러 CPU가 사용되는 상업용 애플리케이션이 훨씬 더 정확한 의미이다. 새로운설계를 시작할 때 개발자는 특정 성능기준을 충족시켜야 한다. 복수의 소프트 프로세서로 작업을 분산시키면 표준의 수정이나 경쟁사 제품으로 인한 출시 막판의 설계 변경까지 가능할 만큼 유연성이 뛰어날 뿐 아니라 높은 성능 기준에 부합하는 제품을 제조할 수있다.

복수의 소프트 프로세서를 Divideand-Conquer 전략으로 사용하여 전체 시스템 성능을 높이거나 기존 프로세서로부터 작업을 오프로드 할 수 있다. 설계자는 보통 400-800MHz 이

산 프로세서를 사용하여 수많은 디바이스 작업을 수행한다. 복수의 소프트 프로세서를 사용하면 작업을 시간과 파워 요구 사항에 따라 분할하여 처리 용량을 보다 효율적으로 이용할 수 있으며, 전체 성능을 비슷한 수준으로 유지하거나 더 높일 수 있다.하나의 FPGA에 구현할 수 있는 소프트 코어 프로세서의 수를 제한하는 요소는 디바이스 리소스(예: 해당 로직 및 메모리)뿐이다. 예를 들어 고밀도 FPGA에는 수백 개의 소프트 코어 프로세서가 포함될 수 있다. 마찬가지로,16비트 또는 32비트 프로세서, 성능 최적화 프로세서, 로직 영역 최적화 프로세서 등 여러 유형의 소프트 코어 프로세서 구현이 가능하다.

코딩 알고리즘을 관련 작업에 따라 여러 프로세서에 분산시킬 수 있다.즉, 빨리 처리해야 하는 작업은 전용 프로세서에 할당하고 그다지 중요하지 않은 작업은 하나 이상의 다른 CPU에서 공유할 수 있다. 따라서 작업의 논리적인 그룹화가 가능해 성능을 높일 수 있을 뿐 아니라 실행되는 클럭 주파수의 감소로 시스템전원 소비를 줄일수 있다.

FPGA의 임베디드 프로세서

정확한 주변기기,메모리 인터페이스 및 처리 기능을 포함하는 맞춤형 디바이스를 제작한다는 것은 상상조차 하기 어려울 정도로 힘든 일이다. 하지만 ASIC 설계자는 이 일을 수 년 동안 해왔다. 경제성 있는 맞춤형 FPGA 기반 임베디드 프로세서 디바이스를 제조하려는 시도는 온-칩 메모리, 프로그램 가능한 로직 및 기본 성능이 충분한 FPGA가 만들어진 1990년대 후반에 와서야 가능했다. 이제 CPU, 신호 처리 엔진, 주변기기 및 표준 통신 인터페이스를 포함하여 FPGA용으로 특수 설계된 임베디드IP가 전통적인 이산 임베디드 디바이스에 비해 비용과 성능 측면에서 더 나은 솔루션으로 대두되고 있다.

설계자는 반드시 인쇄 회로 기판에 멀티프로세서 시스템을 구축할 경우와 동일한 방법으로 문제를 분할해야 한다(각각을 특정 작업에 할당). 예를 들어 하나의 프로세서는 캐비닛 팬 모니터, 인간-기계 인터페이스 또는 시스템 콘솔 등과 같은 일상적인 시스템 작업을 수행하고 다른 프로세서는 통신,신호 처리, 통계 수집 등 다른 시스템 작업을 수행한다.

복수 프로세서 접근 방법을 이용하면 개별 프로세서를 디바이스 보드에서 FPGA로 이동시켜 디바이스 보드 크기를 줄임으로써 전반적인 디바이스 원가를 낮출 수 있다. 이로 인해 프로

세서들 간 신호 라우팅이 적어 필요한 상호 연결이 줄어들고 적은 클럭 주파수에서 실행되는 저수준 프로세서가 많아져 회로 보드 레이어가 감소한다.또한 많은 시간이 걸리는 코딩 작업으로 인해 전체 시스템 설계 비용의 80%를 차지하는 소프트웨어 설계 비용을 절감할 수 있다. 작업을 여러 프로세서로 분산시킬 수 있다면 엔지니어가 코드를 작성하거나 디버그 및 유지 관리하기가 쉬워진다. 따라서 코드개발과 디버깅 기간이 단축되며, 분석이 훨씬 쉽기 때문에 최종 단계에서 코드 유지 관리가 편리하다.

다채널 애플리케이션

시스템 처리량을 높이기 위해 하나의 칩에 있는 여러 프로세서를 사용하여 다채널 애플리케이션을 확장할 수있다. 각 프로세서는 전체 채널 처리량 중 일부만 처리한다. 각 프로세서는 정확히 같은 코드를 실행할 수도 있고 시스템 요구 사항에 맞추기 위해 즉석에

서 알고리즘을 변경할 수도 있다. 경우에 따라 시스템 초기화, 통계 수집 및 오류 처리와 같은 일반적인 작업을 처리하기 위해 마스터 프로세서가 추가된다.

직렬로 프로세서 연결

여러 프로세서를 직렬로 결합하면 각 프로세서를 대형 처리 파이프라인의 한 단계로 취급할 수 있다. 각 CPU는 전체 처리 작업 중 한 부분을 담당하며 한 단계의 출력에서 얻을 결과를

다음 단계의 입력으로 전달하기 위해 데이터 메모리(오프-칩인 경우 중재 또는 전용 메모리 인터페이스, 온-칩인 경우 이중 포팅 메모리)를 공유할수 있다.(그림 1)

프로세서 컴패니언 칩

또한 CPU가 FPGA 내부에 있는지 여부에 관계 없이, FPGA에 연결된 이산 프로세서와 DSP 칩은 하드웨어 가속, 주변기기 확장, 인터페이스 브리징 등의 이점을 활용할 수 있다. FPGA에 포함된 주변기기, 가속 로직 및 I/O 인터페이스에 외부로부터 액세스하기 위

해 시중에서 쉽게 구할 수 있는 칩-칩 인터페이스 IP를 사용할 수 있다.(그림 2)

 

<자료제공: 월간 반도체네트워크 06년 03월호>

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>