Skip to main content
Log in

Virtualized Execution and Management of Hardware Tasks on a Hybrid ARM-FPGA Platform

  • Published:
Journal of Signal Processing Systems Aims and scope Submit manuscript

Abstract

Emerging hybrid reconfigurable platforms tightly couple capable processors with high performance reconfigurable fabrics. This promises to move the focus of reconfigurable computing systems from static accelerators to a more software oriented view, where reconfiguration is a key enabler for exploiting the available resources. This requires a revised look at how to manage the execution of such hardware tasks within a processor-based system, and in doing so, how to virtualize the resources to ensure isolation and predictability. This view is further supported by trends towards amalgamation of computation in the automotive and avionics domains, where such properties are essential to overall system reliability. We present the virtualized execution and management of software and hardware tasks using a microkernel-based hypervisor running on a commercial hybrid computing platform (the Xilinx Zynq). The CODEZERO hypervisor has been modified to leverage the capabilities of the FPGA fabric, with support for discrete hardware accelerators, dynamically reconfigurable regions, and regions of virtual fabric. We characterise the communication overheads in such a hybrid system to motivate the importance of lean management, before quantifying the context switch overhead of the hypervisor approach. We then compare the resulting idle time for a standard Linux implementation and the proposed hypervisor method, showing two orders of magnitude improved performance with the hypervisor.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14

Similar content being viewed by others

