運(yùn)用FPGA進(jìn)行控制平面/數(shù)據(jù)平面視頻處理
嵌入式設(shè)計(jì)人員面臨的最大挑戰(zhàn)之一就是界定系統(tǒng)的性能需求。用以確定實(shí)際性能需求所需的信息要么無法獲取,要么難以獲得。最精確的估算有時(shí)也會(huì)因無法預(yù)料的計(jì)算負(fù)荷而失效。分析通常會(huì)指出,對(duì)于數(shù)據(jù)處理需求而言嵌入式處理系統(tǒng)的成本效益太低。因此,系統(tǒng)設(shè)計(jì)人員高度渴望擁有可擴(kuò)展的能夠適應(yīng)性能需求潛在變化以及能夠執(zhí)行高性能數(shù)據(jù)處理的架構(gòu)。而在FPGA內(nèi)部實(shí)施的控制平面/數(shù)據(jù)平面處理架構(gòu)就能夠有效滿足上述要求。
本文引用地址:http://www.ex-cimer.com/article/162509.htm什么是控制平面/數(shù)據(jù)平面處理?為什么您的下一代嵌入式系統(tǒng)可能會(huì)需要它?
在無法用軟件完成所有處理工作的系統(tǒng)中,設(shè)計(jì)人員可以通過多種途徑來獲得其他性能。他們可以采用對(duì)稱或者非對(duì)稱處理配置的多處理器;使用硬件協(xié)處理器;或者將數(shù)據(jù)處理任務(wù)拆分給一個(gè)或多個(gè)專用處理單元——就像在控制平面/數(shù)據(jù)平面內(nèi)進(jìn)行處理一樣。
在這種編程方式下,數(shù)據(jù)處理被分成兩個(gè)不同的平面。控制平面代表著對(duì)性能影響不大的算法元素,比如管理性任務(wù)、用戶界面和操作系統(tǒng)功能。同時(shí),數(shù)據(jù)平面代表著數(shù)據(jù)在系統(tǒng)中的流動(dòng),例如視頻流或音頻流及其處理。在數(shù)據(jù)平面上,設(shè)計(jì)人員采用諸如流水線這樣的技術(shù)來增強(qiáng)數(shù)據(jù)吞吐能力。控制平面/數(shù)據(jù)平面處理的典型應(yīng)用包括流視頻、網(wǎng)絡(luò)包處理以及高速信號(hào)處理。
讓我們來近距離觀察一個(gè)涉及流數(shù)據(jù)實(shí)時(shí)處理的控制平面/數(shù)據(jù)平面應(yīng)用。我們將面臨高清視頻流特有模式的識(shí)別。該實(shí)要求混合使用高性能數(shù)據(jù)處理和包含嵌入式微處理器的控制功能的多種應(yīng)用的典型代表。
720p/60Hz的HD視頻流的像素頻率為74.25MHz。這就要求222.75MB每秒的處理速率。假定采用2.5GHz的雙核雙指令處理器來處理該數(shù)據(jù),最佳的指令率為10G指令每秒。這樣的處理器可針對(duì)所處理數(shù)據(jù)的每一字節(jié)執(zhí)行22.4條指令。對(duì)某些應(yīng)用而言這已經(jīng)足夠了,但22.4條指令表明所能處理的數(shù)據(jù)非常有限。復(fù)雜的視頻處理功能,比如內(nèi)核卷積(kernelconvolution)、噪音消減和其他過濾功能需要更高的指令執(zhí)行效率。本文的解決方案準(zhǔn)備在數(shù)據(jù)平面上創(chuàng)建并行或流水線處理單元。
HD視頻處理是一種可以把問題劃分為控制平面和數(shù)據(jù)平面予以高效處理的常見的現(xiàn)實(shí)應(yīng)用。作為一種高度并行處理單元,F(xiàn)PGA在本例中負(fù)責(zé)視頻處理,同時(shí)由FPGA內(nèi)部的中等性能處理器負(fù)責(zé)視頻處理流水線。該處理器可專用于單個(gè)應(yīng)用,也可以運(yùn)行諸如Linux這樣的操作系統(tǒng)。最終形成的硬軟件混合實(shí)施方案可以把處理交付給能夠進(jìn)行最佳處理的部分,實(shí)現(xiàn)低成本、高性能數(shù)據(jù)處理解決方案。圖1顯示的是典型的控制平面/數(shù)據(jù)平面系統(tǒng)。
圖1:典型的控制平面/數(shù)據(jù)平面處理系統(tǒng)。
采用FPGA實(shí)現(xiàn)計(jì)算負(fù)載均衡
除了不菲的ASIC,F(xiàn)PGA是性能最高、最具經(jīng)濟(jì)效益的流數(shù)據(jù)處理單元實(shí)施方法。FPGA因其靈活的架構(gòu)而能讓設(shè)計(jì)人員實(shí)施包含并行和流水線單元的處理系統(tǒng)。這樣設(shè)計(jì)人員即可優(yōu)化系統(tǒng)的性能和時(shí)延。
設(shè)計(jì)人員隨后可以將該數(shù)據(jù)平面解決方案應(yīng)用于外部的分立微處理器以進(jìn)行控制。在FPGA內(nèi)部加入該處理器能夠帶來多項(xiàng)優(yōu)勢(shì)。內(nèi)部處理器能夠大大減少處理器和數(shù)據(jù)平面單元之間的控制時(shí)延。時(shí)延的減少可以釋放出許多處理器周期。外部處理器必須與數(shù)據(jù)平面保持通信。通信通道可以是32位或者更多位數(shù),并同時(shí)需要更多導(dǎo)線用于尋址和控制。增加的導(dǎo)線可能會(huì)要求更強(qiáng)大的處理器和FPGA封裝,從而導(dǎo)致系統(tǒng)成本增加。而采用PCIExpress(PCIe)能大幅度減少引腳數(shù)量。遺憾的是,不是所有的處理器和FPGA都支持這種相對(duì)新型的接口,而且即便支持,PCIe器件的成本也大大高于不采用PCIe的同類器件。
在FPGA內(nèi)部實(shí)施控制平面處理器和數(shù)據(jù)平面可以減少器件數(shù)量、板級(jí)空間和功耗,最終形成一個(gè)低成本的解決方案。在FPGA內(nèi)既有諸如PowerPC等硬核處理器,也有賽靈思MicroBlaze等軟核處理器,可以根據(jù)應(yīng)用要求配置基于FPGA的處理器?;贔PGA的系統(tǒng)能夠在處理器和FPGA邏輯之間移植決策和計(jì)算功能,從而實(shí)現(xiàn)系統(tǒng)級(jí)的優(yōu)化。
嵌入式設(shè)計(jì)人員面臨的最大挑戰(zhàn)之一就是界定系統(tǒng)的性能需求。用以確定實(shí)際性能需求所需的信息要么無法獲取,要么難以獲得。最精確的估算有時(shí)也會(huì)因無法預(yù)料的計(jì)算負(fù)荷而失效。分析通常會(huì)指出,對(duì)于數(shù)據(jù)處理需求而言嵌入式處理系統(tǒng)的成本效益太低。因此,系統(tǒng)設(shè)計(jì)人員高度渴望擁有可擴(kuò)展的能夠適應(yīng)性能需求潛在變化以及能夠執(zhí)行高性能數(shù)據(jù)處理的架構(gòu)。而在FPGA內(nèi)部實(shí)施的控制平面/數(shù)據(jù)平面處理架構(gòu)就能夠有效滿足上述要求。
什么是控制平面/數(shù)據(jù)平面處理?為什么您的下一代嵌入式系統(tǒng)可能會(huì)需要它?
在無法用軟件完成所有處理工作的系統(tǒng)中,設(shè)計(jì)人員可以通過多種途徑來獲得其他性能。他們可以采用對(duì)稱或者非對(duì)稱處理配置的多處理器;使用硬件協(xié)處理器;或者將數(shù)據(jù)處理任務(wù)拆分給一個(gè)或多個(gè)專用處理單元——就像在控制平面/數(shù)據(jù)平面內(nèi)進(jìn)行處理一樣。
在這種編程方式下,數(shù)據(jù)處理被分成兩個(gè)不同的平面。控制平面代表著對(duì)性能影響不大的算法元素,比如管理性任務(wù)、用戶界面和操作系統(tǒng)功能。同時(shí),數(shù)據(jù)平面代表著數(shù)據(jù)在系統(tǒng)中的流動(dòng),例如視頻流或音頻流及其處理。在數(shù)據(jù)平面上,設(shè)計(jì)人員采用諸如流水線這樣的技術(shù)來增強(qiáng)數(shù)據(jù)吞吐能力。控制平面/數(shù)據(jù)平面處理的典型應(yīng)用包括流視頻、網(wǎng)絡(luò)包處理以及高速信號(hào)處理。
評(píng)論