{"title":"无iommu多核加速器的虚拟化框架","authors":"Christian Pinto, A. Marongiu, L. Benini","doi":"10.1145/2613908.2613910","DOIUrl":null,"url":null,"abstract":"Modern high-end embedded systems are designed as sophisticated systems-on-chip (SoC) composed of a virtualization-ready multi-core processor (the host) coupled to programmable manycore accelerators (PMCA). To tackle the increased programming complexity, the roadmap of several major industrial players envisions dedicated HW support to allow host and PMCA to communicate via shared virtual memory. I/O memory management units (IOMMU) and other HW are required to allow coherent virtual memory sharing. Currently no embedded heterogeneous SoC exist that provides such support, and it is unclear if the required HW will fit the tight area and energy budgets of such designs. However, providing the abstraction of a shared memory is very relevant to simplify programming of heterogeneous SoCs, as well as techniques to extend virtualization support to the manycore. We present in this work a software infrastructure which enables such support in absence of dedicated HW. The proposed mechanism is based on standard Linux KVM, and relies on (transparent) memory copies to resolve virtual-to-physical address translation. We describe an implementation for a real heterogeneous SoC and provide a detailed analysis of the cost of our SW-only solution.","PeriodicalId":84860,"journal":{"name":"Histoire & mesure","volume":"1992 1","pages":"33-40"},"PeriodicalIF":0.0000,"publicationDate":"2014-06-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A Virtualization Framework for IOMMU-less Many-Core Accelerators\",\"authors\":\"Christian Pinto, A. Marongiu, L. Benini\",\"doi\":\"10.1145/2613908.2613910\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Modern high-end embedded systems are designed as sophisticated systems-on-chip (SoC) composed of a virtualization-ready multi-core processor (the host) coupled to programmable manycore accelerators (PMCA). To tackle the increased programming complexity, the roadmap of several major industrial players envisions dedicated HW support to allow host and PMCA to communicate via shared virtual memory. I/O memory management units (IOMMU) and other HW are required to allow coherent virtual memory sharing. Currently no embedded heterogeneous SoC exist that provides such support, and it is unclear if the required HW will fit the tight area and energy budgets of such designs. However, providing the abstraction of a shared memory is very relevant to simplify programming of heterogeneous SoCs, as well as techniques to extend virtualization support to the manycore. We present in this work a software infrastructure which enables such support in absence of dedicated HW. The proposed mechanism is based on standard Linux KVM, and relies on (transparent) memory copies to resolve virtual-to-physical address translation. We describe an implementation for a real heterogeneous SoC and provide a detailed analysis of the cost of our SW-only solution.\",\"PeriodicalId\":84860,\"journal\":{\"name\":\"Histoire & mesure\",\"volume\":\"1992 1\",\"pages\":\"33-40\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2014-06-15\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Histoire & mesure\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2613908.2613910\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Histoire & mesure","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2613908.2613910","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A Virtualization Framework for IOMMU-less Many-Core Accelerators
Modern high-end embedded systems are designed as sophisticated systems-on-chip (SoC) composed of a virtualization-ready multi-core processor (the host) coupled to programmable manycore accelerators (PMCA). To tackle the increased programming complexity, the roadmap of several major industrial players envisions dedicated HW support to allow host and PMCA to communicate via shared virtual memory. I/O memory management units (IOMMU) and other HW are required to allow coherent virtual memory sharing. Currently no embedded heterogeneous SoC exist that provides such support, and it is unclear if the required HW will fit the tight area and energy budgets of such designs. However, providing the abstraction of a shared memory is very relevant to simplify programming of heterogeneous SoCs, as well as techniques to extend virtualization support to the manycore. We present in this work a software infrastructure which enables such support in absence of dedicated HW. The proposed mechanism is based on standard Linux KVM, and relies on (transparent) memory copies to resolve virtual-to-physical address translation. We describe an implementation for a real heterogeneous SoC and provide a detailed analysis of the cost of our SW-only solution.