References

  1. Codezero project overview. http://dev.b-labs.com/.

  2. Adams, K. (2006). A comparison of software and hardware techniques for x86 virtualization. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems.

  3. Adler, M., Fleming, K.E., Parashar, A., Pellauer, M., Emer, J. (2011). Leap scratchpads: automatic memory and cache management for reconfigurable logic. In Proceedings of International Symposium on Field Programmable Gate Arrays (FPGA) (pp. 25–28).

  4. Brebner, G. (1996). A virtual hardware operating system for the Xilinx XC6200. In Proceedings of International Workshop on Field-Programmable Logic and Applications (FPL) (pp. 327–336).

  5. Callahan, T., Hauser, J., Wawrzynek, J. (2000). The Garp architecture and C compiler. Computer, 33(4), 62–69.

    Article  Google Scholar 

  6. Chakraborty, S., Lukasiewycz, M., Buckl, C., Fahmy, S.A., Chang, N., Park, S., Kim, Y., Leteinturier, P., Adlkofer, H. (2012). Embedded systems and software challenges in electric vehicles. In Proceedings of the Design, Automation and Test in Europe Conference (DATE) (pp. 424–429).

  7. Cheah, H.Y., Fahmy, S.A., Maskell, D.L. (2012). iDEA: A DSP block based FPGA soft processor. In Proceedings of International Conference on Field Programmable Technology (FPT) (pp. 151–158).

  8. Chung, E.S., Hoe, J.C., Mai, K. (2011). CoRAM: an in-fabric memory architecture for FPGA-based computing. In Proceedings of International Symposium on Field Programmable Gate Arrays (FPGA) (pp. 97–106).

  9. Compton, K., & Hauck, S. (2002). Reconfigurable computing: a survey of systems and software. ACM Computing Survey, 34(2), 171–210.

    Article  Google Scholar 

  10. David, F.M., Carlyle, J.C., Campbell, R.H. (2007). Context switch overheads for Linux on ARM platforms. In Proceedings of Workshop on Experimental Computer Science (p. 3).

  11. DeHon, A. (1996). DPGA utilization and application. In Proceedings of International Symposium on Field Programmable Gate Arrays (FPGA) (pp. 115–121).

  12. DeHon, A., Markovsky, Y., Caspi, E., Chu, M., Huang, R., Perissakis, S., Pozzi, L., Yeh, J., Wawrzynek, J. (2006). Stream computations organized for reconfigurable execution. Microprocessors and Microsystems, 30(6), 334–354.

    Article  Google Scholar 

  13. Gohringer, D., Werner, S., Hubner, M., Becker, J. (2011). RAMPSoCVM: runtime support and hardware virtualization for a runtime adaptive MPSoC. In Proceedings of International Conference on Field Programmable Logic and Applications (FPL) (pp. 181–184).

  14. Gonzalez, I., & Lopez-Buedo, S. (2012). Virtualization of reconfigurable coprocessors in HPRC systems with multicore architecture. Journal of Systems Architecture, 58(6), 247–256.

    Article  Google Scholar 

  15. Heiser, G., & Leslie, B. (2010). The OKL4 microvisor: convergence point of microkernels and hypervisors. In Proceedings of ACM Asia Pacific Workshop on Systems (pp. 19–24).

  16. Heiser, G., Uhlig, V., LeVasseur, J. (2006). Are virtual-machine monitors microkernels done rightACM SIGOPS Operating Systems Review, 40(1), 95–99.

    Article  Google Scholar 

  17. Hubner, M., Figuli, P., Girardey, R., Soudris, D., Siozios, K., Becker, J. (2011). A heterogeneous multicore system on chip with run-time reconfigurable virtual FPGA architecture. In IEEE International Symposium on Parallel and Distributed Processing Workshops (IPDPSW) (pp. 143–149).

  18. Hubner, M., Gohringer, D., Noguera, J., Becker, J. (2010). Fast dynamic and partial reconfiguration data path with low hardware overhead on Xilinx FPGAs. In Parallel and Distributed Processing Workshops (IPDPSW) (pp. 1–8).

  19. Jozwik, K., Tomiyama, H., Honda, S., Takada, H. (2010). A novel mechanism for effective hardware task preemption in dynamically reconfigurable systems. In Proceedings of International Conference on Field Programmable Logic and Applications (FPL) (pp. 352–355).

  20. Kaiser, R., & Wagner, S. (2007). Evolution of the PikeOS microkernel. In Proceedings of International Workshop on Microkernels for Embedded Systems (p. 50).

  21. Kalte, H., & Porrmann, M. (2005). Context saving and restoring for multitasking in reconfigurable systems. In Proceedings of International Conference on Field Programmable Logic and Applications (FPL) (pp. 223–228).

  22. Kapre, N., Mehta, N., deLorimier, M., Rubin, R., Barnor, H., Wilson, M., Wrighton, M., DeHon, A. (2006). Packet switched vs. time multiplexed FPGA overlay networks. In IEEE International Symposium on Field-Programmable Custom Computing Machines (FCCM) (pp. 205–216).

  23. Kirchgessner, R., Stitt, G., George, A., Lam, H. (2012). VirtualRC: a virtual FPGA platform for applications and tools portability. In Proceedings of International Symposium on Field Programmable Gate Arrays (FPGA) (pp. 205–208).

  24. Kosciuszkiewicz, K., Morgan, F., Kepa, K. (2007). Run-time management of reconfigurable hardware tasks using embedded linux. In Proceedings of International Conference on Field Programmable Technology (FPT) (pp. 209–215).

  25. Lavin, C., Padilla, M., Lamprecht, J., Lundrigan, P., Nelson, B., Hutchings, B. (2011). HMFlow: accelerating FPGA compilation with hard macros for rapid prototyping. In IEEE International Symposium on Field-Programmable Custom Computing Machines (FCCM).

  26. Liang, Y., Rupnow, K., Li, Y., et al. (2012). High-level synthesis: productivity, performance, and software constraints. Journal of Electrical and Computer Engineering, 2012(1), 1–14.

    Article  Google Scholar 

  27. Liedtke, J. (1995). On micro-kernel construction. In Proceedings of the ACM Symposium on Operating Systems Principles (pp. 237–250).

  28. Lübbers, E., & Platzner, M. (2009). ReconOS: multithreaded programming for reconfigurable computers. ACM Transactions on Embedded Computing Systems, 9(1), 8.

  29. Mishra, M., & Goldstein, S. (2007). Virtualization on the tartan reconfigurable architecture. In Proceedings of International Conference on Field Programmable Logic and Applications (FPL) (pp. 323–330).

  30. Pham, K.D., Jain, A., Cui, J., Fahmy, S., Maskell, D. (2013). Microkernel hypervisor for a hybrid ARM-FPGA platform. In International Conference on Application-Specific Systems, Architectures and Processors (ASAP) (pp. 219–226).

  31. Plessl, C., & Platzner, M. (2005). Zippy - a coarse-grained reconfigurable array with support for hardware virtualization. In IEEE International Conference on Application-Specific Systems, Architecture Processors (ASAP) (pp. 213–218).

  32. Rupnow, K. (2009). Operating system management of reconfigurable hardware computing systems. In Proceedings of International Conference on Field-Programmable Technology (FPT) (pp. 477–478).

  33. Rupnow, K., Fu, W., Compton, K. (2009). Block, drop or roll(back): Alternative preemption methods for RH multi-tasking. In IEEE Symposium on Field Programmable Custom Computing Machines (pp. 63–70).

  34. Shreejith, S., Fahmy, S.A., Lukasiewycz, M. (2013). Reconfigurable computing in next-generation automotive networks. IEEE Embedded Systems Letters, 5(1), 12–15.

    Article  Google Scholar 

  35. Shukla, S., Bergmann, N.W., Becker, J. (2006). QUKU: a coarse grained paradigm for FPGA. In Proceedings of Dagstuhl Seminar.

  36. So, H., Tkachenko, A., Brodersen, R. (2006). A unified hardware/software runtime environment for FPGA-based reconfigurable computers using BORPH. In Hardware/Software Codesign and System Synthesis (CODES+ISSS) (pp. 259–264).

  37. Steiger, C., Walder, H., Platzner, M. (2004). Operating systems for reconfigurable embedded platforms: online scheduling of real-time tasks. IEEE Transactions on Computers, 53(11), 1393–1407.

    Article  Google Scholar 

  38. Stitt, G., & Coole, J. (2011). Intermediate fabrics: Virtual architectures for near-instant FPGA compilation. IEEE Embedded Systems Letters, 3(3), 81–84.

    Article  Google Scholar 

  39. Thomas, D., Coutinho, J., Luk, W. (2009). Reconfigurable computing: Productivity and performance. In Asilomar Conference on Signals, Systems and Computers (pp. 685–689).

  40. Trimberger, S., Carberry, D., Johnson, A., Wong, J. (1997). A time-multiplexed FPGA. In IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM) (pp. 22–28).

  41. Vahid, F., Stitt, G., Lysecky, R. (2008). Warp processing: Dynamic translation of binaries to FPGA circuits. Computer, 41(7), 40–46.

    Article  Google Scholar 

  42. Vipin, K., & Fahmy, S.A. (2012). Architecture-aware reconfiguration-centric floorplanning for partial reconfiguration. In Proceedings of International Symposium on Applied Reconfigurable Computing (ARC) (pp. 13—25).

  43. Vipin, K., & Fahmy, S.A. (2012). A high speed open source controller for FPGA partial reconfiguration. In Proceedings of International Conference on Field Programmable Technology (FPT) (pp. 61–66).

  44. Vipin, K., & Fahmy, S.A. (2013). Automated partitioning for partial reconfiguration design of adaptive systems. In Proceedings of IEEE International Symposium on Parallel and Distributed Processing Workshops (IPDPSW) – Reconfigurable Architectures Workshop (RAW).

  45. Vuletic, M., Righetti, L., Pozzi, L., Ienne, P. (2004). Operating system support for interface virtualisation of reconfigurable coprocessors. In Design, Automation and Test in Europe (DATE) (pp. 748–749).

  46. Wang, W., Bolic, M., Parri, J. (2013). pvFPGA: accessing an FPGA-based hardware accelerator in a paravirtualized environment. In Proceedings of International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS) (pp. 1–9).

  47. Ye, Z., Moshovos, A., Hauck, S., Banerjee, P. (2000). CHIMAERA: a high-performance architecture with a tightly-coupled reconfigurable functional unit. In Proceedings of International Symposium on Computer Architecture (ISCA) (pp. 225–235).

Download references

Acknowledgments

This work was partially supported by the Singapore National Research Foundation under its Campus for Research Excellence And Technological Enterprise (CREATE) programme.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Abhishek Kumar Jain.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Jain, A.K., Pham, K.D., Cui, J. et al. Virtualized Execution and Management of Hardware Tasks on a Hybrid ARM-FPGA Platform. J Sign Process Syst 77, 61–76 (2014). https://doi.org/10.1007/s11265-014-0884-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11265-014-0884-1

Keywords

Navigation