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