Table of Contents
Fetching ...

Bridging the Gap: Physical PCI Device Integration Into SystemC-TLM Virtual Platforms

Nils Bosbach, Rebecca Pelke, Niko Zurstraßen, Jan Henrik Weinstock, Lukas Jünger, Rainer Leupers

TL;DR

This work addresses the need for high-speed early software development on virtual platforms by enabling integration of real PCIe devices into SystemC-TLM-2.0 VP via vfio and VCML. It introduces a vpci device that bridges a host PCIe card into a SystemC VP, providing memory access, DMA via an IOMMU, and interrupt forwarding, and demonstrates this with Google Coral's Edge TPU attached to an ARM-based VP, achieving up to $480\times$ speedups for AI workloads. The approach reduces the need for virtual device modeling, supports driver development and regression testing across architectures, and enables rich data tracing of vcpu-vpci traffic and IRQ signaling for debugging. The results show that SystemC-based VPs with real PCIe devices can deliver substantial performance gains while preserving portability and determinism, laying a foundation for broader use with other PCIe devices.

Abstract

In today's technology-driven world, early-stage software development and testing are crucial. Virtual Platforms (VPs) have become indispensable tools for this purpose as they serve as a platform to execute and debug the unmodified target software at an early design stage. With the increasing complexity of software, especially in areas like Artificial Intelligence (AI) applications, VPs need to provide high simulation speed to ensure the target software executes within a reasonable time. Hybrid simulation, which combines virtual models with real hardware, can improve the performance of VPs. This paper introduces a novel approach for integrating real Peripheral Component Interconnect (PCI) devices into SystemC-TLM-2.0-based VPs. The embedded PCI devices enable high performance, easy integration, and allow introspection for analysis and optimization. To illustrate the practical application of our approach, we present a case study where we integrate Google Coral's Edge Tensor Processing Unit (TPU) into an ARM-based VP. The integration allows efficient execution of AI workloads, accelerating simulation speeds by up to 480x while eliminating the need for complex virtual device models. Beyond accelerating AI-workload execution, our framework enables driver development, regression testing across architectures, and device communication analysis. Our findings demonstrate that embedding PCI devices into SystemC simulations significantly enhances

Bridging the Gap: Physical PCI Device Integration Into SystemC-TLM Virtual Platforms

TL;DR

This work addresses the need for high-speed early software development on virtual platforms by enabling integration of real PCIe devices into SystemC-TLM-2.0 VP via vfio and VCML. It introduces a vpci device that bridges a host PCIe card into a SystemC VP, providing memory access, DMA via an IOMMU, and interrupt forwarding, and demonstrates this with Google Coral's Edge TPU attached to an ARM-based VP, achieving up to speedups for AI workloads. The approach reduces the need for virtual device modeling, supports driver development and regression testing across architectures, and enables rich data tracing of vcpu-vpci traffic and IRQ signaling for debugging. The results show that SystemC-based VPs with real PCIe devices can deliver substantial performance gains while preserving portability and determinism, laying a foundation for broader use with other PCIe devices.

Abstract

In today's technology-driven world, early-stage software development and testing are crucial. Virtual Platforms (VPs) have become indispensable tools for this purpose as they serve as a platform to execute and debug the unmodified target software at an early design stage. With the increasing complexity of software, especially in areas like Artificial Intelligence (AI) applications, VPs need to provide high simulation speed to ensure the target software executes within a reasonable time. Hybrid simulation, which combines virtual models with real hardware, can improve the performance of VPs. This paper introduces a novel approach for integrating real Peripheral Component Interconnect (PCI) devices into SystemC-TLM-2.0-based VPs. The embedded PCI devices enable high performance, easy integration, and allow introspection for analysis and optimization. To illustrate the practical application of our approach, we present a case study where we integrate Google Coral's Edge Tensor Processing Unit (TPU) into an ARM-based VP. The integration allows efficient execution of AI workloads, accelerating simulation speeds by up to 480x while eliminating the need for complex virtual device models. Beyond accelerating AI-workload execution, our framework enables driver development, regression testing across architectures, and device communication analysis. Our findings demonstrate that embedding PCI devices into SystemC simulations significantly enhances

Paper Structure

This paper contains 14 sections, 8 figures, 2 tables.

Figures (8)

  • Figure 1: Application scenarios of the pci(e) integration.
  • Figure 2: iommu working principle.
  • Figure 3: Memory access implementation.
  • Figure 4: dma access configuration.
  • Figure 5: Interrupt forwarding implementation.
  • ...and 3 more figures