In an embodiment, a computer system comprises a processor; a memory
management module comprising a plurality of instructions executable on
the processor; a memory coupled to the processor; and an input/output
memory management unit (IOMMU) coupled to the memory. The IOMMU is
configured to implement address translation and memory protection for
memory operations sourced by one or more input/output (I/O) devices. The
memory stores a command queue during use. The memory management module is
configured to write one or more control commands to the command queue,
and the IOMMU is configured to read the control commands from the command
queue and execute the control commands.