總線仲裁(Bus mastering)是許多計算機總線支持的一項功能,它使連接到總線的設備能夠啟動直接內存訪問(DMA) 事務。它也被稱為第一方 DMA ,與第三方 DMA 不同,第三方 DMA實際上由系統DMA 控制器執行其傳輸功能。

某些類型的總線只允許一個設備(通常是CPU或其代理)啟動事務。大多數現代總線架構,例如PCI ,允許多個設備作為總線控制器,因為這能夠顯著提高通用作業系統的性能。一些實時作業系統禁止外設成為總線控制器之一,因為在此條件下,調度程序無法進行總線仲裁,可能會增加不可控的延遲

雖然總線仲裁理論上允許一個外圍設備直接與另一個設備通信,但實際上幾乎所有外圍設備都專門通過控制總線以執行對RAM的直接訪問。

如果多個設備能夠控制總線,則需要有一個總線仲裁方案來防止多個設備試圖同時控制總線。為此使用了許多不同的方案,例如,SCSI對每個 SCSI ID 都設有一個固定的優先級。PCI 沒有指定要使用的算法,具體的優先級視不同實現而異。

參見 編輯

參考文獻 編輯