總線控制
主要為規定接收信息部件的總線使用權問題;主要包括判優控制和通信控制;
總線判優控制
總線上的連接設備按對總線有無控制功能可以分為主設備和從設備,主設備對總線有控制權,從設備只能響應主設備發來的總線命令,對總線沒有控制權。總線上的信息傳送是由主設備發出總線請求信號,如果多個設備同時請求,就需要總線控制器的判優,仲裁邏輯確定哪個設備能使用總線,只有擁有控制權的設備才能傳輸數據;
判優控制可分為:集中式判優和分散式判優;
鏈式查詢
控制總線中有三根線用於總線控制(總線忙BS,總線請求BR,總線同意BG),其中BG是串行一個IO接口一個IO接口的下送,如果BG到達的接口有總線請求,就不再往下送,意味着該接口獲得總線控制權,並建立BS信號,表示它占用了總線,可以看到,最近的優先級最高;它的特點是:只需要幾根線就能按一定次序實現總線控制,並且容易擴充設備,但是電路故障敏感,且優先級低的設備很難獲得控制權;
計數器定時查詢
控制部件接收到BR送來的總線請求信號后,在總線未被占用BS=0,總線計數器開始計數,並通過設備地址線,向各設備發送一組地址信號。當某個請求占用總線的設備地址與計數器一致時,便獲得總線控制權,終止計數;其特點是:計數可以從0開始,此時如果設備優先級固定,設備優先級0,1,...n的順序降序排列,且固定不變。計數器也可以從上次計數終點開始,是一種循環的方式,此時設備使用總線優先級一樣,這種方式對電路故障敏感度不如鏈式查詢,但增加了控制線,控制也較為復雜;
獨立請求查詢
每台設備有BR和BG線,當設備發出總線請求時,控制器中有排隊電路,可根據優先級確定響應哪一台設備;特點是:響應快,優先級靈活,但是控制線數量較多,總線控制更為復雜。
鏈式查詢僅用兩根線確定總線控制權;
計數查詢大致用logn根線,n為最大設備數;
獨立請求需要2n根線;
通信控制
通常完成一次總線操作的時間稱為總線周期。可以分為4個階段:
- 申請分配階段:由主設備提出申請,經仲裁機構決定下一傳輸周期總線的使用者;
- 尋址階段:取得使用權的主設備通過總線發出本次要訪問的從設備的地址和命令,啟動從設備;
- 傳數階段:主設備和從設備進行數據交換,數據由源模塊發出,經數據線流入目的從設備;
- 結束階段:主設備有關信息從總線移除,讓出總線使用權;
總線通信控制主要解決通信雙方如何獲知傳輸開始,傳輸結束及如何協調和配合;常見的通信方式有:同步通信,異步通信,半同步通信,分離式通信;下面主要講解同步和異步通信。
同步通信
通信雙方由統一時標控制數據傳送稱為同步通信,時標通常由CPU的總線控制器發出,到總線上所有的部件,也可以由各部件各自的時序發生器發出,但必須總線控制器發出的時鍾信號對其進行同步;
如以下為某輸入設備向CPU傳輸的同步通信過程:
CPU在T1上升沿發出地址信息,T2上升沿發出讀命令,與地址信息相符合的輸入設備按命令進行一系列內部操作,且在T3上升沿前將CPU所需數據送到數據總線上,CPU在T3時鍾周期內將數據送到其寄存器,在T4上升沿撤銷讀命令,輸入設備不再向數據總線傳輸數據。
這種通信方式有點在於規定明確,統一,模塊間配合簡單一致,缺點是從模塊時間配合屬於強制性“同步”,必須在限定時間內完成規定的要求。並且對所有從模塊都用同一限時,這就造成對於不同速度的部件而言,必須按照最慢速度部件來設計公共時鍾,嚴重影響了工作效率;
同步通信一般用於總線長度較短,各部件存取時間比較一致的場合,總線傳輸周期越短,數據位數越多,直接影響總線數據傳輸速率;
異步通信
它沒有公共的時鍾標准,不要求所有部件嚴格的統一操作時間,而是采用應答的方式(握手),即主模塊發出請求后,一直等待從模塊反饋的響應信號后,才開始通信,因此要求主從模塊之間增加兩條應答線。
異步通信可分為:不互鎖,半互鎖,全互鎖
主模塊發出請求信號后,不必等到從模塊的應答信號,而是經過一段時間后,確認從模塊已收到請求信號后,撤銷其請求信號。從模塊接收到信號后,條件允許下發出應答信號,並經過一段時間確認主模塊收到應答信號后,自動撤銷回答信號,可見並無互鎖關系。例如:CPU向主存寫信息,CPU先給地址信號,寫命令和寫入數據;
主模塊發出請求信號后,必須等待從模塊的應答信號,再主動撤銷其請求信號,有互鎖關系,而從模塊接收到請求信號后發出回答信號,但是不必等到獲知主模塊的請求信號已經撤銷,而是隔一段時間后,主動撤銷其回答信號,無互鎖關系。由於一方有互鎖關系,一方沒有互鎖關系,所以稱為半互鎖。
主模塊發出請求信號,必須等待從模塊回答后再撤銷請求信號;從模塊發出回答信號后,必須獲知主模塊請求信號撤銷后,再撤銷其回答信號,雙方存在互鎖關系。