Virtual memory window for application-specific reconfigurable coprocessors

  • Authors:
  • Miljan Vuletić;Laura Pozzi;Paolo Ienne

  • Affiliations:
  • Ecole Polytechnique Fédérale de Lausanne, School of Computer and Communication Sciences, Lausanne, Switzerland;Faculty of Informatics, University of Lugano, Lugano, Switzerland and Ecole Polytechnique Fédérale de Lausanne, School of Computer and Communication Sciences, Lausanne, Switzerland;Ecole Polytechnique Fédérale de Lausanne, School of Computer and Communication Sciences, Lausanne, Switzerland

  • Venue:
  • IEEE Transactions on Very Large Scale Integration (VLSI) Systems
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The complexity of hardware/software (HW/SW) interfacing and the lack of portability across different platforms, restrain the widespread use of reconfigurable accelerators and limit the designer productivity. Furthermore, communication between SW and HW parts of codesigned applications are typically exposed to SW programmers and HWdesigners. In this work, we introduce a virtualization layer that allows reconfigurable application-specific coprocessors to access the user-space virtual memory and share the memory address space with user applications. The layer, consisting of an operating system (OS) extension and a HW component, shifts the burden of moving data between processor and coprocessor from the programmer to the OS, lowers the complexity of interfacing, and hides physical details of the system. Not only does the virtualization layer enhance programming abstraction and portability, but it also performs runtime optimizations: by predicting future memory accesses and speculatively prefetching data, the virtualization layer improves the coprocessor execution--applications achieve better performance without any user intervention. We use two different reconfigurable system-on-chip (SoC) running Linux and codesigned applications to prove the viability of our concept. The applications run faster than their SW versions, and the overhead due to the virtualisation is limited. Dynamic prefetching in the virtualisation layer further reduces the abstraction overhead.