Quick links

Protected, User-level DMA for the SHRIMP Network Interface

Report ID:
November 1995
Download Formats:


Traditional DMA requires the operating system to perform many tasks to
initiate a transfer, with overhead on the order of hundreds or
thousands of CPU instructions. This paper describes a mechanism,
called User-level Direct Memory Access (UDMA), for initiating DMA
transfers of input/output data, with full protection, at a cost of
only two user-level memory references. The UDMA mechanism uses
existing virtual memory translation hardware to perform permission
checking and address translation without kernel involvement. The
implementation of the UDMA mechanism is simple, requiring a small
extension to the traditional DMA controller and minimal operating
system kernel support. The mechanism can be used with a wide variety
of I/O devices including a network interfaces, data storage devices
such as disks and tape drives, and memory-mapped devices such as
graphics frame-buffers. As an illustration, we describe how we used
UDMA in building a network interface hardware for the SHRIMP

This technical report has been published as
Protected, User-level DMA for the SHRIMP Network Interface
Matthias A. Blumrich, Cezary Dubnicki, Edward W. Felten, and Kai Li,
in Proceedings of the 2nd Internat. Symposium on High Performance
Computer Architecture
, February 1996.
Follow us: Facebook Twitter Linkedin