匯流排競爭Bus contention)也稱匯流排爭用,是電腦設計中匯流排的不良狀態——匯流排上的多個裝置同時嘗試在匯流排上放置值。大多數匯流排架構要求其裝置遵循精心設計的仲裁協定,以使競爭的可能性可以忽略不計。[1]但是,當匯流排上的裝置有邏輯錯誤、製造缺陷或超出其設計速度執行時,仲裁可能會故障,從而導致競爭。在具有可程式化主記憶體對映的系統上控制對映的暫存器被寫入非法值後,也可能發生競爭。

競爭可能導致錯誤的操作,並且在異常情況下會損壞硬體——例如匯流排接線的熔斷。[來源請求]

有時會通過緩衝主記憶體對映裝置的輸出應對匯流排競爭。但是,已經觀察到[誰說的?]一個裝置的高阻抗仍會干擾其他裝置的匯流排值。目前來說,沒有標準的解決方案來應對主記憶體裝置(如EEPROMSRAM)之間的資料匯流排爭用。

大多數小型電腦系統經過精心設計避免系統匯流排上的匯流排爭用。它們使用一個稱為匯流排仲裁器英語Bus arbiter的裝置控制哪個裝置在目前可以驅動匯流排,因此匯流排競爭在正常運作中永遠不會發生。

例如權杖環等部分網路也被設計為避免匯流排競爭,因此匯流排競爭在正常運作中永遠不會發生。

大多數網路被設計為容忍網路上偶爾的匯流排爭用。CAN匯流排ALOHAnet乙太網路等在正常運作中偶爾會遇到匯流排爭用,但會使用一些協定(例如避免碰撞的多路訪問英語Multiple Access with Collision Avoidance具有碰撞檢測的載波偵聽多路訪問自動重發請求)最小化爭用時間,並重新傳送在封包衝突英語Packet collision中被破壞的資料。

參考資料

編輯
  1. ^ Tanenbaum, Andrew, Structured Computer Organization 3rd, Prentice Hall: 121–124, 1990, ISBN 0-13-852872-1