複製鏈接
請複製以下鏈接發送給好友

總線競爭

鎖定
總線競爭Bus contention)也稱總線爭用,是計算機設計中總線的不良狀態——總線上的多個設備同時嘗試在總線上放置值。
中文名
總線競爭
外文名
Bus contention
又    稱
總線爭用
領    域
計算機

總線競爭簡介

大多數總線架構要求其設備遵循精心設計的仲裁協議,以使競爭的可能性可以忽略不計。但是,當總線上的設備有邏輯錯誤、製造缺陷或超出其設計速度運行時,仲裁可能會故障,從而導致競爭。在具有可編程內存映射的系統上控制映射的寄存器被寫入非法值後,也可能發生競爭。 [1] 

總線競爭後果

競爭可能導致錯誤的操作,並且在異常情況下會損壞硬件——例如總線接線的熔斷。
有時會通過緩衝內存映射設備的輸出應對總線競爭。但是,已經觀察到一個設備的高阻抗仍會干擾其他設備的總線值。目前來説,沒有標準的解決方案來應對內存設備(如EEPROMSRAM)之間的數據總線爭用。 [1] 

總線競爭解決方法

大多數小型計算機系統經過精心設計避免系統總線上的總線爭用。它們使用一個稱為總線仲裁器的設備控制哪個設備在目前可以驅動總線,因此總線競爭在正常運作中永遠不會發生。
例如令牌環等部分網絡也被設計為避免總線競爭,因此總線競爭在正常運作中永遠不會發生。
大多數網絡被設計為容忍網絡上偶爾的總線爭用。CAN總線ALOHAnet以太網等在正常運作中偶爾會遇到總線爭用,但會使用一些協議(例如避免碰撞的多路訪問、具有碰撞檢測的載波偵聽多路訪問、自動重發請求)最小化爭用時間,並重新發送在數據包衝突中被破壞的數據。 [1] 

總線競爭存儲器映射輸入輸出

內存映射輸入輸出(英語:Memory-mapped I/O, MMIO,簡稱為內存映射IO),以及端口映射輸入輸出port-mapped I/O, PMIO,也叫作獨立輸入輸出isolated I/O),是PC機在中央處理器(CPU)和外部設備之間執行輸入輸出操作的兩種方法,這兩種方法互為補充。除此之外,執行輸入輸出操作也可以使用專用輸入輸出處理器(dedicated I/O processors)——這通常是指大型電腦上的通道輸入輸出(Channel I/O),這些專用處理器執行自有的指令集
內存映射IO(不要和內存映射文件的輸入輸出混淆)使用相同的地址總線來尋址內存和輸入輸出設備(簡稱IO設備),前提是IO設備上的設備內存和寄存器都已經被映射到內存空間的某個地址。這樣當CPU訪問某個地址的時候,可能是要訪問某一部分物理內存,也可能是要訪問IO設備上的內存。因此,設備內存也可以通過內存訪問指令來完成讀寫。每個IO設備監測CPU的地址總線,並且在發現CPU訪問被分配到本設備的地址區域的時候做出響應,建立數據總線和相應設備寄存器之間的連接。為了實現CPU對MMIO設備的訪問,相應的地址空間必須給這些設備保留, 並且不能再分配給系統物理內存。這可以是永久保留,也可以是暫時性的保留。通常來説X86架構都是永久保留的,而在Commodore 64中,由於採用了IO設備和普通內存之間的堆交換技術(bank switching),可以做到暫時性保留。 [2] 
參考資料
  • 1.    [編輯] 跳轉 ^ Tanenbaum, Andrew, Structured Computer Organization 3rd, Prentice Hall: 121–124, 1990, ISBN 0-13-852872-1
  • 2.    ARM Cortex-A Series Programmer's Guide. Literature number ARM DEN0013D. pp. 10–3.