嵌入式多媒體多核應(yīng)用軟件設(shè)計(jì)框架
圖4顯示了宏塊數(shù)據(jù)訪問模式的數(shù)據(jù)流模型,可以在兩個處理器核之間交替?zhèn)魉秃陦K。L2存儲器具有多個片段緩沖器,獨(dú)立的MDMA通道將宏塊從每個處理器核的L2存儲器傳輸?shù)絃1存儲器。L1存儲器也有多個緩神器,用以避免DMA與處理器核訪問總線的沖突。與行處理框架類似,該框架中處理器核A控制輸入視頻接口,處理器核B控制輸出接口,計(jì)數(shù)信號量實(shí)現(xiàn)兩個處理器核之間的同步。這種框架的應(yīng)用實(shí)例包括邊緣檢測、
JPEG/MPEG編碼/解碼算法和卷積編碼。
圖4 在雙核宏塊數(shù)據(jù)訪問模式中,L2存儲器具有多個片段緩沖器,獨(dú)立的MDMA通道將宏塊從每個處理器核的L2存儲器傳輸?shù)絃1存儲器。
在幀級處理模式中,外部存儲器存儲關(guān)聯(lián)幀。根據(jù)數(shù)據(jù)幀(宏塊或行)之間的關(guān)聯(lián)性粒度,系統(tǒng)將數(shù)據(jù)幀的子塊傳送到L1或L2存儲器。圖5顯示了幀級處理框架的數(shù)據(jù)流模型。在這種情況下,假定某個宏塊在多個幀之間存在關(guān)聯(lián),則系統(tǒng)將數(shù)據(jù)幀的宏塊傳送至L1存儲器。與其它框架類似,該框架中處理器核A控制輸入視頻接口,處理器核B控制輸出接口,通過計(jì)數(shù)信號量實(shí)現(xiàn)兩個處理器核之間的同步。這種框架的應(yīng)用實(shí)例包括運(yùn)動檢測算法。
圖5 在幀級處理流程中,外部的存儲器存儲獨(dú)立幀
在GOP級處理模式中,每個處理器核處理多個相繼的數(shù)據(jù)幀。幀級處理框架與GOP級處理框架之間的區(qū)別在于,前者是在幀內(nèi)完成空間劃分,后者則通過時間劃分(幀序列)實(shí)現(xiàn)并行處理。對于GOP數(shù)據(jù)訪問模式,關(guān)聯(lián)性存在于一組數(shù)據(jù)幀內(nèi)部,兩組幀之間數(shù)據(jù)不存在關(guān)聯(lián)性。因此,處理器核可以獨(dú)立處理每一組幀。圖6顯示了這種框架的數(shù)據(jù)流。與幀級處理框架類似,系統(tǒng)可以將幀數(shù)據(jù)塊傳送至處理器核的L1存儲器。為了有效利用外部存儲器的交錯存儲庫結(jié)構(gòu),系統(tǒng)在處理器核間均衡地分配存儲庫。ADSP-BF561的每一個外部存儲庫都支持多達(dá)四個內(nèi)部SDRAM存儲庫。這種框架的應(yīng)用實(shí)例包括MPEG-2/4等編碼/解碼算法。
圖6 在GOP級數(shù)據(jù)訪問模式中,關(guān)聯(lián)性存在于一組數(shù)據(jù)幀內(nèi)部,兩組幀之間數(shù)據(jù)不存在關(guān)聯(lián)性。
在實(shí)際應(yīng)用中,系統(tǒng)可能使用多種算法處理數(shù)據(jù)流,而每種算法都可能用到不同的數(shù)據(jù)存取模式。這種情況下,可以針對特殊應(yīng)用將幾種框架結(jié)合起來使用。為利用多核結(jié)構(gòu),可以采用流水線處理來實(shí)現(xiàn)并行操作,但這種并行操作是不對稱的,因?yàn)椴煌幚砥骱松峡赡軋?zhí)行不同的計(jì)算。然而,系統(tǒng)可以分配一些其它的任務(wù)到處理器核的空閑指令上,在保持靈活性的同時達(dá)到處理器核的工作量平衡。圖7顯示了行級處理和宏塊處理相結(jié)合的框架的數(shù)據(jù)流模型。
圖7 行級處理和宏塊處理相結(jié)合的框架的數(shù)據(jù)流模型
在某些其他應(yīng)用中,多個數(shù)據(jù)塊之間也會存在數(shù)據(jù)關(guān)聯(lián)性,數(shù)據(jù)存取模式仍然是可預(yù)測的,但它擴(kuò)展到了一個宏塊或一行的粒度之外。例如,運(yùn)動窗口搜索就可能使用幾個相鄰的宏塊。數(shù)據(jù)存取模式仍然是可預(yù)測的,但系統(tǒng)在算法的多次迭代之間要訪問多個數(shù)據(jù)塊。這種情況下,可以對軟件框架進(jìn)行修正,以實(shí)現(xiàn)有效的并行操作。例如,如果多行間存在關(guān)聯(lián),可以通過調(diào)整行處理框架,將N個連續(xù)行的幀片段傳送到每個處理器核的L1存儲器。利用類似的方法,還可以對宏塊處理框架進(jìn)行擴(kuò)展,以便將多個宏塊從L2存儲器送入內(nèi)部L1存儲器。
軟件框架分析
為了對雙核處理的軟件框架進(jìn)行評估,ADI公司利用數(shù)據(jù)流模型率先開發(fā)了一款單核應(yīng)用軟件,然后與雙核方案進(jìn)行對比。Blackfin獨(dú)有的系統(tǒng)優(yōu)化技術(shù)也能有效地利用可用帶寬。為了簡化分析,ADI公司只比較了基本框架的處理速度,而沒有考慮幾種架構(gòu)的組合。
所謂周期,是指為了滿足NTSC(美國國家電視系統(tǒng)委員會)視頻輸入的實(shí)時約束條件而用于處理數(shù)據(jù)流的處理器核計(jì)算周期。對于一個以600MHz速度運(yùn)行的處理器核,為了滿足實(shí)時約束條件,處理每一像素可用的總周期數(shù)為44周期/像素。任何對數(shù)據(jù)流的處理器核訪問都只需要一個單核周期,因?yàn)樗袛?shù)據(jù)訪問都是對L1存儲器的訪問。所示的周期數(shù)不包括中斷延遲。
如表1所示,雙核框架將所有框架的處理速度有效提高了兩倍。表中還說明了每個處理器核的L1存儲器使用量,以及各種框架需要的共享存儲器空間。這些框架使用ADI公司的DD/SSL(器件驅(qū)動/系統(tǒng)服務(wù)庫)實(shí)現(xiàn)對外設(shè)和數(shù)據(jù)的管理。
表1:框架說明
存儲器相關(guān)文章:存儲器原理
評論