嵌入式多媒體應(yīng)用的多處理器核軟件設(shè)計(jì)框架
由于每個(gè)DMA控制器上都有兩組MDMA通路,系統(tǒng)設(shè)計(jì)時(shí),可以將MDMA通路在處理器核上平均分配,從而可以對(duì)稱地進(jìn)行并行操作。
對(duì)于具有較小粒度數(shù)據(jù)訪問模式的應(yīng)用,可以輕松的利用對(duì)L1和L2存儲(chǔ)器的快速訪問,也可以直接將獨(dú)立的數(shù)據(jù)塊從外圍設(shè)備傳送到L1和L2存儲(chǔ)器,而不需要通過慢速的外部存儲(chǔ)器訪問,這樣可節(jié)省寶貴的外存儲(chǔ)器帶寬和MDMA資源,還可以縮短數(shù)據(jù)傳輸時(shí)間。
對(duì)于某些采用較高層級(jí)粒度的數(shù)據(jù)訪問模式的應(yīng)用,存儲(chǔ)器就可能成為訪問瓶頸,因?yàn)檩^小的L1和L2存儲(chǔ)器層級(jí)不能容納大量的數(shù)據(jù)幀。然而,大量數(shù)據(jù)幀之間雖然會(huì)出現(xiàn)數(shù)據(jù)關(guān)聯(lián)性,但這種關(guān)聯(lián)通常也僅存在于跨數(shù)據(jù)幀的較小數(shù)據(jù)塊。如果能將所有關(guān)聯(lián)的數(shù)據(jù)幀存放在一個(gè)較大的存儲(chǔ)空間(外存儲(chǔ)器)中,就可以將每一幀中的獨(dú)立數(shù)據(jù)塊相繼送入空閑的處理器核進(jìn)行處理。如果這些獨(dú)立的數(shù)據(jù)塊比數(shù)據(jù)幀小得多,以至于符合L1和L2存儲(chǔ)器的容量,就可減少存儲(chǔ)器存取延遲從而高效地處理數(shù)據(jù)。
雖然L2和外存儲(chǔ)器都有獨(dú)立的總線連接,兩個(gè)處理器核仍共享這些存儲(chǔ)器接口總線。因此,應(yīng)當(dāng)盡量避免利用兩個(gè)處理器核同時(shí)對(duì)同一級(jí)別的存儲(chǔ)器進(jìn)行存取操作,以免造成因線路爭(zhēng)用引起延遲。為了減少線路爭(zhēng)用狀態(tài),程序架構(gòu)應(yīng)考慮目標(biāo)程序代碼和數(shù)據(jù)的映射,要讓一個(gè)處理器核主要訪問L2存儲(chǔ)器核,而另一處理器核則主要訪問外部存儲(chǔ)器。在這種情況下,雖然處理器核完成多數(shù)外部存儲(chǔ)器訪問會(huì)出現(xiàn)較大的訪問延遲,但總的訪問延遲仍然要比存在線路爭(zhēng)用狀態(tài)下的情況小。
該結(jié)構(gòu)能將所有的輸入外設(shè)接口配置在一個(gè)處理器核上,所有的輸出外設(shè)接口分配到另一處理器核上。BF561體系結(jié)構(gòu)中有兩個(gè)PPI(并行外設(shè)接口),通過PPI視頻輸入/輸出接口,可以實(shí)現(xiàn)輸入或輸出視頻幀的獨(dú)立操作。
如果中斷處理時(shí)間比數(shù)據(jù)流的處理時(shí)間要短,還可將所有的外設(shè)接口分配到一個(gè)處理器核上以便于編程,較短的中斷處理時(shí)間不會(huì)影響兩個(gè)處理器核的負(fù)載平衡。
建議的軟件框架模型
基于數(shù)據(jù)訪問模式的粒度,您可以定義四種軟件框架:行處理(空域),宏塊處理(空域),幀處理(時(shí)域)以及GOP處理(時(shí)域)。如果某個(gè)應(yīng)用程序的數(shù)據(jù)訪問模式適于這四種模型中的任何一種,就可以采用相應(yīng)的軟件結(jié)構(gòu),如果對(duì)同一數(shù)據(jù)流有兩種或多種處理算法,還可以將這幾種軟件結(jié)構(gòu)結(jié)合起來,實(shí)現(xiàn)非對(duì)稱的并行處理。
在行處理模式中,只在行級(jí)有相關(guān)性——也就是說,只在兩個(gè)相鄰像素之間存在相關(guān)性。每行數(shù)據(jù)形成一個(gè)數(shù)據(jù)塊,這樣兩個(gè)處理器核都獨(dú)立處理,圖3說明了行處理軟件架構(gòu)的數(shù)據(jù)流模型。圖中,處理器核A控制視頻輸入,處理器核B控制視頻輸出。處理器核A和B之間的數(shù)據(jù)有獨(dú)立的MDMA通道進(jìn)行管理。L1存儲(chǔ)器使用多個(gè)緩沖器,可以避免處理器核與外設(shè)DMA數(shù)據(jù)訪問之間出現(xiàn)的線路爭(zhēng)用狀態(tài)。兩個(gè)處理器核之間每行數(shù)據(jù)的同步,則通過一個(gè)計(jì)數(shù)信號(hào)量實(shí)現(xiàn)。在行處理模式中,采用單處理器核方式將數(shù)據(jù)直接存入L1存儲(chǔ)器也具有優(yōu)勢(shì),可以節(jié)省外部存儲(chǔ)器帶寬和DMA資源。行處理軟件架構(gòu)的應(yīng)用實(shí)例包括色彩變換,直方圖均衡化,濾波,以及采樣。
圖4說明了宏塊數(shù)據(jù)訪問模式的數(shù)據(jù)流模型,可以將交替的宏塊在兩個(gè)處理器核之間傳送。L2存儲(chǔ)器保持多個(gè)數(shù)據(jù)緩沖區(qū),宏塊從L2存儲(chǔ)器傳輸?shù)矫總€(gè)處理器核的L1存儲(chǔ)器都有獨(dú)立的MDMA通道。L1存儲(chǔ)器也保持多個(gè)數(shù)據(jù)緩沖區(qū),以避免在DMA和處理器核數(shù)據(jù)訪問過程中產(chǎn)生線路爭(zhēng)用。與行處理結(jié)構(gòu)類似,該結(jié)構(gòu)中處理器核A仍控制輸入視頻接口,處理器核B控制輸出接口,計(jì)數(shù)信號(hào)量實(shí)現(xiàn)兩個(gè)處理器核之間的同步。這種軟件架構(gòu)的應(yīng)用實(shí)例包括邊緣檢測(cè),JPEG/MPEG的編/解碼算法,以及卷積編碼。
在幀級(jí)處理模式中,外部存儲(chǔ)器存儲(chǔ)相關(guān)的數(shù)據(jù)幀。根據(jù)數(shù)據(jù)幀(宏塊或行)之間相關(guān)性的粒度,系統(tǒng)將數(shù)據(jù)幀的子塊傳送到L1或L2存儲(chǔ)器。圖5說明了幀級(jí)處理軟件架構(gòu)數(shù)據(jù)流模型。在這種情況下,假定某個(gè)宏塊在不同幀間存在相關(guān)性,系統(tǒng)則將數(shù)據(jù)幀的宏塊傳送至L1存儲(chǔ)器。與其他軟件架構(gòu)類似,處理器核A仍控制輸入視頻接口,處理器核B則控制輸出接口,計(jì)數(shù)信號(hào)量實(shí)現(xiàn)兩個(gè)處理器核之間的同步。該軟件架構(gòu)已應(yīng)用于運(yùn)動(dòng)檢測(cè)算法。
評(píng)論