{"title":"GMEM: Generalized Memory Management for Peripheral Devices","authors":"Weixi Zhu, Alan L. Cox, Scott Rixner","doi":"arxiv-2310.12554","DOIUrl":null,"url":null,"abstract":"This paper presents GMEM, generalized memory management, for peripheral\ndevices. GMEM provides OS support for centralized memory management of both CPU\nand devices. GMEM provides a high-level interface that decouples MMU-specific\nfunctions. Device drivers can thus attach themselves to a process's address\nspace and let the OS take charge of their memory management. This eliminates\nthe need for device drivers to \"reinvent the wheel\" and allows them to benefit\nfrom general memory optimizations integrated by GMEM. Furthermore, GMEM\ninternally coordinates all attached devices within each virtual address space.\nThis drastically improves user-level programmability, since programmers can use\na single address space within their program, even when operating across the CPU\nand multiple devices. A case study on device drivers demonstrates these\nbenefits. A GMEM-based IOMMU driver eliminates around seven hundred lines of\ncode and obtains 54% higher network receive throughput utilizing 32% less CPU\ncompared to the state-of-the-art. In addition, the GMEM-based driver of a\nsimulated GPU takes less than 70 lines of code, excluding its MMU functions.","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"64 3","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-10-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2310.12554","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
This paper presents GMEM, generalized memory management, for peripheral
devices. GMEM provides OS support for centralized memory management of both CPU
and devices. GMEM provides a high-level interface that decouples MMU-specific
functions. Device drivers can thus attach themselves to a process's address
space and let the OS take charge of their memory management. This eliminates
the need for device drivers to "reinvent the wheel" and allows them to benefit
from general memory optimizations integrated by GMEM. Furthermore, GMEM
internally coordinates all attached devices within each virtual address space.
This drastically improves user-level programmability, since programmers can use
a single address space within their program, even when operating across the CPU
and multiple devices. A case study on device drivers demonstrates these
benefits. A GMEM-based IOMMU driver eliminates around seven hundred lines of
code and obtains 54% higher network receive throughput utilizing 32% less CPU
compared to the state-of-the-art. In addition, the GMEM-based driver of a
simulated GPU takes less than 70 lines of code, excluding its MMU functions.