并行實時處理系統中總線仲裁問題的研究及實現
3.2多處理器總線仲裁機制的分析
總線仲裁機制通常包括總線仲裁策略和總線仲裁方式兩方面內容。仲裁機制的合理、靈活和快捷,以及可實現性和可擴展性是評價一個總線仲裁機制的準則。
多處理器系統中總線仲裁方式通常有集中式仲裁和分布式仲裁兩種方式。所謂集中式仲裁,是指總線仲裁部件的功能由一個獨立于各個模塊的附加部件集中完成,而如果總線仲裁功能由不斷改變的的總線當前控制者來完成和需要各個模塊共同完成,則稱之為分布式仲裁。
集中式仲裁方式結構如圖2所示

每個模塊都有獨立的請求線和識別線與公共的仲裁部件連接。仲裁部件根據相應的總線仲裁策略來選定下一個總線控制者。集中式仲裁的優點在于,這種仲裁方式電路實現較為簡單,仲裁器件延時小,具有高速的特點。但是由于整個結構中只采用一個仲裁部件,集中式仲裁方式容錯能力較差,一旦仲裁部件發生故障,整個總線仲裁模塊將不能工作,而且一旦設計完成,它將不能再添加新的總線申請者,可擴展能力差,而這兩點正是系統性能的瓶頸。
分布式仲裁方式結構如圖3所示,每個模塊都具有一相對獨立的仲裁部件,但每個模塊的仲裁部件只輸出識別線送本模塊。所有仲裁部件電路基本相同,分布式仲裁方式所需電路比集中式仲裁方式要較為復雜,而且仲裁速度沒有集中式仲裁速度快,但它具有下列明顯的優點:

(1)只需要較少的物理連線來執行仲裁算法。
(2)當其中一個仲裁部件發生故障時,不影響其他仲裁部件的工作,增加了系統的可靠性。
(3)仲裁器的狀態可以在總線上監視到,這將有助于系統故障的診斷。
總線仲裁策略中,最常用的是基于基于優先權的仲裁策略。所謂基于優先權的策略是指系統給每一個總線申請者指定一個優先級編號,當多個總線申請同時發生時,總線仲裁邏輯 將按照總線申請者優先級編號來分配總線的使用權。實際中常用的有固定優先級策略和循環優先級策略。
固定優先級策略是將多個仲裁申請者的優先級按一定順序固定下來,總線仲裁邏輯按照該這個固定的優先級順序來分配某一時刻的總線使用權。這種策略適合于多個處理器任務的復雜度和重要度不同,需要保證有重要任務的處理器優先占用總線的情況。循環優先級策略是指當占有總線的模塊一旦釋放總線,其優先級將自動變為最低,而優先級緊排其后的總線申請者將獲取總線控制權,并且它們的優先級依次上升,在長時間段中,這樣可以保證多個總線申請者的對總線申請的公平性。這種策略適用于多個處理器的工作任務相同,任務的重要程度也相似的情況。這兩種仲裁策略都會遇到如下的問題:
(1)當高優先級的處理器占用總線時間過長導致總線無法釋放時,其他優先級低的處理器將無法獲得總線控制權。
(2)當優先級低的處理器出現緊急情況需要進行總線操作時,將無法及時占用總線。
3.3針對本系統的總線仲裁機制的解決方案
對于本文的多DSP并行處理系統(見圖1),由于DSP中內置有獨立的仲裁邏輯部件,再加上系統上各個功能模塊都通過總線相連接,因此在總線操作上非常適合采用上面提到的分布式仲裁方式,而且電路實現上也較為簡便,幾乎不需要增加額外的器件。
在仲裁策略的選擇上,由于系統在工作時,必須指定一片處理器作為主處理器,由它來完成系統初始化,數據向從片分發與回收,與外部主機,設備通信等繁雜的任務,所以需要它在總線操作上優先級始終保持最高。而其它從處理器由于任務基本相同,且相對單一,所以從處理器的優先級可以被設定為比主處理器較低一級,并采用循環優先級策略,以保證其總線申請的公平性。這樣就構成了基于分布式并行仲裁方式下的優先級分層仲裁策略,優先級層可以根據具體的任務的重要程度分為多個層次。如圖4所示:

解決總線長時間占用導致總線死鎖的問題,可以采用設置總線占用時限的方式來解決。當某一處理器(包括主處理器在內)如果占用總線時間過長,而其它處理器又發出了總線請求,此時總線仲裁邏輯將讀取此時總線占用的時間,如果超過設定的時限,則將總線控制權自動從當前占用總線的處理器移交給其它申請總線的處理器中優先級最高的那片。從而避免了總線死鎖的問題。
解決低優先級處理器緊急請求占用總線的問題,可以通過處理器的中斷廣播來方式來實現。在當某一優先級低的處理器,如某一從片需要緊急占用總線,那么它向其他所有處理器發出占用總線的中斷請求,當其他從片收到該中斷請求后,將開始檢查自己是否占用總線,如果沒有占用總線,則繼續執行自己的任務,如果占用總線,則將總線控制權移交給提出申請的從處理器。當該從片完成自己的緊急任務后,將再次發出一個中斷信號,并將總線控制權歸還給原來的控制總線的處理器,重新獲得總線控制權的處理器將繼續執行原來未完成的任務。
這樣,上節所提到的兩個問題都得到了解決,滿足了實時環境下共享總線的多DSP系統的總線仲裁要求,并保證了總線仲裁的性能和可靠性。
4、具體設計實現
本文中的多DSP分布式實時并行處理系統采用AD公司的ADSP21160芯片作為其中心處理模塊。該芯片性能描述如下:
主頻: 100M Hz 雙運算單元。
數據總線64位,地址總線32位。(包括內部總線和外部總線)
內置雙端口SRAM,存儲空間4Mbit,分為兩個內存模塊。
外部端口包括2個串口,6個鏈路口,64位寬的外部口,一共14個DMA通道。
三套內部總線(PM DM總線和I/O總線)
最多支持6片處理器直接通過總線緊耦合互聯,由于其自身提供了較為必要的仲裁邏輯電路,所以幾乎不需要外加仲裁電路,這為設計帶來了很大的便利。
評論