总线仲裁(Bus mastering)是许多计算机总线支持的一项功能,它使连接到总线的设备能够启动直接内存访问(DMA) 事务。它也被称为第一方 DMA ,与第三方 DMA 不同,第三方 DMA实际上由系统DMA 控制器执行其传输功能。
某些类型的总线只允许一个设备(通常是CPU或其代理)启动事务。大多数现代总线架构,例如PCI ,允许多个设备作为总线控制器,因为这能够显著提高通用操作系统的性能。一些实时操作系统禁止外设成为总线控制器之一,因为在此条件下,调度程序无法进行总线仲裁,可能会增加不可控的延迟。
虽然总线仲裁理论上允许一个外围设备直接与另一个设备通信,但实际上几乎所有外围设备都专门通过控制总线以执行对RAM的直接访问。
如果多个设备能够控制总线,则需要有一个总线仲裁方案来防止多个设备试图同时控制总线。为此使用了许多不同的方案,例如,SCSI对每个 SCSI ID 都设有一个固定的优先级。PCI 没有指定要使用的算法,具体的优先级视不同实现而异。
参见
- 主从模式
参考文献
- [http://www.tweak3d.net/articles/howbusmaster/ How Bus Mastering Works] - Tweak3D
- [https://web.archive.org/web/20120316232747/http://bugclub.org/beginners/hardware/BUSMastering.html What is bus mastering?]- Brevard User's Group
评论 (0)