并行實(shí)時(shí)處理系統中總線(xiàn)仲裁問(wèn)題的研究及實(shí)現
目前,DSP(數字信號處理器)在信號處理領(lǐng)域,尤其是在雷達信號和圖象信號處理方面正在被廣泛的使用,許多信號處理板都采用DSP為核心處理芯片,然而,隨著(zhù)對于信號處理板的處理能力要求越來(lái)越高,例如,對于高幀數、大尺寸的圖象序列的實(shí)時(shí)處理,往往要求每秒幾十億次的運算能力,目前單片DSP的運算能力不可能滿(mǎn)足其要求,通常需要信號處理板在設計時(shí)采用多DSP并行處理結構,以滿(mǎn)足系統對運算量的要求。在這種多DSP并行處理結構下,多個(gè)DSP之間通常通過(guò)共享總線(xiàn)來(lái)實(shí)現相互間或和外部設備的數據和控制/狀態(tài)字傳遞,這時(shí),系統需要建立一種總線(xiàn)仲裁機制,來(lái)保證多個(gè)DSP在使用總線(xiàn)時(shí)不會(huì )發(fā)生沖突和競爭,尤其是在實(shí)時(shí)處理環(huán)境下,更有必要保證總線(xiàn)控制權在各個(gè)DSP之間可靠的轉移,為處理器間實(shí)時(shí)數據交換提供保證。如果數據傳輸一旦發(fā)生故障,將會(huì )導致系統運行遲滯或癱瘓。因此,總線(xiàn)仲裁機制設計的合理與否,會(huì )直接影響到系統運行效率和可靠性。所以在系統設計中,要充分考慮到總線(xiàn)操作問(wèn)題,這是一個(gè)十分重要的環(huán)節。
2、多DSP并行處理系統結構介紹
系統結構如圖1所示:

該系統是一種分布式多指令,多數據(MIMD)處理系統。其中功能模塊包括:多個(gè)DSP構成的處理器模塊、共享存儲器模塊、輸入/輸出設備、主機。這些模塊都通過(guò)共享總線(xiàn)相連接。其中每個(gè)DSP中又包括運算單元、片內存儲器、片內輸入/輸出單元、仲裁邏輯單元以及總線(xiàn)接口。由于每個(gè)DSP中有容量較大的局部存儲器,所以各DSP的指令和數據基本上從各自的局部存儲器里存取,這樣就會(huì )大大減輕共享總線(xiàn)的負荷。
系統工作的方式為主從協(xié)同方式,即系統啟動(dòng)后,主處理器優(yōu)先權最大,由它控制總線(xiàn),負責整個(gè)系統的初始化、數據程序配置、與主機通信等,并參與運算工作。各個(gè)從片的優(yōu)先權要比主片小,通常只參與運算工作。
如果在將DSP之間通過(guò)其他外部端口如鏈路口相互鏈接,那么將使整個(gè)系統體現出一種柔性結構,即處理系統結構和工作方式可以通過(guò)軟件設置來(lái)實(shí)現變更而無(wú)需更改硬件設計。
例如,通過(guò)軟件設置,可以定義各個(gè)DSP間相互工作協(xié)調方式,如并行與串行的轉換;可以方便的分配各個(gè)DSP的工作量,并可以實(shí)現主從處理器間的調換,根據需要將從處理器升級為主處理器,負責整個(gè)系統的調配。在系統偵測到某個(gè)DSP發(fā)生故障時(shí),可以通過(guò)軟件設置,隔離有故障的處理器,從而實(shí)現系統的帶故障運行,提高了整個(gè)系統的可靠性。這些操作都將涉及到對系統共享總線(xiàn)的操作,其中會(huì )遇到的問(wèn)題將在下面進(jìn)行描述。
3、總線(xiàn)操作問(wèn)題的分析和解決思路
3.1總線(xiàn)操作問(wèn)題的描述
在上面圖1所示的系統中,多片DSP工作時(shí),通常需要進(jìn)行處理器間數據,狀態(tài)/控制字的相互傳遞,以及和主機交換數據,向共享存儲器存取數據,從輸入設備輸入數據,向輸出設備發(fā)送數據等操作,這些操作將不可避免地會(huì )使用到總線(xiàn)。尤其在實(shí)時(shí)環(huán)境下,當這些操作被要求在某個(gè)有限的時(shí)段內必須完成。這中情況下的的總線(xiàn)操作就遇到了如下的問(wèn)題:
(1)多個(gè)占用總線(xiàn)的操作同時(shí)發(fā)生時(shí),如果調配不當,常常會(huì )發(fā)生總線(xiàn)沖突,如何避免總線(xiàn)沖突?
(2)當一個(gè)操作占用總線(xiàn)時(shí)間過(guò)長(cháng),其操作的總線(xiàn)請求得不到響應,往往導致總線(xiàn)死鎖情況的發(fā)生,應采用什么措施來(lái)解決總線(xiàn)死鎖問(wèn)題?
(3)當某個(gè)緊急情況發(fā)生,需要立刻占用總線(xiàn),但當前的操作還未釋放總線(xiàn),如何使這個(gè)緊急的操作在最短時(shí)間內獲得總線(xiàn)的控制權?
上述問(wèn)題在系統板上運行時(shí)的具體表現就是程序運行的不穩定,時(shí)常意外死機。要解決以上問(wèn)題,就必須在系統中建立一個(gè)可靠的總線(xiàn)仲裁機制,合理的調度各種總線(xiàn)操作,使其不發(fā)生沖突,快速、正確的完成各自的工作。接下來(lái)就對多處理器系統中總線(xiàn)仲裁機制進(jìn)行一下分析。
評論