总线仲裁

总线仲裁(Bus mastering)是许多计算机总线支持的一项功能,它使连接到总线的设备能够启动直接内存访问(DMA) 事务。它也被称为第一方 DMA ,与第三方 DMA 不同,第三方 DMA实际上由系统DMA 控制器执行其传输功能。

某些类型的总线只允许一个设备(通常是CPU或其代理)启动事务。大多数现代总线架构,例如PCI ,允许多个设备作为总线控制器,因为这能够显著提高通用操作系统的性能。一些实时操作系统禁止外设成为总线控制器之一,因为在此条件下,调度程序无法进行总线仲裁,可能会增加不可控的延迟

虽然总线仲裁理论上允许一个外围设备直接与另一个设备通信,但实际上几乎所有外围设备都专门通过控制总线以执行对RAM的直接访问。

如果多个设备能够控制总线,则需要有一个总线仲裁方案来防止多个设备试图同时控制总线。为此使用了许多不同的方案,例如,SCSI对每个 SCSI ID 都设有一个固定的优先级。PCI 没有指定要使用的算法,具体的优先级视不同实现而异。

参见

参考文献