バスマスタリング
CPUに呼ばれて応答するだけでなく、デバイス自身がバス上で転送を開始できること。
バスにはイニシエータ(開始側)とレスポンダ(応答側)がある。長いあいだイニシエータはCPUだけだった。PCのISAカードは、Intelの8237という中央集約型のDMAコントローラに転送を代行させていた。いわゆるサードパーティDMAで、代償はサイクルスチールである。1992年にPCIがバスマスタリングを標準にし、ネットワークカードやディスクコントローラがバスを要求してRAMへ直接書き込めるようになった。Linuxでは今も pci_set_master() がその呼び出しだ。
マイコンでは日常的な仕組みである。DMAコントローラ、Ethernet MAC、USBはいずれもAHB上のマスタで、バスマトリクスが順番を決める。欠点はセキュリティだ。メモリのどこにでも書けるデバイスは、そこから鍵を読み出すこともできる。FireWireやThunderboltを経由したDMA攻撃、そしてIOMMUが存在する理由はここにある。