- Bus mastering
In
computing , bus mastering is a feature supported by many bus architectures that enables a device connected to the bus to initiate transactions. Also called "First-party DMA", to contrast it withThird-party DMA , the situation where the systemDMA controller is actually doing the transfer.Some types of bus allow only one device (typically the CPU, or its proxy) to initiate transactions. Most modern bus architectures, including PCI, allow multiple devices to "bus master" because it significantly improves performance for general purpose
operating system s. Somereal-time operating system s prohibit peripherals from becoming bus masters, because the scheduler can no longer arbitrate for the bus and hence cannot provide deterministic latency.While bus mastering theoretically allows one peripheral device to directly communicate with another, in practice almost all peripherals master the bus exclusively to perform DMA to main memory.
If multiple devices are able to master the bus, there needs to be an arbitration scheme to prevent multiple devices attempting to drive the bus simultaneously. A number of different schemes are used for this; for example
SCSI has a fixed priority for each SCSI ID. PCI does not specify the algorithm to use, leaving it up to the implementation to set priorities.
Wikimedia Foundation. 2010.