skip to main content
research-article

BlueIO: A Scalable Real-Time Hardware I/O Virtualization System for Many-core Embedded Systems

Authors Info & Claims
Published:09 April 2019Publication History
Skip Abstract Section

Abstract

In safety-critical systems, time predictability is vital. This extends to I/O operations that require predictability, timing-accuracy, parallel access, scalability, and isolation. Currently, existing approaches cannot achieve all these requirements at the same time. In this article, we propose a framework of hardware framework for real-time I/O virtualization—termed BlueIO—to meet all these requirements simultaneously.

BlueIO integrates the functionalities of I/O virtualization, low-layer I/O drivers, and a clock cycle level timing-accurate I/O controller (using the GPIOCP [36]). BlueIO provides this functionality in the hardware layer, supporting abstract virtualized access to I/O from the software domain. The hardware implementation includes I/O virtualization and I/O drivers, provides isolation and parallel (concurrent) access to I/O operations, and improves I/O performance. Furthermore, the approach includes the previously proposed GPIOCP to guarantee that I/O operations will occur at a specific clock cycle (i.e., be timing-accurate and predictable).

In this article, we present a hardware consumption analysis of BlueIO to show that it linearly scales with the number of CPUs and I/O devices, which is evidenced by our implementation in VLSI and FPGA. We also describe the design and implementation of BlueIO and demonstrate how a BlueIO-based system can be exploited to meet real-time requirements with significant improvements in I/O performance and a low running cost on different OSs.

