嵌入式多媒體應用的多處理器核軟件設計框架
由于每個DMA控制器上都有兩組MDMA通路,系統設計時,可以將MDMA通路在處理器核上平均分配,從而可以對稱地進行并行操作。
對于具有較小粒度數據訪問模式的應用,可以輕松的利用對L1和L2存儲器的快速訪問,也可以直接將獨立的數據塊從外圍設備傳送到L1和L2存儲器,而不需要通過慢速的外部存儲器訪問,這樣可節省寶貴的外存儲器帶寬和MDMA資源,還可以縮短數據傳輸時間。
對于某些采用較高層級粒度的數據訪問模式的應用,存儲器就可能成為訪問瓶頸,因為較小的L1和L2存儲器層級不能容納大量的數據幀。然而,大量數據幀之間雖然會出現數據關聯性,但這種關聯通常也僅存在于跨數據幀的較小數據塊。如果能將所有關聯的數據幀存放在一個較大的存儲空間(外存儲器)中,就可以將每一幀中的獨立數據塊相繼送入空閑的處理器核進行處理。如果這些獨立的數據塊比數據幀小得多,以至于符合L1和L2存儲器的容量,就可減少存儲器存取延遲從而高效地處理數據。
雖然L2和外存儲器都有獨立的總線連接,兩個處理器核仍共享這些存儲器接口總線。因此,應當盡量避免利用兩個處理器核同時對同一級別的存儲器進行存取操作,以免造成因線路爭用引起延遲。為了減少線路爭用狀態,程序架構應考慮目標程序代碼和數據的映射,要讓一個處理器核主要訪問L2存儲器核,而另一處理器核則主要訪問外部存儲器。在這種情況下,雖然處理器核完成多數外部存儲器訪問會出現較大的訪問延遲,但總的訪問延遲仍然要比存在線路爭用狀態下的情況小。

該結構能將所有的輸入外設接口配置在一個處理器核上,所有的輸出外設接口分配到另一處理器核上。BF561體系結構中有兩個PPI(并行外設接口),通過PPI視頻輸入/輸出接口,可以實現輸入或輸出視頻幀的獨立操作。
如果中斷處理時間比數據流的處理時間要短,還可將所有的外設接口分配到一個處理器核上以便于編程,較短的中斷處理時間不會影響兩個處理器核的負載平衡。
建議的軟件框架模型
基于數據訪問模式的粒度,您可以定義四種軟件框架:行處理(空域),宏塊處理(空域),幀處理(時域)以及GOP處理(時域)。如果某個應用程序的數據訪問模式適于這四種模型中的任何一種,就可以采用相應的軟件結構,如果對同一數據流有兩種或多種處理算法,還可以將這幾種軟件結構結合起來,實現非對稱的并行處理。
在行處理模式中,只在行級有相關性——也就是說,只在兩個相鄰像素之間存在相關性。每行數據形成一個數據塊,這樣兩個處理器核都獨立處理,圖3說明了行處理軟件架構的數據流模型。圖中,處理器核A控制視頻輸入,處理器核B控制視頻輸出。處理器核A和B之間的數據有獨立的MDMA通道進行管理。L1存儲器使用多個緩沖器,可以避免處理器核與外設DMA數據訪問之間出現的線路爭用狀態。兩個處理器核之間每行數據的同步,則通過一個計數信號量實現。在行處理模式中,采用單處理器核方式將數據直接存入L1存儲器也具有優勢,可以節省外部存儲器帶寬和DMA資源。行處理軟件架構的應用實例包括色彩變換,直方圖均衡化,濾波,以及采樣。

圖4說明了宏塊數據訪問模式的數據流模型,可以將交替的宏塊在兩個處理器核之間傳送。L2存儲器保持多個數據緩沖區,宏塊從L2存儲器傳輸到每個處理器核的L1存儲器都有獨立的MDMA通道。L1存儲器也保持多個數據緩沖區,以避免在DMA和處理器核數據訪問過程中產生線路爭用。與行處理結構類似,該結構中處理器核A仍控制輸入視頻接口,處理器核B控制輸出接口,計數信號量實現兩個處理器核之間的同步。這種軟件架構的應用實例包括邊緣檢測,JPEG/MPEG的編/解碼算法,以及卷積編碼。

在幀級處理模式中,外部存儲器存儲相關的數據幀。根據數據幀(宏塊或行)之間相關性的粒度,系統將數據幀的子塊傳送到L1或L2存儲器。圖5說明了幀級處理軟件架構數據流模型。在這種情況下,假定某個宏塊在不同幀間存在相關性,系統則將數據幀的宏塊傳送至L1存儲器。與其他軟件架構類似,處理器核A仍控制輸入視頻接口,處理器核B則控制輸出接口,計數信號量實現兩個處理器核之間的同步。該軟件架構已應用于運動檢測算法。
評論