Bus mastering
In computing, bus mastering is a feature supported by many bus architectures that enables a device connected to the bus to initiate direct memory access (DMA) transactions. It is also referred to as first-party DMA, in contrast with third-party DMA where a system DMA controller actually does the transfer.
Some types of buses allow only one device (typically the CPU, or its proxy) to initiate transactions. Most modern bus architectures, such as PCI, allow multiple devices to bus master because it significantly improves performance for general-purpose operating systems. Some real-time operating systems 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 a bus 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.
See also
- Master/slave (technology)
- SCSI initiator and target
References
- How Bus Mastering Works - Tweak3D
- What is bus mastering?- Brevard User's Group
- v
- t
- e
- System bus
- Front-side bus
- Back-side bus
- Daisy chain
- Control bus
- Address bus
- Bus contention
- Bus mastering
- Network on a chip
- Plug and play
- List of bus bandwidths
- SS-50 bus
- S-100 bus
- Multibus
- Unibus
- VAXBI
- MBus
- STD Bus
- SMBus
- Q-Bus
- Europe Card Bus
- ISA
- STEbus
- Zorro II
- Zorro III
- CAMAC
- FASTBUS
- LPC
- HP Precision Bus
- EISA
- VME
- VXI
- VXS
- VPX
- NuBus
- TURBOchannel
- MCA
- SBus
- VLB
- HP GSC bus
- InfiniBand
- Ethernet
- UPA
- PCI
- PCI Extended (PCI-X)
- PXI
- PCI Express (PCIe)
- AGP
- Compute Express Link (CXL)
- Direct Media Interface (DMI)
- RapidIO
- Intel QuickPath Interconnect
- NVLink
- HyperTransport
- Intel Ultra Path Interconnect
- Coherent Accelerator Processor Interface (CAPI)
- SpaceWire
- ST-506
- ESDI
- IPI
- SMD
- Parallel ATA (PATA)
- Bus and Tag
- DSSI
- HIPPI
- Serial ATA (SATA)
- SCSI
- ESCON
- Fibre Channel
- SSA
- SATAe
- PCI Express (via AHCI or NVMe logical device interface)
- Multidrop bus
- CoreConnect
- AMBA (AXI)
- Wishbone
- SLIMbus
![](http://upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png)
![]() | This computer hardware article is a stub. You can help Wikipedia by expanding it. |
- v
- t
- e