總線競爭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