PCIe 연결 FPGA를 위한 VM HDL 공동 시뮬레이션 프레임워크
본 논문은 데이터센터 가속기인 PCIe‑연결 FPGA와 호스트 소프트웨어를 동시에 개발·디버깅할 수 있는 VM‑HDL 공동 시뮬레이션 프레임워크를 제안한다. 가상 머신 안에서 실제 운영체제와 디바이스 드라이버를 실행하고, HDL 시뮬레이터와 연동해 FPGA 설계의 PCIe 엔드포인트를 모델링함으로써 하드웨어 합성 없이도 전체 시스템을 동일하게 재현한다. 이
초록
본 논문은 데이터센터 가속기인 PCIe‑연결 FPGA와 호스트 소프트웨어를 동시에 개발·디버깅할 수 있는 VM‑HDL 공동 시뮬레이션 프레임워크를 제안한다. 가상 머신 안에서 실제 운영체제와 디바이스 드라이버를 실행하고, HDL 시뮬레이터와 연동해 FPGA 설계의 PCIe 엔드포인트를 모델링함으로써 하드웨어 합성 없이도 전체 시스템을 동일하게 재현한다. 이를 통해 디버깅 시간과 반복 주기가 크게 단축된다.
상세 요약
이 프레임워크는 크게 세 계층으로 구성된다. 첫 번째는 QEMU 기반의 가상 머신(VM)으로, 실제 물리 서버와 동일한 운영체제와 드라이버 스택을 구동한다. 여기서는 가상 PCIe 루트 복합체가 구현되어, 가상 디바이스가 PCIe 엔드포인트와 동일한 레지스터 맵과 인터럽트 메커니즘을 제공한다. 두 번째는 HDL 시뮬레이터(예: ModelSim, VCS)에서 동작하는 FPGA 모델이다. 설계자는 기존 FPGA 설계에 PCIe Endpoint IP를 삽입하고, 트랜잭션 레이어(Physical, Data Link, Transaction)까지 정확히 모델링한다. 세 번째는 양쪽을 연결하는 인터페이스로, 공유 메모리 혹은 소켓 기반의 고속 IPC(Inter‑Process Communication)를 이용한다. 이 인터페이스는 DMA 전송, MSI/MSI‑X 인터럽트, BAR 매핑 등을 실시간으로 전달하며, 시뮬레이션 중 발생하는 모든 PCIe TLP(Transaction Layer Packet)를 로깅한다.
핵심 기술적 인사이트는 “하드웨어와 소프트웨어가 동일한 시간축을 공유하도록 설계된 가상 PCIe 버스”에 있다. 기존 방법은 하드웨어 합성 후 물리 보드에 올려 테스트하거나, 소프트웨어만 가상화해 하드웨어 동작을 추정하는 것이 일반적이었다. 그러나 이 프레임워크는 하드웨어 시뮬레이션이 실제 타이밍을 완벽히 재현하지 못하더라도, 프로토콜 수준에서 정확한 동작을 보장한다. 따라서 드라이버가 기대하는 레지스터 읽기/쓰기, 인터럽트 발생, DMA 완료 신호 등을 모두 검증할 수 있다.
또한, 프레임워크는 디버깅 지원을 강화한다. QEMU의 GDB 서버와 HDL 시뮬레이터의 트레이스 기능을 동시에 활용해, 소프트웨어 콜스택과 하드웨어 파형을 동기화된 뷰로 제공한다. 이는 “소프트웨어가 하드웨어를 어떻게 바라보는가”와 “하드웨어가 소프트웨어 요청에 어떻게 응답하는가”를 한눈에 파악하게 해, 전통적인 로그 기반 디버깅보다 훨씬 효율적이다.
성능 측면에서는 시뮬레이션 속도가 실제 PCIe 대역폭(수 GB/s)보다 낮지만, 합성 주기(수 시간~수 일)를 고려하면 디버깅 반복 시간은 10배 이상 단축된다. 또한, 프레임워크는 확장성이 뛰어나, 여러 개의 가상 FPGA 인스턴스를 동시에 연결하거나, 다른 가상화 플랫폼(KVM, VMware)과도 연동 가능하도록 설계되었다.
한계점으로는 PCIe 물리 레이어(PHY) 모델링이 생략돼 전력·신호 무결성 분석이 어려운 점, 그리고 대규모 데이터 전송 시 시뮬레이션 속도가 급격히 저하되는 점을 들 수 있다. 향후 연구에서는 하드웨어 가속(예: FPGA‑in‑the‑loop)과 결합해 시뮬레이션 속도를 개선하고, PHY 모델을 추가해 보다 정밀한 시스템‑레벨 검증을 목표로 한다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...