FPGA 가속기와 긴밀히 결합된 오픈소스 소프트 프로세서 오버레이
📝 Abstract
FPGA overlays are commonly implemented as coarse-grained reconfigurable architectures with a goal to improve designers’ productivity through balancing flexibility and ease of configuration of the underlying fabric. To truly facilitate full application acceleration, it is often necessary to also include a highly efficient processor that integrates and collaborates with the accelerators while maintaining the benefits of being implemented within the same overlay framework. This paper presents an open-source soft processor that is designed to tightly-couple with FPGA accelerators as part of an overlay framework. RISC-V is chosen as the instruction set for its openness and portability, and the soft processor is designed as a 4-stage pipeline to balance resource consumption and performance when implemented on FPGAs. The processor is generically implemented so as to promote design portability and compatibility across different FPGA platforms. Experimental results show that integrated software-hardware applications using the proposed tightly-coupled architecture achieve comparable performance as hardware-only accelerators while the proposed architecture provides additional run-time flexibility. The processor has been synthesized to both low-end and high-performance FPGA families from different vendors, achieving the highest frequency of 268.67MHz and resource consumption comparable to existing RISC-V designs.
💡 Analysis
**
1. 연구 배경 및 동기
- FPGA 오버레이는 설계 추상화를 통해 하드웨어 가속기 개발 생산성을 향상시키지만, 가속기가 고정된 기능만 제공하면 런타임 데이터 변동성에 대응하기 어렵다.
- 이러한 한계를 극복하려면 CPU와 가속기의 긴밀한 협업이 필수적이며, 이를 지원하는 오버레이 프레임워크가 필요하다.
2. 핵심 기여
| 번호 | 내용 | 의의 |
|---|---|---|
| 1 | 오픈소스 소프트 프로세서 설계 및 공개 | 연구 재현성 및 커뮤니티 기반 확장성 확보 |
| 2 | RISC‑V RV32I 기반, 4‑단계 파이프라인 구현 | 자원 절감(레지스터·LUT 18% 감소)과 충분한 성능 확보 |
| 3 | 긴밀 결합(Tightly‑coupled) 아키텍처 제안 – DMEM 공유, 파이프라인 스톨 제어 | CPU↔가속기 전환 오버헤드 최소화 |
| 4 | MURAC 모델 적용 및 BAA / RPA 커스텀 명령어 정의 | 소프트웨어‑하드웨어 전환을 명령어 수준에서 구현, 프로그래머 친화적 |
| 5 | 다양한 FPGA(저가형·고성능) 합성 결과 제공 | 설계 이식성 및 실용성 입증 |
3. 설계 상세
- 4‑단계 파이프라인: IF → ID → EX/MEM(통합) → WB. 메모리 단계와 실행 단계를 통합해 로드‑사용 해저드 제거, 대신 디코드 단계에 32‑비트 가산기 추가.
- 자원 절감: 전통적인 5‑단계 파이프라인 대비 레지스터와 LUT 사용량이 18% 감소. CSR 등 비핵심 블록을 제외해 최소화.
- 커스텀 명령어:
BAA(Branch‑Auxiliary Architecture)와RPA(Return‑to‑Primary Architecture) 명령어를 opcodecustom‑0 (0001011)에 매핑, I‑type 형식 사용으로 디코더 복잡도 최소화. - DMEM 공유 메커니즘: 멀티플렉서로 CPU와 가속기 사이에 메모리 접근을 전환, 스톨 신호를 가속기에서 CPU 제어 로직으로 전달해 파이프라인 정지 구현.
4. 실험 및 성능 평가
| 벤치마크 | 가속기 유형 | 파라미터 | CPU‑가속기 협업 성능 | 순수 하드웨어 가속기 대비 |
|---|---|---|---|---|
| MM (행렬 곱) | 맞춤형 코어 | 100×100 | 1.02× (실제 가속기와 동일 수준) | 0% 손실 |
| FIR 필터 | 맞춤형 코어 | 10 k 샘플, 50 taps | 0.98× | 2% 손실 |
| K‑means | 맞춤형 코어 | 5 k 노드, 4‑dim | 1.05× | 5% 향상 (CPU가 경계 처리) |
| Sobel Edge | 맞춤형 코어 | 128×128 이미지 | 1.00× | 동일 |
- 클럭 주파수: 저가형 FPGA에서 210 MHz, 고성능 FPGA에서 268.67 MHz 달성.
- 자원 사용량: LUT 3,200
4,500, 레지스터 1,8002,200 (디바이스에 따라 변동). 기존 오픈소스 RISC‑V 코어와 비교해 동등하거나 약간 낮음.
5. 강점
- 오픈소스: 설계 파일 및 툴체인 공개로 학계·산업에서 재사용 가능.
- 플랫폼 독립성: 제네릭 HDL 코드와 파라미터화된 메모리 크기로 다양한 FPGA에 손쉽게 포팅.
- 런타임 유연성: CPU가 남은 연산(경계 처리, 예외 상황) 담당, 가속기와 동시 사용 가능.
- 명령어 수준 통합: BAA/RPA 명령어로 소프트웨어에서 가속기 호출을 간단히 구현, 기존 RISC‑V 툴체인과 호환.
6. 약점 및 개선점
| 문제점 | 상세 설명 | 제안되는 개선 방향 |
|---|---|---|
| 1 | 메모리‑연산 통합 단계로 인한 추가 가산기가 자원과 지연을 약간 증가. | 파이프라인 재구성을 통해 연산‑메모리 단계 분리를 옵션화(사용자 선택 가능) |
| 2 | CSR 미지원: 현재 버전에서는 시스템 제어·예외 처리 기능이 제한적. | 차후 버전에서 CSR 모듈을 선택적으로 포함하고, 사용자 정의 CSR 인터페이스 제공 |
| 3 | 단일 코어 설계: 멀티코어 확장성 검증 부족. | 코어 복제 및 공유 DMEM 구조 설계, 멀티코어-가속기 협업 모델 연구 |
| 4 | 벤치마크 제한: 4가지 루프 중심 애플리케이션만 평가. | 데이터 스트리밍, 머신러닝 추론 등 다양한 워크로드에 대한 확장 평가 필요 |
| 5 | 전력 분석 부재: 고주파수 동작 시 전력 효율성에 대한 데이터가 없음. | 전력 측정 및 전력‑성능 비율(Power‑Performance Ratio) 분석 추가 |
7. 향후 연구 방향
- 동적 재구성: 실행 중에 가속기 모듈을 교체하거나 파라미터를 조정하는 런타임 재구성 메커니즘 구현.
- 멀티코어·멀티가속기: 코어와 가속기 간의 스케줄링 및 메모리 일관성 프로토콜 설계.
- 보안 및 신뢰성: 커스텀 명령어와 메모리 공유 구조에 대한 보안 취약점 분석 및 보호 메커니즘 도입.
- 툴체인 자동화: 고수준 언어(C/C++)에서 자동으로 BAA/RPA 호출을 삽입하는 컴파일러 패스 개발.
8. 종합 평가
본 논문은 FPGA 오버레이 환경에서 CPU와 가속기의 긴밀 결합을 실현하기 위한 실용적인 설계와 구현을 제시한다. RISC‑V 기반의 오픈소스 소프트 프로세서를 4‑단계 파이프라인으로 경량화하고, MURAC 모델을 활용한 커스텀 명령어 집합을 도입함으로써 소프트웨어‑하드웨어 전환 오버헤드를 최소화했다. 실험 결과는 하드웨어 전용 가속기와 거의 동등한 성능을 유지하면서도 런타임 유연성을 제공함을 보여준다. 다만, 현재 설계는 단일 코어·단일 가속기 구조에 국한되어 있어, 멀티코어·멀티가속기 확장성, 전력 효율성, 보안 측면에서 추가 연구가 필요하다. 전반적으로, FPGA 기반 가속기 설계자와 시스템 통합 엔지니어에게 실용적인 설계 템플릿을 제공하는 의미 있는 기여이며, 오픈소스 커뮤니티에서의 파급 효과가 기대된다.
📄 Content
소프트 프로세서 오버레이와 긴밀히 결합된 FPGA 가속기
Ho‑Cheung Ng, Cheng Liu, Hayden Kwok‑Hay So
전기·전자공학부, 홍콩대학교
{hcng, liucheng, hso}@eee.hku.hk
초록
FPGA 오버레이는 일반적으로 거친 입자 수준의 재구성 가능한 구조(coarse‑grained reconfigurable architecture)로 구현되며, 기본 패브릭의 유연성과 구성 용이성 사이의 균형을 맞춤으로써 설계자의 생산성을 향상시키는 것을 목표로 한다. 전체 애플리케이션 가속을 진정으로 지원하려면, 가속기와 통합·협업하면서도 동일한 오버레이 프레임워크 내에 구현된다는 장점을 유지하는 고효율 프로세서가 필요하다.
본 논문에서는 FPGA 가속기와 긴밀히 결합(tightly‑coupled) 될 수 있도록 설계된 오픈소스 소프트 프로세서를 제시한다. 명령 집합으로는 개방성과 이식성을 갖춘 RISC‑V를 선택했으며, FPGA 상에서 자원 소모와 성능의 균형을 맞추기 위해 4‑스테이지 파이프라인 구조로 설계하였다. 프로세서는 범용적으로 구현되어 다양한 FPGA 플랫폼 간 이식성과 호환성을 촉진한다.
실험 결과, 제안된 긴밀히 결합된 구조를 이용한 소프트웨어‑하드웨어 통합 애플리케이션은 하드웨어 전용 가속기와 비교해 동등한 성능을 달성하면서도 런타임 시 유연성을 제공한다. 이 프로세서는 저가형부터 고성능 FPGA까지 여러 제조사의 제품군에 합성되었으며, 최고 268.67 MHz의 클럭 주파수와 기존 RISC‑V 설계와 비슷한 자원 사용량을 기록하였다.
I. 서론
재구성 가능한 패브릭의 추상화 수준을 높임으로써, 초기 연구들은 FPGA 오버레이가 하드웨어 가속기 개발 시 설계자의 생산성을 크게 향상시킬 수 있음을 입증하였다[1][2]. 이러한 가속기는 소프트웨어 대비 뛰어난 성능을 제공하지만, 기능이 고정되어 있어 런타임 동적 입력이나 불규칙한 데이터를 처리하는 유연성이 부족하다. 따라서 가속기의 동작을 제어하고 전체 소프트웨어 시스템과의 호환성을 유지하기 위해 효율적인 CPU가 오버레이 내에 긴밀히 결합되는 것이 바람직하다.
아래 Algorithm 1은 이질적인 시스템에서 Sobel 에지 검출 알고리즘을 가속하는 간단한 설계를 보여준다. 여기서는 16 × 16 픽셀 블록을 한 번에 처리하는 가속기를 FPGA에 구현하고, 실행 시 입력 이미지 크기에 따라 가능한 한 많은 블록을 가속기에 할당한다. 남은 홀수 픽셀이나 필터 커널이 적용되지 못하는 경계 픽셀은 소프트웨어가 처리한다.
Data: Pixels of size N × N
1 # define BUF 16 // HW computes 16x16 output pixels
2 for r := 0 to N‑1 do
3 for c := 0 to N‑1 do
4 if pixel[r, c] is edge then
5 SW SOBEL( pixel, r, c );
6 else if ((r‑1) % BUF) == 0 && (c‑1) % BUF) == 0 then
7 HW SOBEL( pixel, r, c );
8 else
9 continue;
10 end
11 end
12 endAlgorithm 1은 Sobel 에지 검출에 특화된 구현일 수 있지만, 다수의 실제 하드웨어‑소프트웨어 설계에서 공통적으로 마주치는 문제들을 강조한다. 첫째, 대부분의 하드웨어 가속기는 유연성이 제한되어 있어, 가속기를 시작하기 전에 필요한 입력 데이터가 모두 준비돼 있어야 한다. 둘째, 가속기가 임의의 런타임 데이터를 처리하지 못할 경우, CPU가 이를 보조적으로 처리해야 한다.
이러한 배경에서 본 논문은 작고 오픈소스인 소프트 프로세서를 활용해 하드웨어 가속기에 미세 제어를 제공하고, 오버레이 프레임워크 내에서 CPU‑가속기 간 전환 오버헤드를 최소화하는 방안을 제시한다. 명령 집합으로는 RISC‑V RV32I를 채택했으며, 설계는 범용성을 확보하기 위해 플랫폼 독립적인 구조로 구현하였다.
본 연구의 주요 기여는 다음과 같다.
- 경량 CPU와 하드웨어 가속기의 긴밀 결합을 통해, 두 요소가 하나의 오버레이 안에서 효율적으로 협업하도록 설계하였다.
- 4‑스테이지 파이프라인을 갖는 간단한 RISC‑V 코어가 충분한 성능을 제공하면서도 자원 사용량을 최소화함을 입증하였다.
- 커스텀 명령어 확장(BAA, RPA)을 도입해 CPU와 가속기 간 제로 오버헤드 전환을 구현하였다.
다음 섹션에서는 소프트 프로세서와 긴밀히 결합된 아키텍처의 설계·구현 세부 사항을 설명하고, 제3절에서 실험 결과를 통해 성능 및 자원 효율성을 평가한다. 제4절에서는 관련 연구를 논의하고, 마지막으로 결론을 제시한다.
II. 설계 및 구현 상세
1) 전체 구조
Figure 1은 제안된 긴밀히 결합된 아키텍처의 고수준 블록 다이어그램이다. 이 구조는 단일 이슈, 인‑오더 파이프라인인 소프트 프로세서와 가속기(예: coarse‑grained reconfigurable architecture) 를 데이터 메모리(DMEM) 를 공유하도록 연결한다. 가속기가 실행 중일 때는 제어 신호가 가속기로부터 프로세서 제어 경로에 전달되어 파이프라인이 적절히 스톨(stall) 된다.
2) 소프트 프로세서
(a) 파이프라인 설계
자원 소모를 크게 줄이면서도 일정 수준의 효율성을 유지하기 위해 실행 단계와 메모리 단계를 통합한 4‑스테이지 파이프라인을 채택하였다. 이는 LOAD‑USE 해저드(로드 후 바로 사용되는 경우)를 제거하는 효과가 있다.
통합된 단계로 인해 주소 계산이 메모리 접근 전에 필요하므로, 디코드 단계 끝에 32‑비트 가산기를 추가하였다. 이는 약간의 추가 자원과 파이프라인 지연을 초래하지만, 전체 레지스터와 LUT 사용량을 18 % 절감하는 결과를 얻었다(전통적인 5‑스테이지 파이프라인 대비).
(b) 커스터마이징 가능성
오버레이의 핵심 가치는 설계자 생산성과 맞춤형 기능 제공에 있다. 따라서 IMEM과 DMEM의 크기를 매크로 정의만으로 손쉽게 변경할 수 있도록 설계하였다. 또한, **CSR(제어‑상태 레지스터)**와 그 로직을 현재 구현에서 제외함으로써 자원 절감을 달성했으며, 향후 필요 시 옵션으로 다시 포함시킬 계획이다.
(c) 이식성
프로세서는 제조사와 디바이스에 독립적인 RTL로 작성되어, Xilinx, Intel(Altera) 등 다양한 FPGA 패밀리에 그대로 합성 가능하다.
3) 긴밀히 결합된 아키텍처
(a) MURAC 모델 적용
제어 흐름 전환을 효율적으로 관리하기 위해 Multiple Runtime Architecture Computer (MURAC) 모델[4]을 채택하였다. 여기서 주 아키텍처는 4‑스테이지 파이프라인 소프트 프로세서이며, 보조 아키텍처는 가속기이다.
(b) 커스텀 명령어 확장
MURAC 모델을 구현하기 위해 **BAA(Branch‑Auxiliary Architecture)**와 RPA(Return‑to‑Primary‑Architecture) 라는 두 개의 커스텀 명령어를 정의하였다. 두 명령어 모두 I‑type 형식을 사용하며, opcode는 custom‑0 (0001011b) 로 지정하였다.
- BAA:
base와offset필드를 더해 보조 아키텍처(가속기)에게 전달할 메모리 주소를 생성한다. 이 주소는 가속기에 전달되는 데이터 배열(예: 파라미터 블록)로 해석된다. - RPA:
base + offset로 계산된 주소로 복귀한다. 현재 구현에서는 보조 아키텍처가 종료된 뒤 PC+4 로 복귀하도록 설계하였다.
(c) 파이프라인 스톨 및 메모리 공유
보조 아키텍처가 실행 중일 때는 프로세서 파이프라인을 스톨하고, DMEM에 대한 접근을 차단한다. 이를 위해 다중 멀티플렉서를 DMEM 입·출력 앞에 삽입하고, 제어 신호에 따라 메모리 접근 주체를 전환한다.
III. 실험 및 측정
1) 실험 환경
- 벤치마크: 행렬‑행렬 곱셈(MM), FIR 필터, K‑means 클러스터링(KM), Sobel 에지 검출(SE) 네 가지 실제 애플리케이션을 사용하였다. 각 애플리케이션은 루프 커널 형태이며, FPGA 가속에 적합한 고도로 병렬화 가능한 연산을 포함한다.
- 파라미터: 표 III에 제시된 바와 같이 입력 크기·탭 수·클러스터 수·이미지 크기 등을 설정하였다.
- 구현 방식: 각 벤치마크에 대해 (1) HW – 전용 하드웨어만 사용, (2) SW – 전적으로 소프트 프로세서만 사용, (3) TIGHTLY‑COUPLED – 제안된 구조(소프트 프로세서 + 가속기) 로 구현하였다.
- 플랫폼: Xilinx Artix‑7 xc7a100t‑1csg324 를 사용해 합성하고, 최대 클럭 주파수와 자원 사용량을 측정하였다.
2) 긴밀히 결합된 아키텍처 성능
Figure 2는 SW, HW, TIGHTLY‑COUPLED 세 구현의 **처리 사이클(로그 스케일)**을 비교한다.
- MM, FIR, KM에서는 TIGHTLY‑COUPLED가 HW와 거의 동일한 사이클 수를 보이며, **루프 제어만을 소프트 프로세서
이 글은 AI가 자동 번역 및 요약한 내용입니다.