Efficient virtual memory sharing via on-accelerator page table walking in heterogeneous embedded SoCs
Abstract
Shared virtual memory is key in heterogeneous systems on chip (SoCs) that combine a general-purpose host processor with a many-core accelerator, both for programmability and performance. In contrast to the full-blown, hardware-only solutions predominant in modern high-end systems, lightweight hardware-software co-designs are better suited in the context of more power- and area-constrained embedded systems and provide additional benefits in terms of flexibility and predictability. As a downside, the latter solutions require the host to handle in software synchronization in case of page misses as well as miss handling. This may incur considerable run-time overheads. In this work, we present a novel hardware-software virtual memory management approach for many-core accelerators in heterogeneous embedded SoCs. It exploits an accelerator-side helper thread concept that enables the accelerator to manage its virtual memory hardware autonomously while operating cache-coherently on the page tables of the user-space processes of the host. This greatly reduces overhead with respect to host-side solutions while retaining flexibility. We have validated the design with a set of parameterizable benchmarks and real-world applications covering various application domains. For purely memory-bound kernels, the accelerator performance improves by a factor of 3.8 compared with host-based management and lies within 50% of a lower-bound ideal memory management unit. Mehr anzeigen
Persistenter Link
https://doi.org/10.3929/ethz-b-000219850Publikationsstatus
publishedExterne Links
Herausgeber(in)
Zeitschrift / Serie
ACM Transactions on Embedded Computing SystemsBand
Seiten / Artikelnummer
Verlag
Association for Computing MachineryKonferenz
Thema
CCS concepts; Software and its engineering; Virtual memory; Main Memory; Computer systems organization; Heterogeneous (hybrid) systems; System on a chip; Embedded software; TLB management; heterogeneous SoCs; embedded systems; Shared Virtual Memory; LinuxOrganisationseinheit
03996 - Benini, Luca / Benini, Luca