并行實(shí)時(shí)處理系統(tǒng)中總線仲裁問題的研究及實(shí)現(xiàn)
目前,DSP(數(shù)字信號(hào)處理器)在信號(hào)處理領(lǐng)域,尤其是在雷達(dá)信號(hào)和圖象信號(hào)處理方面正在被廣泛的使用,許多信號(hào)處理板都采用DSP為核心處理芯片,然而,隨著對(duì)于信號(hào)處理板的處理能力要求越來越高,例如,對(duì)于高幀數(shù)、大尺寸的圖象序列的實(shí)時(shí)處理,往往要求每秒幾十億次的運(yùn)算能力,目前單片DSP的運(yùn)算能力不可能滿足其要求,通常需要信號(hào)處理板在設(shè)計(jì)時(shí)采用多DSP并行處理結(jié)構(gòu),以滿足系統(tǒng)對(duì)運(yùn)算量的要求。在這種多DSP并行處理結(jié)構(gòu)下,多個(gè)DSP之間通常通過共享總線來實(shí)現(xiàn)相互間或和外部設(shè)備的數(shù)據(jù)和控制/狀態(tài)字傳遞,這時(shí),系統(tǒng)需要建立一種總線仲裁機(jī)制,來保證多個(gè)DSP在使用總線時(shí)不會(huì)發(fā)生沖突和競(jìng)爭(zhēng),尤其是在實(shí)時(shí)處理環(huán)境下,更有必要保證總線控制權(quán)在各個(gè)DSP之間可靠的轉(zhuǎn)移,為處理器間實(shí)時(shí)數(shù)據(jù)交換提供保證。如果數(shù)據(jù)傳輸一旦發(fā)生故障,將會(huì)導(dǎo)致系統(tǒng)運(yùn)行遲滯或癱瘓。因此,總線仲裁機(jī)制設(shè)計(jì)的合理與否,會(huì)直接影響到系統(tǒng)運(yùn)行效率和可靠性。所以在系統(tǒng)設(shè)計(jì)中,要充分考慮到總線操作問題,這是一個(gè)十分重要的環(huán)節(jié)。
2、多DSP并行處理系統(tǒng)結(jié)構(gòu)介紹
系統(tǒng)結(jié)構(gòu)如圖1所示:
該系統(tǒng)是一種分布式多指令,多數(shù)據(jù)(MIMD)處理系統(tǒng)。其中功能模塊包括:多個(gè)DSP構(gòu)成的處理器模塊、共享存儲(chǔ)器模塊、輸入/輸出設(shè)備、主機(jī)。這些模塊都通過共享總線相連接。其中每個(gè)DSP中又包括運(yùn)算單元、片內(nèi)存儲(chǔ)器、片內(nèi)輸入/輸出單元、仲裁邏輯單元以及總線接口。由于每個(gè)DSP中有容量較大的局部存儲(chǔ)器,所以各DSP的指令和數(shù)據(jù)基本上從各自的局部存儲(chǔ)器里存取,這樣就會(huì)大大減輕共享總線的負(fù)荷。
系統(tǒng)工作的方式為主從協(xié)同方式,即系統(tǒng)啟動(dòng)后,主處理器優(yōu)先權(quán)最大,由它控制總線,負(fù)責(zé)整個(gè)系統(tǒng)的初始化、數(shù)據(jù)程序配置、與主機(jī)通信等,并參與運(yùn)算工作。各個(gè)從片的優(yōu)先權(quán)要比主片小,通常只參與運(yùn)算工作。
如果在將DSP之間通過其他外部端口如鏈路口相互鏈接,那么將使整個(gè)系統(tǒng)體現(xiàn)出一種柔性結(jié)構(gòu),即處理系統(tǒng)結(jié)構(gòu)和工作方式可以通過軟件設(shè)置來實(shí)現(xiàn)變更而無需更改硬件設(shè)計(jì)。
例如,通過軟件設(shè)置,可以定義各個(gè)DSP間相互工作協(xié)調(diào)方式,如并行與串行的轉(zhuǎn)換;可以方便的分配各個(gè)DSP的工作量,并可以實(shí)現(xiàn)主從處理器間的調(diào)換,根據(jù)需要將從處理器升級(jí)為主處理器,負(fù)責(zé)整個(gè)系統(tǒng)的調(diào)配。在系統(tǒng)偵測(cè)到某個(gè)DSP發(fā)生故障時(shí),可以通過軟件設(shè)置,隔離有故障的處理器,從而實(shí)現(xiàn)系統(tǒng)的帶故障運(yùn)行,提高了整個(gè)系統(tǒng)的可靠性。這些操作都將涉及到對(duì)系統(tǒng)共享總線的操作,其中會(huì)遇到的問題將在下面進(jìn)行描述。
3、總線操作問題的分析和解決思路
3.1總線操作問題的描述
在上面圖1所示的系統(tǒng)中,多片DSP工作時(shí),通常需要進(jìn)行處理器間數(shù)據(jù),狀態(tài)/控制字的相互傳遞,以及和主機(jī)交換數(shù)據(jù),向共享存儲(chǔ)器存取數(shù)據(jù),從輸入設(shè)備輸入數(shù)據(jù),向輸出設(shè)備發(fā)送數(shù)據(jù)等操作,這些操作將不可避免地會(huì)使用到總線。尤其在實(shí)時(shí)環(huán)境下,當(dāng)這些操作被要求在某個(gè)有限的時(shí)段內(nèi)必須完成。這中情況下的的總線操作就遇到了如下的問題:
(1)多個(gè)占用總線的操作同時(shí)發(fā)生時(shí),如果調(diào)配不當(dāng),常常會(huì)發(fā)生總線沖突,如何避免總線沖突?
(2)當(dāng)一個(gè)操作占用總線時(shí)間過長,其操作的總線請(qǐng)求得不到響應(yīng),往往導(dǎo)致總線死鎖情況的發(fā)生,應(yīng)采用什么措施來解決總線死鎖問題?
(3)當(dāng)某個(gè)緊急情況發(fā)生,需要立刻占用總線,但當(dāng)前的操作還未釋放總線,如何使這個(gè)緊急的操作在最短時(shí)間內(nèi)獲得總線的控制權(quán)?
上述問題在系統(tǒng)板上運(yùn)行時(shí)的具體表現(xiàn)就是程序運(yùn)行的不穩(wěn)定,時(shí)常意外死機(jī)。要解決以上問題,就必須在系統(tǒng)中建立一個(gè)可靠的總線仲裁機(jī)制,合理的調(diào)度各種總線操作,使其不發(fā)生沖突,快速、正確的完成各自的工作。接下來就對(duì)多處理器系統(tǒng)中總線仲裁機(jī)制進(jìn)行一下分析。
評(píng)論