Bus mastering
Cuando un dispositivo puede iniciar transferencias en el bus por su cuenta, en lugar de limitarse a responder cuando la CPU pregunta.
En un bus hay quien inicia transacciones y quien responde. Durante mucho tiempo la CPU fue la única iniciadora. Las tarjetas ISA del PC tenían que conformarse con el 8237 de Intel, un controlador DMA central que movía los datos por ellas: DMA de terceros, con el robo de ciclos como peaje. PCI convirtió el bus mastering en estándar en 1992: la tarjeta de red o la controladora de disco podían pedir el bus y escribir directamente en la RAM. En Linux la llamada sigue siendo pci_set_master().
En un microcontrolador es el pan de cada día. El controlador DMA, el MAC Ethernet y el USB son maestros en AHB, y una matriz de buses decide quién pasa primero. La contrapartida es la seguridad: un dispositivo que puede escribir en cualquier parte de la memoria también puede leer claves. De ahí los ataques DMA por FireWire y Thunderbolt, y de ahí la IOMMU.