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

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

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

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