匯流排仲裁

匯流排仲裁

系統中多個設備或模組可能同時申請對匯流排的使用權,為避免產生匯流排衝突,需由匯流排仲裁機構合理地控制和管理系統中需要占用匯流排的申請者,在多個申請者同時提出匯流排請求時,以一定的優先算法仲裁哪個應獲得對匯流排的使用權。

基本介紹

  • 中文名:匯流排仲裁
  • 外文名:bus arbitration
  • 方式:集中式匯流排仲裁等
  • 算法:優先算法仲裁
  • 目的:避免產生匯流排衝突
簡介,仲裁方式分類,匯流排分配技術,串聯優先權判別法,並聯優先權別判別法,循環優先權判別法,

簡介

匯流排上的設備一般分為匯流排主設備和匯流排從設備。匯流排主設備是指具有控制匯流排能力的模組,通常是CPU或以CPU為中心的邏輯模組,在獲得匯流排控制權之後能啟動數據信息的傳輸;與之相對應的匯流排從設備,是指能夠對匯流排上的數據請求做出回響,但本身不具備匯流排控制能力的模組。在早期的計算機系統中,一條匯流排上只有一個主設備,匯流排一直由它占用,技術簡單,實現也比較容易。
隨著套用的發展,主要是工業控制、科學計算的需求,多個主設備共享匯流排的情況越來越多,這對匯流排技術提出了新的要求。根據這類系統的特點,需要解決各個主設備之間資源爭用等問題,這使得匯流排的複雜性大為增加。
匯流排仲裁就是在多個匯流排主設備的環境中提出來的。在多處理機系統中,每個處理機都可以作為匯流排主設備,都要共享資源,它們都必須通過系統匯流排才能訪問其它資源,匯流排也可視為是一種重要的公共資源。由於每個處理機都會隨機地提出對匯流排使用的要求,這樣就可能發生匯流排競爭現象。為了防止多個處理機同時控制匯流排,就要在匯流排上設立一個處理上述匯流排競爭的機構,按優先權次序,合理地分配資源,這就是匯流排仲裁問題。用硬體來實現匯流排分配的邏輯電路稱為匯流排仲裁器(Bus Arbiter)。它的任務是回響匯流排請求,通過對分配過程的正確控制,達到最佳使用匯流排。
匯流排判優控制按照仲裁控制機構的設定可分為集中控制分散控制兩種。其中就集中控制而言,常用的匯流排仲裁方式有:菊花鏈仲裁、二維仲裁、同步通信方式、異步通信方式和半同步通信方式。
連線到匯流排上的功能模組有主動和被動兩種形態,CPU可以做主方也可以做從方,而存取器模組只能用作從方。主方可以啟動一個匯流排周期,而從方只能回響主方的請求。對多個主設備提出的占用匯流排請求,一般採用優先權或公平策略進行仲裁。

仲裁方式分類

按照匯流排仲裁電路的位置不同,仲裁方式分為集中式仲裁和分散式仲裁兩類:
1.集中式匯流排仲裁的控制邏輯基本集中在一處,需要中央仲裁器,分為鏈式查詢方式、計數器定時查詢方式、獨立請求方式;
(1) 鏈式查詢方式
鏈式查詢方式的主要特點:匯流排授權信號BG串列地從一個I/O接口傳送到下一個I/O接口。假如BG到達的接口無匯流排請求,則繼續往下查詢;假如BG到達的接口有匯流排請求,BG信號便不再往下查詢,該I/O接口獲得了匯流排控制權。離中央仲裁器最近的設備具有最高優先權,通過接口的優先權排隊電路來實現。
鏈式查詢方式的優點: 只用很少幾根線就能按一定優先次序實現匯流排仲裁,很容易擴充設備。
鏈式查詢方式的缺點: 對詢問鏈的電路故障很敏感,如果第i個設備的接口中有關鏈的電路有故障,那么第i個以後的設備都不能進行工作。查詢鏈的優先權是固定的,如果優先權高的設備出現頻繁的請求時,優先權較低的設備可能長期不能使用匯流排。
(2)計數器定時查詢方式
匯流排上的任一設備要求使用匯流排時,通過BR線發出匯流排請求。中央仲裁器接到請求信號以後,在BS線為“0”的情況下讓計數器開始計數,計數值通過一組地址線發向各設備。每個設備接口都有一個設備地址判別電路,當地址線上的計數值與請求匯流排的設備地址相一致時,該設備 置“1”BS線,獲得了匯流排使用權,此時中止計數查詢。
每次計數可以從“0”開始,也可以從中止點開始。如果從“0”開始,各設備的優先次序與鏈式查詢法相同,優先權的順序是固定的。如果從中止點開始,則每個設備使用匯流排的優先權相等。
計數器的初值也可用程式來設定,這可以方便地改變優先次序,但這種靈活性是以增加線數為代價的。
(3)獨立請求方式
每一個共享匯流排的設備均有一對匯流排請求線BRi和匯流排授權線BGi。當設備要求使用匯流排時,便發出該設備的請求信號。中央仲裁器中的排隊電路決定首先回響哪個設備的請求,給設備以授權信號BGi。
獨立請求方式的優點:回響時間快,確定優先回響的設備所花費的時間少,用不著一個設備接一個設備地查詢。其次,對優先次序的控制相當靈活,可以預先固定也可以通過程式來改變優先次序;還可以用禁止(禁止)某個請求的辦法,不回響來自無效設備的請求。
2.分散式仲裁不需要中央仲裁器,每個潛在的主方功能模組都有自己的仲裁號和仲裁器。當它們有匯流排請求時,把它們唯一的仲裁號傳送到共享的仲裁匯流排上,每個仲裁器將仲裁匯流排上得到的號與自己的號進行比較。如果仲裁匯流排上的號大,則它的匯流排請求不予回響,並撤消它的仲裁號。最後,獲勝者的仲裁號保留在仲裁匯流排上。顯然,分散式仲裁是以優先權仲裁策略為基礎。

