Bus-master devices are typically controllers that are equipped with their own processor and on-board programming necessary to carry out much of their operations, without requiring processing from the main system CPU. These bus-master devices have the intelligence necessary to move data to and from system memory without the aid of the CPU or the need to program the DMA controller with the starting address and size of transfer. This capability is very useful and is now frequently designed into high data volume devices such as SCSI controllers and network cards.
Data transfer to and from the device often involves identifying the physical memory location, size and direction of transfer to the hardware. The bus-master device interrupts the CPU after data transfer is completed.