{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,25]],"date-time":"2026-04-25T08:47:16Z","timestamp":1777106836609,"version":"3.51.4"},"reference-count":61,"publisher":"Association for Computing Machinery (ACM)","issue":"1-4","license":[{"start":{"date-parts":[[2021,11,30]],"date-time":"2021-11-30T00:00:00Z","timestamp":1638230400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["62132014, 61925206, and U19A2060"],"award-info":[{"award-number":["62132014, 61925206, and U19A2060"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100012247","name":"Program of Shanghai Academic\/Technology Research Leader","doi-asserted-by":"crossref","award":["19XD1401700"],"award-info":[{"award-number":["19XD1401700"]}],"id":[{"id":"10.13039\/501100012247","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2021,11,30]]},"abstract":"<jats:p>\n            IPC (inter-process communication) is a critical mechanism for modern OSes, including not only microkernels such as seL4, QNX, and Fuchsia where system functionalities are deployed in user-level processes, but also monolithic kernels like Android where apps frequently communicate with plenty of user-level services. However, existing IPC mechanisms still suffer from long latency. Previous software optimizations of IPC usually cannot bypass the kernel that is responsible for domain switching and message copying\/remapping across different address spaces; hardware solutions such as tagged memory or capability replace page tables for isolation, but usually require non-trivial modification to existing software stack to adapt to the new hardware primitives. In this article, we propose a hardware-assisted OS primitive,\n            <jats:italic>XPC<\/jats:italic>\n            (Cross Process Call), for efficient and secure synchronous IPC. XPC enables direct switch between IPC caller and callee without trapping into the kernel and supports secure message passing across multiple processes without copying. We have implemented a prototype of XPC based on the ARM AArch64 with Gem5 simulator and RISC-V architecture with FPGA boards. The evaluation shows that XPC can reduce IPC call latency from 664 to 21 cycles, 14\u00d7\u2013123\u00d7 improvement on Android Binder (ARM), and improve the performance of real-world applications on microkernels by 1.6\u00d7 on Sqlite3.\n          <\/jats:p>","DOI":"10.1145\/3532861","type":"journal-article","created":{"date-parts":[[2022,5,9]],"date-time":"2022-05-09T12:35:23Z","timestamp":1652099723000},"page":"1-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Boosting Inter-process Communication with Architectural Support"],"prefix":"10.1145","volume":"39","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6558-5298","authenticated-orcid":false,"given":"Yubin","family":"Xia","sequence":"first","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7945-8430","authenticated-orcid":false,"given":"Dong","family":"Du","sequence":"additional","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2211-9120","authenticated-orcid":false,"given":"Zhichao","family":"Hua","sequence":"additional","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1968-7645","authenticated-orcid":false,"given":"Binyu","family":"Zang","sequence":"additional","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9720-0361","authenticated-orcid":false,"given":"Haibo","family":"Chen","sequence":"additional","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4714-7400","authenticated-orcid":false,"given":"Haibing","family":"Guan","sequence":"additional","affiliation":[{"name":"Shanghai Key Laboratory of Scalable Computing and Systems, Shanghai Jiao TongUniversity, China and Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University, China and Shanghai AI Laboratory, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2022,7,5]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Arm Inc. 2018. Arm System Modeling Research Enablement Kit. Retrieved from https:\/\/developer.arm.com\/research\/research-enablement\/system-modeling."},{"key":"e_1_3_2_3_2","unstructured":"Google Inc. 2018. Fuchsia. Retrieved from https:\/\/fuchsia.googlesource.com\/zircon."},{"key":"e_1_3_2_4_2","unstructured":"Intel Inc. 2018. An Introduction to the Intel QuickPath Interconnect. Retrieved from https:\/\/www.intel.de\/content\/dam\/doc\/white-paper\/quick-path-interconnect-introduction-paper.pdf."},{"key":"e_1_3_2_5_2","unstructured":"lowRISC Project. 2018. lowRISC. Retrieved from https:\/\/www.lowrisc.org\/."},{"key":"e_1_3_2_6_2","unstructured":"lwIP Project. 2018. lwIP. Retrieved from https:\/\/savannah.nongnu.org\/projects\/lwip\/. Referenced May 2018."},{"key":"e_1_3_2_7_2","unstructured":"seL4 Project. 2018. seL4 Benchmark. Retrieved from https:\/\/sel4.systems\/About\/Performance."},{"key":"e_1_3_2_8_2","unstructured":"SQLite Project. 2018. SQLite. Retrieved from https:\/\/www.sqlite.org\/index.html. Referenced May 2018."},{"key":"e_1_3_2_9_2","unstructured":"Xilinx Inc. 2018. Vivado Design Suite. Retrieved from https:\/\/www.xilinx.com\/products\/design-tools\/vivado.html. Referenced August 2018."},{"key":"e_1_3_2_10_2","unstructured":"John Stultz. 2019. Anonymous shared memory (ashmem) subsystem [LWN.net]. Retrieved from https:\/\/lwn.net\/Articles\/452035\/."},{"key":"e_1_3_2_11_2","unstructured":"Dianne Hackborn. 2019. LKML: Dianne Hackborn: Re: [PATCH 1\/6] staging: android: binder: Remove some funny usage. Retrieved from https:\/\/lkml.org\/lkml\/2009\/6\/25\/3."},{"key":"e_1_3_2_12_2","unstructured":"Common Weakness Enumeration. 2021. CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition (4.5). Retrieved from https:\/\/cwe.mitre.org\/data\/definitions\/367.html."},{"key":"e_1_3_2_13_2","unstructured":"Fiasco.OC Project. 2021. The Fiasco microkernel - Overview. Retrieved from https:\/\/os.inf.tu-dresden.de\/fiasco\/. Referenced Oct. 2021."},{"key":"e_1_3_2_14_2","unstructured":"Barrelfish Project. 2021. Message Notifications Barrelfish Technical Note 9. http:\/\/www.barrelfish.org\/publications\/TN-009-Notifications.pdf."},{"key":"e_1_3_2_15_2","unstructured":"SiFive Inc. 2021. SiFive. Retrieved from https:\/\/www.sifive.com\/."},{"key":"e_1_3_2_16_2","unstructured":"Sohil Mehta. 2021. User Interrupts: A faster way to signal. Retrieved from https:\/\/linuxplumbersconf.org\/event\/11\/contributions\/985\/attachments\/756\/1417\/User_Interrupts_LPC_2021.pdf."},{"key":"e_1_3_2_17_2","unstructured":"seL4 Project. 2022. seL4 Dynamic Libraries: IPC. Retrieved from https:\/\/docs.sel4.systems\/Tutorials\/dynamic-2.html."},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3342195.3387518"},{"key":"e_1_3_2_19_2","article-title":"The Rocket Chip Generator","author":"Asanovic Krste","year":"2016","unstructured":"Krste Asanovic, Rimas Avizienis, Jonathan Bachrach, Scott Beamer, David Biancolin, Christopher Celio, Henry Cook, Daniel Dabbelt, John Hauser, Adam Izraelevitz, et\u00a0al. 2016. The Rocket Chip Generator. Technical Report. EECS Department, University of California, Berkeley, Tech. Rep. UCB\/EECS-2016-17.","journal-title":"EECS Department, University of California, Berkeley, Tech. Rep. UCB\/EECS-2016-17"},{"key":"e_1_3_2_20_2","volume-title":"ASPLOS","author":"Asmussen Nils","year":"2016","unstructured":"Nils Asmussen, Marcus V\u00f6lp, Benedikt N\u00f6then, Hermann H\u00e4rtig, and Gerhard Fettweis. 2016. M3: A hardware\/operating-system co-design to tame heterogeneous manycores. In ASPLOS. ACM, New York, NY."},{"key":"e_1_3_2_21_2","volume-title":"ACM SIGOPS","author":"Baumann Andrew","year":"2009","unstructured":"Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Sch\u00fcpbach, and Akhilesh Singhania. 2009. The multikernel: A new OS architecture for scalable multicore systems. In ACM SIGOPS."},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/77648.77650"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/103720.114701"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/2024716.2024718"},{"key":"e_1_3_2_25_2","volume-title":"ACM SIGPLAN Notices","author":"Carter Nicholas P.","year":"1994","unstructured":"Nicholas P. Carter, Stephen W. Keckler, and William J. Dally. 1994. Hardware support for fast capability-based addressing. In ACM SIGPLAN Notices. ACM."},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/195792.195795"},{"key":"e_1_3_2_27_2","volume-title":"SOSP","author":"Chen Haogang","year":"2015","unstructured":"Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2015. Using crash Hoare logic for certifying the FSCQ file system. In SOSP."},{"key":"e_1_3_2_28_2","volume-title":"USENIX Workshop on Microkernels and other Kernel Architectures","author":"Clark Raymond K.","year":"1992","unstructured":"Raymond K. Clark, E. Douglas Jensen, and Franklin D. Reynolds. 1992. An architectural overview of the Alpha real-time distributed kernel. In USENIX Workshop on Microkernels and other Kernel Architectures."},{"key":"e_1_3_2_29_2","volume-title":"OSDI","author":"David Francis M.","year":"2008","unstructured":"Francis M. David, Ellick Chan, Jeffrey C. Carlyle, and Roy H. Campbell. 2008. CuriOS: Improving reliability through operating system structure. In OSDI."},{"key":"e_1_3_2_30_2","volume-title":"SOSP","author":"Elphinstone Kevin","year":"2013","unstructured":"Kevin Elphinstone and Gernot Heiser. 2013. From L3 to seL4 what have we learnt in 20 years of L4 microkernels? In SOSP."},{"key":"e_1_3_2_31_2","volume-title":"SOSP\u201995","author":"Engler D. R.","year":"1995","unstructured":"D. R. Engler, M. F. Kaashoek, and J. O\u2019Toole, Jr.1995. Exokernel: An operating system architecture for application-level resource management. In SOSP\u201995. ACM, New York, NY."},{"key":"e_1_3_2_32_2","volume-title":"USENIX Winter","author":"Ford Bryan","year":"1994","unstructured":"Bryan Ford and Jay Lepreau. 1994. Evolving Mach 3.0 to a migrating thread model. In USENIX Winter."},{"key":"e_1_3_2_33_2","first-page":"87","volume-title":"OSDI","author":"Gamsa Benjamin","year":"1999","unstructured":"Benjamin Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm. 1999. Tornado: Maximizing locality and concurrency in a shared memory multiprocessor operating system. In OSDI, Vol. 99. 87\u2013100."},{"key":"e_1_3_2_34_2","volume-title":"ACM SIGOPS Operating Systems Review","author":"H\u00e4rtig Hermann","year":"1997","unstructured":"Hermann H\u00e4rtig, Michael Hohmuth, Jochen Liedtke, Jean Wolter, and Sebastian Sch\u00f6nberg. 1997. The performance of \\( \\mu \\) -kernel-based systems. In ACM SIGOPS Operating Systems Review, Vol. 31. ACM."},{"key":"e_1_3_2_35_2","volume-title":"ACM SIGOPS","author":"Klein Gerwin","year":"2009","unstructured":"Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, et\u00a0al. 2009. seL4: Formal verification of an OS kernel. In ACM SIGOPS."},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/143365.143508"},{"key":"e_1_3_2_37_2","volume-title":"HPCA","author":"Lee Sanghoon","year":"2011","unstructured":"Sanghoon Lee, Devesh Tiwari, Yan Solihin, and James Tuck. 2011. HAQu: Hardware-accelerated queueing for fine-grained threading on a chip multiprocessor. In HPCA."},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.5555\/538134"},{"key":"e_1_3_2_39_2","volume-title":"ISCA","author":"Li Wenhao","year":"2015","unstructured":"Wenhao Li, Yubin Xia, Haibo Chen, Binyu Zang, and Haibing Guan. 2015. Reducing world switches in virtualized environment with flexible cross-world calls. In ISCA."},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/173668.168633"},{"key":"e_1_3_2_41_2","volume-title":"3rd International Workshop on Object Orientation in Operating Systems","author":"Liedtke Jochen","year":"1993","unstructured":"Jochen Liedtke. 1993. A persistent system in real use-experiences of the first 13 years. In 3rd International Workshop on Object Orientation in Operating Systems. IEEE."},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/224056.224075"},{"key":"e_1_3_2_43_2","volume-title":"6th Workshop on Hot Topics in Operating Systems","author":"Liedtke Jochen","year":"1997","unstructured":"Jochen Liedtke, Kevin Elphinstone, Sebastian Schonberg, Hermann Hartig, Gernot Heiser, Nayeem Islam, and Trent Jaeger. 1997. Achieved IPC performance (still the foundation for extensibility). In 6th Workshop on Hot Topics in Operating Systems. IEEE."},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/3190508.3190539"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173175"},{"key":"e_1_3_2_46_2","first-page":"279","volume-title":"USENIX","author":"McVoy Larry W.","year":"1996","unstructured":"Larry W. McVoy, Carl Staelin, et\u00a0al. 1996. LMbench: Portable tools for performance analysis. In USENIX. 279\u2013294."},{"key":"e_1_3_2_47_2","volume-title":"EuroSys","author":"Mi Zeyu","year":"2019","unstructured":"Zeyu Mi, Dingji Li, Zihan Yang, Xinran Wang, and Haibo Chen. 2019. SkyBridge: Fast and secure inter-process communication for microkernels. In EuroSys. ACM."},{"key":"e_1_3_2_48_2","volume-title":"EuroSys","author":"Min Changwoo","year":"2018","unstructured":"Changwoo Min, Woonhak Kang, Mohan Kumar, Sanidhya Kashyap, Steffen Maass, Heeseung Jo, and Taesoo Kim. 2018. Solros: A data-centric operating system architecture for heterogeneous computing. In EuroSys. ACM."},{"key":"e_1_3_2_49_2","first-page":"269","volume-title":"USENIX","author":"Narayanan Vikram","year":"2019","unstructured":"Vikram Narayanan, Abhiram Balasubramanian, Charlie Jacobsen, Sarah Spall, Scott Bauer, Michael Quigley, Aftab Hussain, Abdullah Younis, Junjie Shen, Moinak Bhattacharyya, and Anton Burtsev. 2019. LXDs: Towards isolation of kernel subsystems. In USENIX. USENIX Association, 269\u2013284. Retrieved from https:\/\/www.usenix.org\/conference\/atc19\/presentation\/narayanan."},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3381052.3381328"},{"key":"e_1_3_2_51_2","first-page":"241","volume-title":"USENIX","author":"Park Soyeon","year":"2019","unstructured":"Soyeon Park, Sangho Lee, Wen Xu, HyunGon Moon, and Taesoo Kim. 2019. libmpk: Software abstraction for Intel memory protection keys (Intel MPK). In USENIX. USENIX Association, 241\u2013254. Retrieved from https:\/\/www.usenix.org\/conference\/atc19\/presentation\/park-soyeon."},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/361011.361067"},{"key":"e_1_3_2_53_2","volume-title":"EROS: A fast capability system","author":"Shapiro Jonathan S.","year":"1999","unstructured":"Jonathan S. Shapiro, Jonathan M. Smith, and David J. Farber. 1999. EROS: A fast capability system. Vol. 33. ACM."},{"key":"e_1_3_2_54_2","volume-title":"EUROSYS","author":"Steinberg Udo","year":"2010","unstructured":"Udo Steinberg and Bernhard Kauer. 2010. NOVA: A microhypervisor-based secure virtualization architecture. In EUROSYS."},{"key":"e_1_3_2_55_2","volume-title":"ExpCS","author":"Tsafrir Dan","year":"2007","unstructured":"Dan Tsafrir. 2007. The context-switch overhead inflicted by hardware interrupts (and the enigma of do-nothing loops). In ExpCS. ACM."},{"key":"e_1_3_2_56_2","volume-title":"ACM SIGARCH Computer Architecture News","author":"Vilanova Llu\u00efs","year":"2014","unstructured":"Llu\u00efs Vilanova, Muli Ben-Yehuda, Nacho Navarro, Yoav Etsion, and Mateo Valero. 2014. CODOMs: Protecting software with code-centric memory domains. In ACM SIGARCH Computer Architecture News. IEEE Press."},{"key":"e_1_3_2_57_2","volume-title":"EuroSys","author":"Vilanova Llu\u00eds","year":"2017","unstructured":"Llu\u00eds Vilanova, Marc Jord\u00e0, Nacho Navarro, Yoav Etsion, and Mateo Valero. 2017. Direct inter-process communication (dIPC): Repurposing the CODOMs architecture to accelerate IPC. In EuroSys. ACM."},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.21236\/ADA605735"},{"key":"e_1_3_2_59_2","volume-title":"SP","author":"Watson Robert N. M.","year":"2015","unstructured":"Robert N. M. Watson, Ben Laurie, et\u00a0al. 2015. Cheri: A hybrid capability-system architecture for scalable software compartmentalization. In SP. IEEE."},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2016.84"},{"key":"e_1_3_2_61_2","volume-title":"ASPLOS","author":"Witchel Emmett","year":"2002","unstructured":"Emmett Witchel, Josh Cates, and Krste Asanovi\u0107. 2002. Mondrian memory protection. In ASPLOS. ACM, New York, NY."},{"key":"e_1_3_2_62_2","volume-title":"SOSP","author":"Witchel Emmett","year":"2005","unstructured":"Emmett Witchel, Junghwan Rhee, and Krste Asanovi\u0107. 2005. Mondrix: Memory isolation for Linux using Mondriaan memory protection. In SOSP. ACM."}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3532861","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3532861","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:00:37Z","timestamp":1750186837000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3532861"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,11,30]]},"references-count":61,"journal-issue":{"issue":"1-4","published-print":{"date-parts":[[2021,11,30]]}},"alternative-id":["10.1145\/3532861"],"URL":"https:\/\/doi.org\/10.1145\/3532861","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"value":"0734-2071","type":"print"},{"value":"1557-7333","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,11,30]]},"assertion":[{"value":"2021-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-07-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}