匯流排分配技術

對匯流排仲裁問題的解決是以優先權(又稱優先權)的概念為基礎的,通常有三種匯流排分配的優先權技術──串聯、並聯和循環。

串聯優先權判別法

匯流排仲裁
圖中有Ⅰ、Ⅱ、…、N等N個模組,都可作為匯流排主設備,各個模組中的“請求”輸出端採用集電極(漏極)開路門,“請求”端用“線或”方式接到仲裁器“請求”輸入端,每個模組的“忙”端同仲裁器的“匯流排忙”狀態線相連,這是一個輸入輸出雙向信號線。當一個模組占有匯流排控制權時,該模組的“忙”信號端成為輸出端,向系統的“忙”狀態線送出有效信號(例如低電平)。其它模組的“忙”信號端全部作為輸入端工作,檢測“忙”線上狀態。一個模組若要提出匯流排“請求”,其必要條件是選檢測到“忙”信號輸入端處於無效狀態。與此相應,仲裁器接受匯流排請求輸入的條件,也是“忙”線處於無效狀態。
進一步可以規定仲裁器輸出“允許”信號的條件首先是“忙”線無效,表示匯流排沒有被任一模組占用;其次才是有模組提出了匯流排請求。“允許”信號在連結的模組之間傳輸,直到提出匯流排“請求”的那個模組為止。這裡用“允許”信號的邊沿觸發,它把共享匯流排的各模組要使用匯流排時,便發生信號禁止後面的部件使用匯流排。通過這種方式,就確定了請求匯流排各模組中優先權最高的模組。顯然,在這種方式中,當優先權高的模組頻繁請求時,優先權別低的模組可能很長時間都無法獲得匯流排。一旦有模組占用匯流排後,“允許”信號就不再存在。

並聯優先權別判別法

匯流排仲裁
圖中有N個模組,都可作為匯流排主設備,每個模組都有匯流排“請求”線和匯流排“允許”線,模組之間是獨立的,沒有任何控制關係。這些信號接到匯流排優先控制器(仲裁器),任一模組使用匯流排,都要通過“請求”線向仲裁器發出“請求”信號。仲裁器一般由一個優先權編碼器和一個解碼器組成。該電路接到某個模組或多個模組發來的請求信號後,首先優先權編碼器進行編碼,然後由解碼器產生相應的輸出信號,發往請求匯流排模組中優先權最高的模組,並把“允許”信號送給該模組。被選中的模組撤銷匯流排“請求”信號,輸出匯流排“忙”信號,通知其餘模組,匯流排已經占用。在一個模組占用匯流排的傳輸結束以後,就把匯流排“忙”信號撤銷,仲裁器也撤銷“允許”信號。根據各請求輸入的情況,仲裁器重新分配匯流排控制權。

循環優先權判別法

循環優先權判別方法類似於並聯優先權判別方法,只是其中的優先權是動態分配的,原來的優先權編碼器由一個更為複雜的電路代替,該電路把占用匯流排的優先權在發出匯流排請求的那些模組之間循環移動,從而使每個匯流排模組使用匯流排的機會相同。

相關詞條

熱門詞條

聯絡我們