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