資料介紹
基于單核結(jié)構(gòu)的嵌入式處理器越來越難以滿足日益增長的嵌入式多媒體應用的處理需求,多核嵌入式結(jié)構(gòu)已成為解決這一問題的有效途徑,同時也為如何充分開發(fā)利用多核結(jié)構(gòu)的應用軟件帶來挑戰(zhàn)。目前的編譯技術(shù)和開發(fā)工具需要更精密,才能使多核結(jié)構(gòu)的應用獲得成功。大多數(shù)并行軟件都是通過手工轉(zhuǎn)換方式將順序程序轉(zhuǎn)換為并行程序來實現(xiàn)的,由于缺乏具有多核意識的開發(fā)工具,使得軟件難以進行性能評估。因此,如果沒有預先有效可靠的工程規(guī)劃,將不得不面對應用軟件效率低下以及延遲產(chǎn)品上市時間等問題。
軟件框架為多核應用軟件的開發(fā)提供了一個更好的起點,可以幫助縮短開發(fā)時間。本文將詳細說明嵌入式多媒體應用軟件的設(shè)計框架,同時,本文的數(shù)據(jù)流模型也可擴展到許多其它應用中。該框架綜合了多媒體應用軟件固有的數(shù)據(jù)并行結(jié)構(gòu),并說明了如何通過使用底層架構(gòu)來有效管理數(shù)據(jù)流。
在設(shè)計并行軟件的過程中有兩大挑戰(zhàn):一是開發(fā)有效的并行算法,二是有效地利用存儲器、DMA(直接存儲器訪問)通道和互連網(wǎng)絡(luò)等共享資源。在該過程中,順序運行的應用程序的性能可根據(jù)可用處理器核的數(shù)目進行擴展。
實現(xiàn)應用程序的并行處理常常有多種方法。有些應用程序表現(xiàn)出固有的并行特性,而其它的則具有極其復雜且不規(guī)則的數(shù)據(jù)存取模式。但總的來講,科學計算類的應用程序和多媒體應用程序的并行化通常易于實現(xiàn),因為它們的數(shù)據(jù)存取模式比那些控制類應用程序相對容易預測。本文重點討論針對多媒體算法的并行技術(shù),這類算法需要很高的處理能力,并且更適合嵌入式系統(tǒng)應用。
多媒體應用程序中存在數(shù)據(jù)的并行級別。一組數(shù)據(jù)幀與數(shù)據(jù)幀中的一個宏塊之間的并行粒度有很大差別。通常來講,粒度越小,共享單元(如處理器核和DMA通道等)之間所需的同步級別越高。粒度越小,并行程度就越高,網(wǎng)絡(luò)通信量越??;粒度越大,同步要求就越低,但網(wǎng)絡(luò)通信量會增大。因此,基于應用的不同類型和系統(tǒng)需求,軟件框架也定義了不同的并行級別。
需要說明的是,可擴展并行軟件的開發(fā)還依賴于對互連網(wǎng)絡(luò)、分級存儲器體系以及外設(shè)/DMA資源的有效利用。系統(tǒng)嚴格的低功耗和低成本要求對所有這些要素都會構(gòu)成限制。在多核環(huán)境下編程時,有效利用這些資源需要進行創(chuàng)新。本文提出了一些在ADI公司的Blackfin ADSP-BF561雙核處理器上有效管理資源的構(gòu)想。
多媒體數(shù)據(jù)流分析
為了實現(xiàn)數(shù)據(jù)并行,需要在數(shù)據(jù)流中找到這樣一個或一組數(shù)據(jù)塊:可以獨立處理并將其“喂”給一個處理元件。獨立的數(shù)據(jù)塊可以降低同步開銷并簡化并行算法。要找到這種數(shù)據(jù),必須弄清應用的數(shù)據(jù)流模型,或者說“數(shù)據(jù)存取模式”。
對于大多數(shù)多媒體應用,可以將數(shù)據(jù)存取模式看成是2D(空間域)和3D(時間域)操作模式。在2D模式中,獨立的數(shù)據(jù)塊被限制在單個數(shù)據(jù)幀內(nèi),而在3D模式中,獨立數(shù)據(jù)塊可以橫跨多幀。在空間域中,可以將幀劃分為由N個連續(xù)行和視頻幀宏塊組成的片段,而在時間域中,可以對數(shù)據(jù)流進一步細分到幀級或圖片組(GOP)級。
采用片段或宏塊數(shù)據(jù)存取模式的算法對同步性要求較高,但網(wǎng)絡(luò)傳輸量較少,這是因為分級存儲器體系只需存儲圖像數(shù)據(jù)的一部分。對于幀或圖片組類型的數(shù)據(jù)存取模式,分級存儲器體系則需要存儲大量數(shù)據(jù),但對同步性的要求則相對低得多,這是因為系統(tǒng)的并行粒度更大。圖1說明了多媒體應用軟件中的并行級別,同時顯示了四個級別的相對同步要求和網(wǎng)絡(luò)通信量。
![嵌入式多媒體多核應用軟件設(shè)計解析](/uploads/allimg/171026/2362486-1G0261G135310.png)
圖1 多媒體應用展示了不同的數(shù)據(jù)并行級別,這些級別對應不同的同步要求和網(wǎng)絡(luò)通信量。
多核結(jié)構(gòu)分析
圖2顯示了ADSP-BF561的結(jié)構(gòu),它包括獨立的指令和數(shù)據(jù)存儲器,分別屬于兩個處理器核專有,此外還包括共享的L2存儲器和外部存儲器。用戶可以利用可配置的仲裁方案將所有外圍設(shè)備和DMA資源連接到任一處理器核。該處理器有兩個DMA控制器,每個DMA控制器由兩組MDMA(存儲器DMA)通道組成。L2存儲器與每個處理器核之間通過獨立的總線連接,外部存儲器與兩個處理器核之間則由一條共享總線連接。
![嵌入式多媒體多核應用軟件設(shè)計解析](/uploads/allimg/171026/2362486-1G0261G144120.png)
圖2 ADSP-BF561的結(jié)構(gòu)包括獨立的指令和數(shù)據(jù)存儲器,分別屬于兩個處理器核專有,此外還包括共享的L2存儲器和外部存儲器。
所有框架都利用DMA方式將數(shù)據(jù)流送入分級存儲器體系。另一種選擇是高速緩存,它不管理任何數(shù)據(jù)。如果清楚目標應用的數(shù)據(jù)存取模式,就可以利用DMA引擎對數(shù)據(jù)進行有效的管理。而使用高速緩存需要忍受不確定的訪問時間、高速緩存未命中的代價,以及需要較高的外部存儲器帶寬。利用DMA引擎,可以在處理器核請求數(shù)據(jù)之前就將數(shù)據(jù)送入L1存儲器,系統(tǒng)在后臺執(zhí)行傳輸操作,而不會因為數(shù)據(jù)項請求使處理器核暫停工作。
由于每個DMA控制器上都有兩組MDMA通道,因此系統(tǒng)可以將MDMA通道在處理器核上均勻分配,從而可以對稱地進行并行處理。
對于數(shù)據(jù)存取模式粒度較小的應用,可以輕松地利用對L1和L2存儲器的快速訪問。也可以直接將獨立的數(shù)據(jù)塊從外設(shè)接口傳送到L1或L2存儲器,而不需要訪問慢速的外部存儲器,這樣可以節(jié)省寶貴的外存儲器帶寬和MDMA資源,并縮短數(shù)據(jù)傳輸時間。
對于數(shù)據(jù)存取模式粒度較大的應用,存儲器可能成為瓶頸,因為較小的L1和L2存儲器級不足以容納大量的數(shù)據(jù)幀。然而,大量數(shù)據(jù)幀之間雖然存在數(shù)據(jù)關(guān)聯(lián)性,但這種關(guān)聯(lián)通常也僅存在于跨數(shù)據(jù)幀的較小數(shù)據(jù)塊上。如果能將所有關(guān)聯(lián)的數(shù)據(jù)幀存放在一個較大的存儲空間(外部存儲器)中,就可以將每一幀中的獨立數(shù)據(jù)塊相繼送入空閑的處理器核進行處理。如果這些獨立的數(shù)據(jù)塊比數(shù)據(jù)幀小得多,符合L1或L2存儲器的容量,就可以減少存儲器存取延遲,高效地處理數(shù)據(jù)。
雖然L2和外部存儲器都有獨立的總線連接,但兩個處理器核仍共享這些存儲器接口總線。因此,應當盡量避免兩個處理器核同時對同一級別的存儲器進行存取操作,以免因總線沖突而停止工作。為了減少總線沖突狀況,框架應考慮代碼和數(shù)據(jù)對象的映射,讓一個處理器核主要訪問L2存儲器核,而另一處理器核則主要訪問外部存儲器。在這種情況下,雖然處理器核完成多數(shù)外部存儲器訪問會出現(xiàn)較大的訪問延遲,但總的訪問延遲仍然小于總線沖突的代價。
框架把所有輸入外設(shè)接口分配給一個處理器核,把所有輸出外設(shè)接口分配給另一處理器核。框架利用視頻輸入/輸出接口,例如PPI(并行外設(shè)接口)來輸入和輸出視頻幀。BF561架構(gòu)有兩個PPI接口。
如果中斷處理時間比數(shù)據(jù)流的處理時間要短,則可將所有的外設(shè)接口分配給一個處理器核以便于編程,較短的中斷處理時間不會影響兩個處理器核的負荷平衡。
軟件框架的建議模型
基于數(shù)據(jù)存取模式的粒度,可以定義四種軟件框架:行處理(空間域)、宏塊處理(空間域)、幀處理(時間域)以及GOP處理(時間域)。如果某個應用程序的數(shù)據(jù)存取模式適于這四種模型中的任何一種,就可以采用相應的框架。如果一個數(shù)據(jù)流有兩種或更多的處理算法,還可以將多種框架結(jié)合起來,實現(xiàn)非對稱的并行處理。
在行處理模式中,關(guān)聯(lián)性只存在于行級,也就是說,只存在于相鄰像素之間。每行數(shù)據(jù)形成一個數(shù)據(jù)塊,各處理器核都可以獨立處理。
軟件框架為多核應用軟件的開發(fā)提供了一個更好的起點,可以幫助縮短開發(fā)時間。本文將詳細說明嵌入式多媒體應用軟件的設(shè)計框架,同時,本文的數(shù)據(jù)流模型也可擴展到許多其它應用中。該框架綜合了多媒體應用軟件固有的數(shù)據(jù)并行結(jié)構(gòu),并說明了如何通過使用底層架構(gòu)來有效管理數(shù)據(jù)流。
在設(shè)計并行軟件的過程中有兩大挑戰(zhàn):一是開發(fā)有效的并行算法,二是有效地利用存儲器、DMA(直接存儲器訪問)通道和互連網(wǎng)絡(luò)等共享資源。在該過程中,順序運行的應用程序的性能可根據(jù)可用處理器核的數(shù)目進行擴展。
實現(xiàn)應用程序的并行處理常常有多種方法。有些應用程序表現(xiàn)出固有的并行特性,而其它的則具有極其復雜且不規(guī)則的數(shù)據(jù)存取模式。但總的來講,科學計算類的應用程序和多媒體應用程序的并行化通常易于實現(xiàn),因為它們的數(shù)據(jù)存取模式比那些控制類應用程序相對容易預測。本文重點討論針對多媒體算法的并行技術(shù),這類算法需要很高的處理能力,并且更適合嵌入式系統(tǒng)應用。
多媒體應用程序中存在數(shù)據(jù)的并行級別。一組數(shù)據(jù)幀與數(shù)據(jù)幀中的一個宏塊之間的并行粒度有很大差別。通常來講,粒度越小,共享單元(如處理器核和DMA通道等)之間所需的同步級別越高。粒度越小,并行程度就越高,網(wǎng)絡(luò)通信量越??;粒度越大,同步要求就越低,但網(wǎng)絡(luò)通信量會增大。因此,基于應用的不同類型和系統(tǒng)需求,軟件框架也定義了不同的并行級別。
需要說明的是,可擴展并行軟件的開發(fā)還依賴于對互連網(wǎng)絡(luò)、分級存儲器體系以及外設(shè)/DMA資源的有效利用。系統(tǒng)嚴格的低功耗和低成本要求對所有這些要素都會構(gòu)成限制。在多核環(huán)境下編程時,有效利用這些資源需要進行創(chuàng)新。本文提出了一些在ADI公司的Blackfin ADSP-BF561雙核處理器上有效管理資源的構(gòu)想。
多媒體數(shù)據(jù)流分析
為了實現(xiàn)數(shù)據(jù)并行,需要在數(shù)據(jù)流中找到這樣一個或一組數(shù)據(jù)塊:可以獨立處理并將其“喂”給一個處理元件。獨立的數(shù)據(jù)塊可以降低同步開銷并簡化并行算法。要找到這種數(shù)據(jù),必須弄清應用的數(shù)據(jù)流模型,或者說“數(shù)據(jù)存取模式”。
對于大多數(shù)多媒體應用,可以將數(shù)據(jù)存取模式看成是2D(空間域)和3D(時間域)操作模式。在2D模式中,獨立的數(shù)據(jù)塊被限制在單個數(shù)據(jù)幀內(nèi),而在3D模式中,獨立數(shù)據(jù)塊可以橫跨多幀。在空間域中,可以將幀劃分為由N個連續(xù)行和視頻幀宏塊組成的片段,而在時間域中,可以對數(shù)據(jù)流進一步細分到幀級或圖片組(GOP)級。
采用片段或宏塊數(shù)據(jù)存取模式的算法對同步性要求較高,但網(wǎng)絡(luò)傳輸量較少,這是因為分級存儲器體系只需存儲圖像數(shù)據(jù)的一部分。對于幀或圖片組類型的數(shù)據(jù)存取模式,分級存儲器體系則需要存儲大量數(shù)據(jù),但對同步性的要求則相對低得多,這是因為系統(tǒng)的并行粒度更大。圖1說明了多媒體應用軟件中的并行級別,同時顯示了四個級別的相對同步要求和網(wǎng)絡(luò)通信量。
![嵌入式多媒體多核應用軟件設(shè)計解析](/uploads/allimg/171026/2362486-1G0261G135310.png)
圖1 多媒體應用展示了不同的數(shù)據(jù)并行級別,這些級別對應不同的同步要求和網(wǎng)絡(luò)通信量。
多核結(jié)構(gòu)分析
圖2顯示了ADSP-BF561的結(jié)構(gòu),它包括獨立的指令和數(shù)據(jù)存儲器,分別屬于兩個處理器核專有,此外還包括共享的L2存儲器和外部存儲器。用戶可以利用可配置的仲裁方案將所有外圍設(shè)備和DMA資源連接到任一處理器核。該處理器有兩個DMA控制器,每個DMA控制器由兩組MDMA(存儲器DMA)通道組成。L2存儲器與每個處理器核之間通過獨立的總線連接,外部存儲器與兩個處理器核之間則由一條共享總線連接。
![嵌入式多媒體多核應用軟件設(shè)計解析](/uploads/allimg/171026/2362486-1G0261G144120.png)
圖2 ADSP-BF561的結(jié)構(gòu)包括獨立的指令和數(shù)據(jù)存儲器,分別屬于兩個處理器核專有,此外還包括共享的L2存儲器和外部存儲器。
所有框架都利用DMA方式將數(shù)據(jù)流送入分級存儲器體系。另一種選擇是高速緩存,它不管理任何數(shù)據(jù)。如果清楚目標應用的數(shù)據(jù)存取模式,就可以利用DMA引擎對數(shù)據(jù)進行有效的管理。而使用高速緩存需要忍受不確定的訪問時間、高速緩存未命中的代價,以及需要較高的外部存儲器帶寬。利用DMA引擎,可以在處理器核請求數(shù)據(jù)之前就將數(shù)據(jù)送入L1存儲器,系統(tǒng)在后臺執(zhí)行傳輸操作,而不會因為數(shù)據(jù)項請求使處理器核暫停工作。
由于每個DMA控制器上都有兩組MDMA通道,因此系統(tǒng)可以將MDMA通道在處理器核上均勻分配,從而可以對稱地進行并行處理。
對于數(shù)據(jù)存取模式粒度較小的應用,可以輕松地利用對L1和L2存儲器的快速訪問。也可以直接將獨立的數(shù)據(jù)塊從外設(shè)接口傳送到L1或L2存儲器,而不需要訪問慢速的外部存儲器,這樣可以節(jié)省寶貴的外存儲器帶寬和MDMA資源,并縮短數(shù)據(jù)傳輸時間。
對于數(shù)據(jù)存取模式粒度較大的應用,存儲器可能成為瓶頸,因為較小的L1和L2存儲器級不足以容納大量的數(shù)據(jù)幀。然而,大量數(shù)據(jù)幀之間雖然存在數(shù)據(jù)關(guān)聯(lián)性,但這種關(guān)聯(lián)通常也僅存在于跨數(shù)據(jù)幀的較小數(shù)據(jù)塊上。如果能將所有關(guān)聯(lián)的數(shù)據(jù)幀存放在一個較大的存儲空間(外部存儲器)中,就可以將每一幀中的獨立數(shù)據(jù)塊相繼送入空閑的處理器核進行處理。如果這些獨立的數(shù)據(jù)塊比數(shù)據(jù)幀小得多,符合L1或L2存儲器的容量,就可以減少存儲器存取延遲,高效地處理數(shù)據(jù)。
雖然L2和外部存儲器都有獨立的總線連接,但兩個處理器核仍共享這些存儲器接口總線。因此,應當盡量避免兩個處理器核同時對同一級別的存儲器進行存取操作,以免因總線沖突而停止工作。為了減少總線沖突狀況,框架應考慮代碼和數(shù)據(jù)對象的映射,讓一個處理器核主要訪問L2存儲器核,而另一處理器核則主要訪問外部存儲器。在這種情況下,雖然處理器核完成多數(shù)外部存儲器訪問會出現(xiàn)較大的訪問延遲,但總的訪問延遲仍然小于總線沖突的代價。
框架把所有輸入外設(shè)接口分配給一個處理器核,把所有輸出外設(shè)接口分配給另一處理器核。框架利用視頻輸入/輸出接口,例如PPI(并行外設(shè)接口)來輸入和輸出視頻幀。BF561架構(gòu)有兩個PPI接口。
如果中斷處理時間比數(shù)據(jù)流的處理時間要短,則可將所有的外設(shè)接口分配給一個處理器核以便于編程,較短的中斷處理時間不會影響兩個處理器核的負荷平衡。
軟件框架的建議模型
基于數(shù)據(jù)存取模式的粒度,可以定義四種軟件框架:行處理(空間域)、宏塊處理(空間域)、幀處理(時間域)以及GOP處理(時間域)。如果某個應用程序的數(shù)據(jù)存取模式適于這四種模型中的任何一種,就可以采用相應的框架。如果一個數(shù)據(jù)流有兩種或更多的處理算法,還可以將多種框架結(jié)合起來,實現(xiàn)非對稱的并行處理。
在行處理模式中,關(guān)聯(lián)性只存在于行級,也就是說,只存在于相鄰像素之間。每行數(shù)據(jù)形成一個數(shù)據(jù)塊,各處理器核都可以獨立處理。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式系統(tǒng)軟件設(shè)計教材資料 5次下載
- 嵌入式多媒體卡eMMC存儲芯片介紹 47次下載
- 嵌入式QT多媒體
- 嵌入式多媒體卡產(chǎn)品JESD84-A44手冊 7次下載
- 基于RTOS的嵌入式系統(tǒng)軟件設(shè)計 17次下載
- ARM的嵌入式系統(tǒng)軟件設(shè)計 8次下載
- 嵌入式多媒體應用的多處理器核軟件設(shè)計框架解析 0次下載
- 基于ARM的嵌入式系統(tǒng)軟件設(shè)計部分 15次下載
- 嵌入式多媒體應用的多核編程框架 29次下載
- ARM嵌入式系統(tǒng)開發(fā)-軟件設(shè)計與優(yōu)化
- 基于MPC823e的嵌入式多媒體信息終端硬件開發(fā)平臺設(shè)計
- 基于Windows CE.Net 4.2嵌入式操作系統(tǒng)多媒體
- 嵌入式多媒體視頻安全系統(tǒng)設(shè)計
- 嵌入式系統(tǒng)高可用性應用軟件設(shè)計Strategies of I
- 基于ARM的嵌入式系統(tǒng)軟件設(shè)計
- 嵌入式軟件開發(fā)和軟件開發(fā)的區(qū)別 2357次閱讀
- 嵌入式軟件的設(shè)計模式(上) 1352次閱讀
- 嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計 4205次閱讀
- 基于UML嵌入式軟件開發(fā)環(huán)境的自動取款機系統(tǒng)的應用方案 3777次閱讀
- 基于IPP跨平臺軟件庫實現(xiàn)嵌入式系統(tǒng)的應用設(shè)計 2999次閱讀
- 嵌入式系統(tǒng)的全面解析 3280次閱讀
- 嵌入式多媒體應用軟件的框架建模和并行技術(shù)的研究 555次閱讀
- 基于嵌入式軟件的JNI技術(shù)應用解析 1106次閱讀
- 關(guān)于嵌入式ARM多核處理器的并行方法 4279次閱讀
- 嵌入式系統(tǒng)中的OTA更新的若干不同軟件設(shè)計探討 1954次閱讀
- 嵌入式軟件開發(fā)編程規(guī)范介紹 4403次閱讀
- 嵌入式軟件工程師職業(yè)規(guī)劃必知 6620次閱讀
- 嵌入式軟件可靠性設(shè)計需注意以下四個方面的問題! 2526次閱讀
- 基于FPGA的多核嵌入式系統(tǒng)的設(shè)計 673次閱讀
- 基于嵌入式Linux系統(tǒng)的導航軟件設(shè)計思路 5039次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論