@inproceedings{c0a97567a7604558ad61c96c6897dd2b,
title = "IoCTopus: Outsmarting nonuniform DMA",
abstract = "In a multi-CPU server, memory modules are local to the CPU to which they are connected, forming a nonuniform memory access (NUMA) architecture. Because non-local accesses are slower than local accesses, the NUMA architecture might degrade application performance. Similar slowdowns occur when an I/O device issues nonuniform DMA (NUDMA) operations, as the device is connected to memory via a single CPU. NUDMA effects therefore degrade application performance similarly to NUMA effects. We observe that the similarity is not inherent but rather a product of disregarding the intrinsic differences between I/O and CPU memory accesses. Whereas NUMA effects are inevitable, we show that NUDMA effects can and should be eliminated. We present IOctopus, a device architecture that makes NUDMA impossible by unifying multiple physical PCIe functions-one per CPU-in manner that makes them appear as one, both to the system software and externally to the server. IOctopus requires only a modest change to the device driver and firmware. We implement it on existing hardware and demonstrate that it improves throughput and latency by as much as 2.7× and 1.28×, respectively, while ridding developers from the need to combat (what appeared to be) an unavoidable type of overhead.",
keywords = "Bifurcation, DDIO, NUDMA, NUMA, OS I/O, PCIe",
author = "Igor Smolyar and Alex Markuze and Boris Pismenny and Haggai Eran and Gerd Zellweger and Austin Bolen and Liran Liss and Adam Morrison and Dan Tsafrir",
note = "Publisher Copyright: {\textcopyright} 2020 Copyright held by the owner/author(s). Publication rights licensed to ACM.; 25th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2020 ; Conference date: 16-03-2020 Through 20-03-2020",
year = "2020",
month = mar,
day = "9",
doi = "10.1145/3373376.3378509",
language = "אנגלית",
series = "International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS",
publisher = "Association for Computing Machinery",
pages = "101--115",
booktitle = "ASPLOS 2020 - 25th International Conference on Architectural Support for Programming Languages and Operating Systems",
address = "ארצות הברית",
}