并行實時處理系統(tǒng)中總線仲裁問題的研究及實現(xiàn)
3.2多處理器總線仲裁機(jī)制的分析
總線仲裁機(jī)制通常包括總線仲裁策略和總線仲裁方式兩方面內(nèi)容。仲裁機(jī)制的合理、靈活和快捷,以及可實現(xiàn)性和可擴(kuò)展性是評價一個總線仲裁機(jī)制的準(zhǔn)則。
多處理器系統(tǒng)中總線仲裁方式通常有集中式仲裁和分布式仲裁兩種方式。所謂集中式仲裁,是指總線仲裁部件的功能由一個獨立于各個模塊的附加部件集中完成,而如果總線仲裁功能由不斷改變的的總線當(dāng)前控制者來完成和需要各個模塊共同完成,則稱之為分布式仲裁。
集中式仲裁方式結(jié)構(gòu)如圖2所示
每個模塊都有獨立的請求線和識別線與公共的仲裁部件連接。仲裁部件根據(jù)相應(yīng)的總線仲裁策略來選定下一個總線控制者。集中式仲裁的優(yōu)點在于,這種仲裁方式電路實現(xiàn)較為簡單,仲裁器件延時小,具有高速的特點。但是由于整個結(jié)構(gòu)中只采用一個仲裁部件,集中式仲裁方式容錯能力較差,一旦仲裁部件發(fā)生故障,整個總線仲裁模塊將不能工作,而且一旦設(shè)計完成,它將不能再添加新的總線申請者,可擴(kuò)展能力差,而這兩點正是系統(tǒng)性能的瓶頸。
分布式仲裁方式結(jié)構(gòu)如圖3所示,每個模塊都具有一相對獨立的仲裁部件,但每個模塊的仲裁部件只輸出識別線送本模塊。所有仲裁部件電路基本相同,分布式仲裁方式所需電路比集中式仲裁方式要較為復(fù)雜,而且仲裁速度沒有集中式仲裁速度快,但它具有下列明顯的優(yōu)點:
(1)只需要較少的物理連線來執(zhí)行仲裁算法。
(2)當(dāng)其中一個仲裁部件發(fā)生故障時,不影響其他仲裁部件的工作,增加了系統(tǒng)的可靠性。
(3)仲裁器的狀態(tài)可以在總線上監(jiān)視到,這將有助于系統(tǒng)故障的診斷。
總線仲裁策略中,最常用的是基于基于優(yōu)先權(quán)的仲裁策略。所謂基于優(yōu)先權(quán)的策略是指系統(tǒng)給每一個總線申請者指定一個優(yōu)先級編號,當(dāng)多個總線申請同時發(fā)生時,總線仲裁邏輯 將按照總線申請者優(yōu)先級編號來分配總線的使用權(quán)。實際中常用的有固定優(yōu)先級策略和循環(huán)優(yōu)先級策略。
固定優(yōu)先級策略是將多個仲裁申請者的優(yōu)先級按一定順序固定下來,總線仲裁邏輯按照該這個固定的優(yōu)先級順序來分配某一時刻的總線使用權(quán)。這種策略適合于多個處理器任務(wù)的復(fù)雜度和重要度不同,需要保證有重要任務(wù)的處理器優(yōu)先占用總線的情況。循環(huán)優(yōu)先級策略是指當(dāng)占有總線的模塊一旦釋放總線,其優(yōu)先級將自動變?yōu)樽畹?,而?yōu)先級緊排其后的總線申請者將獲取總線控制權(quán),并且它們的優(yōu)先級依次上升,在長時間段中,這樣可以保證多個總線申請者的對總線申請的公平性。這種策略適用于多個處理器的工作任務(wù)相同,任務(wù)的重要程度也相似的情況。這兩種仲裁策略都會遇到如下的問題:
(1)當(dāng)高優(yōu)先級的處理器占用總線時間過長導(dǎo)致總線無法釋放時,其他優(yōu)先級低的處理器將無法獲得總線控制權(quán)。
(2)當(dāng)優(yōu)先級低的處理器出現(xiàn)緊急情況需要進(jìn)行總線操作時,將無法及時占用總線。
3.3針對本系統(tǒng)的總線仲裁機(jī)制的解決方案
對于本文的多DSP并行處理系統(tǒng)(見圖1),由于DSP中內(nèi)置有獨立的仲裁邏輯部件,再加上系統(tǒng)上各個功能模塊都通過總線相連接,因此在總線操作上非常適合采用上面提到的分布式仲裁方式,而且電路實現(xiàn)上也較為簡便,幾乎不需要增加額外的器件。
在仲裁策略的選擇上,由于系統(tǒng)在工作時,必須指定一片處理器作為主處理器,由它來完成系統(tǒng)初始化,數(shù)據(jù)向從片分發(fā)與回收,與外部主機(jī),設(shè)備通信等繁雜的任務(wù),所以需要它在總線操作上優(yōu)先級始終保持最高。而其它從處理器由于任務(wù)基本相同,且相對單一,所以從處理器的優(yōu)先級可以被設(shè)定為比主處理器較低一級,并采用循環(huán)優(yōu)先級策略,以保證其總線申請的公平性。這樣就構(gòu)成了基于分布式并行仲裁方式下的優(yōu)先級分層仲裁策略,優(yōu)先級層可以根據(jù)具體的任務(wù)的重要程度分為多個層次。如圖4所示:
解決總線長時間占用導(dǎo)致總線死鎖的問題,可以采用設(shè)置總線占用時限的方式來解決。當(dāng)某一處理器(包括主處理器在內(nèi))如果占用總線時間過長,而其它處理器又發(fā)出了總線請求,此時總線仲裁邏輯將讀取此時總線占用的時間,如果超過設(shè)定的時限,則將總線控制權(quán)自動從當(dāng)前占用總線的處理器移交給其它申請總線的處理器中優(yōu)先級最高的那片。從而避免了總線死鎖的問題。
解決低優(yōu)先級處理器緊急請求占用總線的問題,可以通過處理器的中斷廣播來方式來實現(xiàn)。在當(dāng)某一優(yōu)先級低的處理器,如某一從片需要緊急占用總線,那么它向其他所有處理器發(fā)出占用總線的中斷請求,當(dāng)其他從片收到該中斷請求后,將開始檢查自己是否占用總線,如果沒有占用總線,則繼續(xù)執(zhí)行自己的任務(wù),如果占用總線,則將總線控制權(quán)移交給提出申請的從處理器。當(dāng)該從片完成自己的緊急任務(wù)后,將再次發(fā)出一個中斷信號,并將總線控制權(quán)歸還給原來的控制總線的處理器,重新獲得總線控制權(quán)的處理器將繼續(xù)執(zhí)行原來未完成的任務(wù)。
這樣,上節(jié)所提到的兩個問題都得到了解決,滿足了實時環(huán)境下共享總線的多DSP系統(tǒng)的總線仲裁要求,并保證了總線仲裁的性能和可靠性。
4、具體設(shè)計實現(xiàn)
本文中的多DSP分布式實時并行處理系統(tǒng)采用AD公司的ADSP21160芯片作為其中心處理模塊。該芯片性能描述如下:
主頻: 100M Hz 雙運算單元。
數(shù)據(jù)總線64位,地址總線32位。(包括內(nèi)部總線和外部總線)
內(nèi)置雙端口SRAM,存儲空間4Mbit,分為兩個內(nèi)存模塊。
外部端口包括2個串口,6個鏈路口,64位寬的外部口,一共14個DMA通道。
三套內(nèi)部總線(PM DM總線和I/O總線)
最多支持6片處理器直接通過總線緊耦合互聯(lián),由于其自身提供了較為必要的仲裁邏輯電路,所以幾乎不需要外加仲裁電路,這為設(shè)計帶來了很大的便利。
評論