References

  1. 2015. Bluespec Inc. Bluespec System Verilog (BSV). Retrieved from http://www.bluespec.com/products/.Google ScholarGoogle Scholar
  2. 2015. RTEMS Official Website. Retrieved from https://www.rtems.org/.Google ScholarGoogle Scholar
  3. 2015. uCos Official Website. Retrieved from https://www.micrium.com/rtos/kernels/.Google ScholarGoogle Scholar
  4. 2015. Xilinx Official Website. Retrieved from https://www.Xilinx.com.Google ScholarGoogle Scholar
  5. 2016. Retrieved from https://github.com/RTSYork/GPIOCP/.Google ScholarGoogle Scholar
  6. 2016. Encounter RTL Compiler. Retrieved from https://www.cadence.com/content/cadence-www/global/en_US/home/training/all-courses/84441.html.Google ScholarGoogle Scholar
  7. 2016. Encounter RTL Compiler. Retrieved from https://vlsiarch.ecen.okstate.edu/flows/.Google ScholarGoogle Scholar
  8. 2016. FreeRTOS official website. Retrieved from http://www.freertos.org/.Google ScholarGoogle Scholar
  9. 2016. Freescale Official Website. Retrieved from http://www.nxp.com/.Google ScholarGoogle Scholar
  10. 2016. KVM Official Website. Retrievedfrom https://www.linux-kvm.org/page/Main_Page.Google ScholarGoogle Scholar
  11. 2016. Microblaze User Manual. Retrieved from http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/mb_ref_guide.pdf.Google ScholarGoogle Scholar
  12. 2016. SR-IOV Official Website. Retrieved from http://pcisig.com/.Google ScholarGoogle Scholar
  13. 2016. Tilera Official Website. Retrieved from http://www.tilera.com/.Google ScholarGoogle Scholar
  14. 2016. VC709 Official Website. Retrieved from https://www.xilinx.com/products/boards-and-kits/dk-v7-vc709-g.htmlGoogle ScholarGoogle Scholar
  15. 2016. VirtualBox Official Website. Retrieved from https://www.virtualbox.org/.Google ScholarGoogle Scholar
  16. 2016. VMware Official Website. Retrieved from https://www.vmware.com/.Google ScholarGoogle Scholar
  17. 2016. VxWorks Official Website. Retrieved from http://windriver.com/products/vxworks/.Google ScholarGoogle Scholar
  18. 2016. VxWorks Timer Library. Retrieved from http://www.vxdev.com/docs/vx55man/vxworks/ref/timerLib.html.Google ScholarGoogle Scholar
  19. 2016. Xen Official Website. Retrieved from https://www.xenproject.org/.Google ScholarGoogle Scholar
  20. 2017. Retrieved from https://github.com/RTSYork/BlueIO.Google ScholarGoogle Scholar
  21. K. Adams and O. Agesen. 2006. A comparison of software and hardware techniques for x86 virtualization. ACM Sigplan Notices 41, 11 (2006), 2--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Ben-Yehuda, J. Xenidis, M. Ostrowski, K. Rister, A. Bruemmer, and L. Van Doorn. 2007. The price of safety: Evaluating IOMMU performance. In Proceedings of the Ottawa Linux Symposium. 9--20.Google ScholarGoogle Scholar
  23. R. Birkett. 2015. Enhancing real-time capabilities with the PRU. In Proceedings of the Embedded Linux Conference.Google ScholarGoogle Scholar
  24. A. Burns and A. J. Wellings. 2001. Real-time Systems and Programming Languages: Ada 95, Real-time Java, and Real-time POSIX. Pearson Education. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Z. Cheng, R. West, and Y. Ye. 2017. Building real-time embedded applications on QduinoMC: A web-connected 3D printer case study. In Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium. IEEE, 13--24.Google ScholarGoogle Scholar
  26. B. D. de Dinechin, P. G. de Massas, G. Lager, C. Léger, B. Orgogozo, J. Reybert, and T. Strudel. 2013. A distributed run-time environment for the Kalray MPPA-256 Integrated Manycore Processor. Procedia Comput. Sci. 18 (2013), 1654--1663.Google ScholarGoogle ScholarCross RefCross Ref
  27. Y. Dong, X. Yang, J. Li, G. Liao, K. Tian, and H. Guan. 2012. High performance network virtualization with SR-IOV. J. Parallel and Distrib. Comput. 72, 11 (2012), 1471--1480. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Y. Dong, Z. Yu, and G. Rose. 2008. SR-IOV networking in Xen: Architecture, design, and implementation. In Proceedings of the Workshop on I/O Virtualization. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. C. Fetzer, U. Schiffel, and M. Süßkraut. 2009. AN-encoding compiler: Building safety-critical systems with commodity hardware. In Proceedings of the International Conference on Computer Safety, Reliability, and Security. Springer, 283--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J. Garside and N.C. Audsley. 2013. Prefetching across a shared memory tree within a network-on-chip architecture. In Proceedings of the ISSoC. 1--4.Google ScholarGoogle Scholar
  31. M. D. Gomony, J. Garside, B. Akesson, N. C. Audsley, and K. Goossens. 2015. A generic, scalable, and globally arbitrated memory tree for shared DRAM access in real-time systems. In Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE’15). EDA Consortium, 193--198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Gomony, J. Garside, B. Akesson, N. C. Audsley, and K. Goossens. 2016. A globally arbitrated memory tree for mixed-time-criticality systems. IEEE Trans. Comput. 66, 2 (2016), 212--225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. G. Heiser and B. Leslie. 2010. The OKL4 microvisor: Convergence point of microkernels and hypervisors. In Proceedings of the ACM Asia-Pacific Workshop on Systems. ACM, 19--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. R. Hiremane. 2007. Intel virtualization technology for directed I/O (Intel VT-D). Technol. Intel Mag. 4, 10 (2007).Google ScholarGoogle Scholar
  35. L. S. Indrusiak, J. Harbin, and M. J. Sepulveda. 2017. Side-channel attack resilience through route randomisation in secure real-time networks-on-chip. In Proceedings of the International Symposium on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC’17). 1--8.Google ScholarGoogle Scholar
  36. Z. Jiang and N. C. Audsley. 2017. GPIOCP: Timing-accurate general purpose I/O controller for many-core real-time systems. In Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE’17). EDA Consortium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Z. Jiang and N. C. Audsley. 2017. VCDC: The virtualized complicated device controller. In LIPIcs-Leibniz Int. Proc. Inform., Vol. 76. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.Google ScholarGoogle Scholar
  38. J. Jose, M. Li, X. Lu, K. C. Kandalla, M. D. Arnold, and D. K. Panda. 2013. SR-IOV support for virtualization on infiniband clusters: Early experiences. In Proceedings of the IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid’13). IEEE, 385--392.Google ScholarGoogle Scholar
  39. J.-H. Kim, S. Sukkarieh, and S. Wishart. 2003. Real-time navigation, guidance, and control of a UAV using low-cost sensors. In Field Serv. Robotics. Springer, 299--309.Google ScholarGoogle Scholar
  40. F. Kuhns, D. C. Schmidt, and D. L. Levine. 1999. The design and performance of a real-time I/O subsystem. In Proceedings of the IEEE Real-Time Technology and Applications Symposium. IEEE, 154--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. J. A. Landis, T. V. Powderly, R. Subrahmanian, A. Puthiyaparambil, and J. R. Hunter Jr. 2011. Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system. U.S. Patent No. 7,984,108.Google ScholarGoogle Scholar
  42. Y. Li, M. Danish, and R. West. 2011. Quest-V: A virtualized multikernel for high-confidence systems. arXiv preprint arXiv:1112.5136 (2011).Google ScholarGoogle Scholar
  43. M. Masmano, I. Ripoll, A. Crespo, and J. Metge. 2009. Xtratum: A hypervisor for safety critical embedded systems. In Proceedings of the 11th Real-Time Linux Workshop. 263--272.Google ScholarGoogle Scholar
  44. J. Mossinger. 2010. Software in automotive systems. IEEE Softw. 27, 2 (2010), 92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. D. Ongaro, A. L. Cox, and S. Rixner. 2008. Scheduling I/O in virtual machine monitors. In Proceedings of the ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. ACM, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. S. Pinto, J. Pereira, T. Gomes, A. Tavares, and J. Cabral. 2017. LTZVisor: TrustZone is the key. In LIPIcs-Leibniz Int. Proc. Inform., Vol. 76. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.Google ScholarGoogle Scholar
  47. G. Plumbridge, J. Whitham, and N. Audsley. 2014. Blueshell: A platform for rapid prototyping of multiprocessor NoCs and accelerators. ACM SIGARCH Comput. Arch. News 41, 5 (2014), 107--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. K. K. Ram, J. R. Santos, Y. Turner, A. L. Cox, and S. Rixner. 2009. Achieving 10 Gb/s using safe and transparent network interface virtualization. In Proceedings of the ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. ACM, 61--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. J. Sahoo, S. Mohapatra, and R. Lath. 2010. Virtualization: A survey on concepts, taxonomy, and associated security issues. In Proceedings of the International Conference on Computer and Network Technology. IEEE, 222--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. M. Schoeberl, S. Abbaspour, B. Akesson, N. C. Audsley, R. Capasso, J. Garside, K. Goossens, S. Goossens, S. Hansen, and R. Heckmann. 2015. T-CREST: Time-predictable multi-core architecture for embedded systems. J. Syst. Arch. 61, 9 (2015), 449--471. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. S. Trujillo, A. Crespo, and A. Alonso. 2013. Multipartes: Multicore virtualization for mixed-criticality systems. In Proceedings of the Euromicro Conference on Digital System Design. IEEE, 260--265. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. BlueIO: A Scalable Real-Time Hardware I/O Virtualization System for Many-core Embedded Systems

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!