嵌入式多媒體應(yīng)用的多處理器核軟件設(shè)計(jì)框架
在GOP級(jí)處理架構(gòu)中,每個(gè)處理器核都處理多個(gè)順序的數(shù)據(jù)幀。幀級(jí)處理結(jié)構(gòu)和GOP處理結(jié)構(gòu)之間的區(qū)別在于幀級(jí)處理結(jié)構(gòu)是在幀間完成空域劃分,而GOP級(jí)結(jié)構(gòu)則通過(guò)時(shí)域(幀序列)劃分實(shí)現(xiàn)并行處理。對(duì)于GOP數(shù)據(jù)訪問(wèn)模式,相關(guān)性存在于一組數(shù)據(jù)幀內(nèi)部。在兩組數(shù)據(jù)幀之間不存在數(shù)據(jù)相關(guān)性,因此處理器核可以相互獨(dú)立地對(duì)每組數(shù)據(jù)幀進(jìn)行處理。圖6說(shuō)明了該結(jié)構(gòu)的數(shù)據(jù)流模型,與幀級(jí)處理結(jié)構(gòu)類似,系統(tǒng)可將多幀數(shù)據(jù)塊傳送至處理器核的L1處理器。為了有效利用外部存儲(chǔ)器的交叉存儲(chǔ)組結(jié)構(gòu),系統(tǒng)在處理器核間均衡的劃分存儲(chǔ)區(qū)。ADSP-BF561的每一個(gè)外部存儲(chǔ)區(qū)都支持多至四個(gè)的內(nèi)部SDRAM存儲(chǔ)器組。這一結(jié)構(gòu)的應(yīng)用實(shí)例有編/解碼算法,如MPEG-2/4。
在實(shí)際的應(yīng)用中,系統(tǒng)可能運(yùn)用多種算法來(lái)處理數(shù)據(jù)流,而每種算法都可能用到不同的數(shù)據(jù)訪問(wèn)模式。這種情況下,則可以將這幾種軟件結(jié)構(gòu)結(jié)合起來(lái)完成一個(gè)特殊的應(yīng)用。為利用多核結(jié)構(gòu),可采用流水處理來(lái)實(shí)現(xiàn)算法的并行操作,但這種并行操作是不對(duì)稱的,因?yàn)椴煌幚砥骱松峡赡軋?zhí)行的計(jì)算是不同的。然而,系統(tǒng)可以分配一些其它的任務(wù)到處理器核的空閑指令上,在保持靈活性的同時(shí)也達(dá)到了處理器核的工作量平衡。圖7說(shuō)明了行級(jí)處理和宏塊處理相結(jié)合的處理結(jié)構(gòu)中的數(shù)據(jù)流模型。
在某些其他應(yīng)用中,多個(gè)數(shù)據(jù)塊之間也會(huì)存在數(shù)據(jù)相關(guān)性,數(shù)據(jù)訪問(wèn)模式仍然是可預(yù)測(cè)的,但它擴(kuò)展到了一個(gè)宏塊或一個(gè)行的粒度之外。例如,運(yùn)動(dòng)窗口搜尋就可能使用幾個(gè)相鄰的宏塊。雖然數(shù)據(jù)訪問(wèn)模式仍然是可預(yù)測(cè)的,但系統(tǒng)在算法迭代過(guò)程中要訪問(wèn)多個(gè)數(shù)據(jù)塊。在這種情況下,您可以對(duì)軟件框架進(jìn)行修正,以實(shí)現(xiàn)有效的并行操作。例如,如果多行間存在相關(guān)性,可以通過(guò)調(diào)整行處理結(jié)構(gòu)將N個(gè)連續(xù)行的幀單元傳送到每個(gè)處理器核的L1存儲(chǔ)器中。利用類似的方法,還可以對(duì)宏塊處理結(jié)構(gòu)進(jìn)行擴(kuò)展,從L2存儲(chǔ)器中將不止一個(gè)宏塊送入內(nèi)部L1存儲(chǔ)器。
軟件框架分析
為了對(duì)雙核處理的軟件框架進(jìn)行評(píng)估,AD公司利用數(shù)據(jù)流模型率先開(kāi)發(fā)了一款單核應(yīng)用軟件,并與雙核實(shí)現(xiàn)進(jìn)行了對(duì)比。參考文獻(xiàn)討論了單核模型的更多細(xì)節(jié)。Blackfin獨(dú)有的系統(tǒng)優(yōu)化技術(shù)完全可以有效的使用可用帶寬。 為了分析簡(jiǎn)單,公司只對(duì)基本軟件架構(gòu)的處理速度做了對(duì)比,而沒(méi)有考慮幾種組合的軟件架構(gòu)。
所謂周期是指為了滿足NTSC(國(guó)家電視系統(tǒng)委員會(huì))視頻輸入的實(shí)時(shí)需要,用于處理數(shù)據(jù)流的處理器核計(jì)算周期。對(duì)于一個(gè)以600MHz運(yùn)行的處理器核,為了滿足實(shí)時(shí)約束條件,處理每一像素可用的周期數(shù)為44核周期/像素。任何處理器核訪問(wèn)流數(shù)據(jù)都只需一個(gè)單內(nèi)核周期,因?yàn)樗械臄?shù)據(jù)訪問(wèn)都是對(duì)L1存儲(chǔ)器的訪問(wèn)。該周期數(shù)沒(méi)有包括中斷引起的延遲。
如表1所示,雙核處理結(jié)構(gòu)將所有軟件結(jié)構(gòu)的處理速度都有效提高了兩倍。表中還說(shuō)明了L1存儲(chǔ)器對(duì)于每個(gè)處理器核的可用容量,以及每種軟件架構(gòu)所需的共享存儲(chǔ)空間。這些軟件架構(gòu)應(yīng)用ADi公司的DD/SSL(設(shè)備驅(qū)動(dòng)程序/系統(tǒng)服務(wù)庫(kù))實(shí)現(xiàn)對(duì)外設(shè)和數(shù)據(jù)的管理。
評(píng)論