{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,15]],"date-time":"2026-09-15T23:09:33Z","timestamp":1789513773657,"version":"build-2803163510"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2019,4,9]],"date-time":"2019-04-09T00:00:00Z","timestamp":1554768000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2019,5,31]]},"abstract":"<jats:p>\n            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\u2014termed\n            <jats:italic>BlueIO<\/jats:italic>\n            \u2014to meet all these requirements simultaneously.\n          <\/jats:p>\n          <jats:p>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\u00a0[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).<\/jats:p>\n          <jats:p>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.<\/jats:p>","DOI":"10.1145\/3309765","type":"journal-article","created":{"date-parts":[[2019,4,10]],"date-time":"2019-04-10T19:55:16Z","timestamp":1554926116000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["BlueIO"],"prefix":"10.1145","volume":"18","author":[{"given":"Zhe","family":"Jiang","sequence":"first","affiliation":[{"name":"University of York, York, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Neil","family":"Audsley","sequence":"additional","affiliation":[{"name":"University of York, York, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Pan","family":"Dong","sequence":"additional","affiliation":[{"name":"School of Computer, National University of Defense Technology, Hunan Province, China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,4,9]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2015. Bluespec Inc. Bluespec System Verilog (BSV). Retrieved from http:\/\/www.bluespec.com\/products\/.  2015. Bluespec Inc. Bluespec System Verilog (BSV). Retrieved from http:\/\/www.bluespec.com\/products\/."},{"key":"e_1_2_1_2_1","unstructured":"2015. RTEMS Official Website. Retrieved from https:\/\/www.rtems.org\/.  2015. RTEMS Official Website. Retrieved from https:\/\/www.rtems.org\/."},{"key":"e_1_2_1_3_1","unstructured":"2015. uCos Official Website. Retrieved from https:\/\/www.micrium.com\/rtos\/kernels\/.  2015. uCos Official Website. Retrieved from https:\/\/www.micrium.com\/rtos\/kernels\/."},{"key":"e_1_2_1_4_1","unstructured":"2015. Xilinx Official Website. Retrieved from https:\/\/www.Xilinx.com.  2015. Xilinx Official Website. Retrieved from https:\/\/www.Xilinx.com."},{"key":"e_1_2_1_5_1","unstructured":"2016. Retrieved from https:\/\/github.com\/RTSYork\/GPIOCP\/.  2016. Retrieved from https:\/\/github.com\/RTSYork\/GPIOCP\/."},{"key":"e_1_2_1_6_1","unstructured":"2016. Encounter RTL Compiler. Retrieved from https:\/\/www.cadence.com\/content\/cadence-www\/global\/en_US\/home\/training\/all-courses\/84441.html.  2016. Encounter RTL Compiler. Retrieved from https:\/\/www.cadence.com\/content\/cadence-www\/global\/en_US\/home\/training\/all-courses\/84441.html."},{"key":"e_1_2_1_7_1","unstructured":"2016. Encounter RTL Compiler. Retrieved from https:\/\/vlsiarch.ecen.okstate.edu\/flows\/.  2016. Encounter RTL Compiler. Retrieved from https:\/\/vlsiarch.ecen.okstate.edu\/flows\/."},{"key":"e_1_2_1_8_1","unstructured":"2016. FreeRTOS official website. Retrieved from http:\/\/www.freertos.org\/.  2016. FreeRTOS official website. Retrieved from http:\/\/www.freertos.org\/."},{"key":"e_1_2_1_9_1","unstructured":"2016. Freescale Official Website. Retrieved from http:\/\/www.nxp.com\/.  2016. Freescale Official Website. Retrieved from http:\/\/www.nxp.com\/."},{"key":"e_1_2_1_10_1","unstructured":"2016. KVM Official Website. Retrievedfrom https:\/\/www.linux-kvm.org\/page\/Main_Page.  2016. KVM Official Website. Retrievedfrom https:\/\/www.linux-kvm.org\/page\/Main_Page."},{"key":"e_1_2_1_11_1","unstructured":"2016. Microblaze User Manual. Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_manuals\/xilinx11\/mb_ref_guide.pdf.  2016. Microblaze User Manual. Retrieved from http:\/\/www.xilinx.com\/support\/documentation\/sw_manuals\/xilinx11\/mb_ref_guide.pdf."},{"key":"e_1_2_1_12_1","unstructured":"2016. SR-IOV Official Website. Retrieved from http:\/\/pcisig.com\/.  2016. SR-IOV Official Website. Retrieved from http:\/\/pcisig.com\/."},{"key":"e_1_2_1_13_1","unstructured":"2016. Tilera Official Website. Retrieved from http:\/\/www.tilera.com\/.  2016. Tilera Official Website. Retrieved from http:\/\/www.tilera.com\/."},{"key":"e_1_2_1_14_1","unstructured":"2016. VC709 Official Website. Retrieved from https:\/\/www.xilinx.com\/products\/boards-and-kits\/dk-v7-vc709-g.html  2016. VC709 Official Website. Retrieved from https:\/\/www.xilinx.com\/products\/boards-and-kits\/dk-v7-vc709-g.html"},{"key":"e_1_2_1_15_1","unstructured":"2016. VirtualBox Official Website. Retrieved from https:\/\/www.virtualbox.org\/.  2016. VirtualBox Official Website. Retrieved from https:\/\/www.virtualbox.org\/."},{"key":"e_1_2_1_16_1","unstructured":"2016. VMware Official Website. Retrieved from https:\/\/www.vmware.com\/.  2016. VMware Official Website. Retrieved from https:\/\/www.vmware.com\/."},{"key":"e_1_2_1_17_1","unstructured":"2016. VxWorks Official Website. Retrieved from http:\/\/windriver.com\/products\/vxworks\/.  2016. VxWorks Official Website. Retrieved from http:\/\/windriver.com\/products\/vxworks\/."},{"key":"e_1_2_1_18_1","unstructured":"2016. VxWorks Timer Library. Retrieved from http:\/\/www.vxdev.com\/docs\/vx55man\/vxworks\/ref\/timerLib.html.  2016. VxWorks Timer Library. Retrieved from http:\/\/www.vxdev.com\/docs\/vx55man\/vxworks\/ref\/timerLib.html."},{"key":"e_1_2_1_19_1","unstructured":"2016. Xen Official Website. Retrieved from https:\/\/www.xenproject.org\/.  2016. Xen Official Website. Retrieved from https:\/\/www.xenproject.org\/."},{"key":"e_1_2_1_20_1","unstructured":"2017. Retrieved from https:\/\/github.com\/RTSYork\/BlueIO.  2017. Retrieved from https:\/\/github.com\/RTSYork\/BlueIO."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168860"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the Ottawa Linux Symposium. 9--20","author":"Ben-Yehuda M.","unstructured":"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 . 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."},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the Embedded Linux Conference.","author":"Birkett R.","year":"2015","unstructured":"R. Birkett . 2015 . Enhancing real-time capabilities with the PRU . In Proceedings of the Embedded Linux Conference. R. Birkett. 2015. Enhancing real-time capabilities with the PRU. In Proceedings of the Embedded Linux Conference."},{"key":"e_1_2_1_24_1","unstructured":"A. Burns and A. J. Wellings. 2001. Real-time Systems and Programming Languages: Ada 95 Real-time Java and Real-time POSIX. Pearson Education.   A. Burns and A. J. Wellings. 2001. Real-time Systems and Programming Languages: Ada 95 Real-time Java and Real-time POSIX. Pearson Education."},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium. IEEE, 13--24","author":"Cheng Z.","unstructured":"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 . 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."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2013.05.333"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2012.01.020"},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the Workshop on I\/O Virtualization.","author":"Dong Y.","unstructured":"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. 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."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-04468-7_23"},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the ISSoC. 1--4.","author":"Garside J.","unstructured":"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. 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."},{"key":"e_1_2_1_31_1","volume-title":"Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE\u201915)","author":"Gomony M. D.","unstructured":"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\u201915) . EDA Consortium, 193--198. 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\u201915). EDA Consortium, 193--198."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2016.2595581"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1851276.1851282"},{"key":"e_1_2_1_34_1","article-title":"Intel virtualization technology for directed I\/O (Intel VT-D)","volume":"4","author":"Hiremane R.","year":"2007","unstructured":"R. Hiremane . 2007 . Intel virtualization technology for directed I\/O (Intel VT-D) . Technol. Intel Mag. 4 , 10 (2007). R. Hiremane. 2007. Intel virtualization technology for directed I\/O (Intel VT-D). Technol. Intel Mag. 4, 10 (2007).","journal-title":"Technol. Intel Mag."},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the International Symposium on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC\u201917)","author":"Indrusiak L. S.","unstructured":"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\u201917) . 1--8. 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\u201917). 1--8."},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE\u201917)","author":"Jiang Z.","unstructured":"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\u201917) . EDA Consortium. 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\u201917). EDA Consortium."},{"key":"e_1_2_1_37_1","volume-title":"LIPIcs-Leibniz Int. Proc. Inform.","volume":"76","author":"Jiang Z.","unstructured":"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. 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."},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the IEEE\/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid\u201913)","author":"Jose J.","unstructured":"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\u201913) . IEEE, 385--392. 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\u201913). IEEE, 385--392."},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"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.  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.","DOI":"10.1007\/10991459_29"},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the IEEE Real-Time Technology and Applications Symposium. IEEE, 154--163","author":"Kuhns F.","unstructured":"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 . 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."},{"issue":"7","key":"e_1_2_1_41_1","first-page":"984","article-title":"Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system","author":"Landis J. A.","year":"2011","unstructured":"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. 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.","journal-title":"U.S. Patent"},{"key":"e_1_2_1_42_1","unstructured":"Y. Li M. Danish and R. West. 2011. Quest-V: A virtualized multikernel for high-confidence systems. arXiv preprint arXiv:1112.5136 (2011).  Y. Li M. Danish and R. West. 2011. Quest-V: A virtualized multikernel for high-confidence systems. arXiv preprint arXiv:1112.5136 (2011)."},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the 11th Real-Time Linux Workshop. 263--272","author":"Masmano M.","unstructured":"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 . 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."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2010.55"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346256.1346258"},{"key":"e_1_2_1_46_1","volume-title":"LIPIcs-Leibniz Int. Proc. Inform.","volume":"76","author":"Pinto S.","unstructured":"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. 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."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2641361.2641379"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508293.1508303"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCNT.2010.49"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2015.04.002"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2013.37"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3309765","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3309765","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:53:36Z","timestamp":1750204416000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3309765"}},"subtitle":["A Scalable Real-Time Hardware I\/O Virtualization System for Many-core Embedded Systems"],"short-title":[],"issued":{"date-parts":[[2019,4,9]]},"references-count":51,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,5,31]]}},"alternative-id":["10.1145\/3309765"],"URL":"https:\/\/doi.org\/10.1145\/3309765","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,4,9]]},"assertion":[{"value":"2018-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-04-09","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}