早期嵌入式處理系統通常由一個微控制器和一系列外設構成。這些系統通常用來完成獲取少量數據、處理數據、做出決策、基于決策結果輸出信息等工作。在某些情況下會實現簡單的人機交互接口如讀取鍵盤并顯示結果。處理需求、同時產生需求,以現在的標準來看似乎微不足道。現代嵌入式系統通常需要處理和分析十億字節級的海量數據,而且常常在確定性和低延時運算上還有一些額外要求。許多應用還要求系統在滿足相關行業標準的同時可靠符合可靠性和安全性要求。
目前,似乎還不可能在單一處理器上同時滿足處理高帶寬數據、執行系統應用程序、響應實時請求并滿足行業安全標準。然而,多核異構芯片卻可以實現這些功能。這樣的設備具有多個處理單元,每一個單元都有能力負責處理一個或多個前述需求,我們稱這樣的設備為異構處理系統。
1 什么是異構多處理呢?
一個異構多處理系統由不同類型的多個單核心或多核心處理器構成,異構多核處理系統最簡單的形式是由一個多核處理器和GPU組成。然而,現代科技讓一顆芯片上的異構多處理系統包含以下模塊:
①多核應用處理器(Multicore Applications Processors);
②多核圖形處理器(Multicore Graphics Processors;
③多核實時處理器(Multicore Real-Time Processors);
④平臺管理單元(Platform Management Unit);
⑤配置和安全系統(Configuration and Security Unit);
本文所引用的異構多核處理系統包括上述的多個分類。使用FPGA邏輯實現多核處理器的優勢是:它可以創建自定義特殊應用處理器,通過并行Pipes和多Pipeline stages來實現二維并行數據處理,使得在一個時鐘周期里可以完成大量的計算。
多核處理器可以設計用來執行通用計算或者是專用計算。和通用處理器執行相同功能相比較,專用計算在減小硅片封裝、提高單時鐘周期吞吐率、低功耗的同時能實現數據優化處理。
2 含可編程邏輯的異構處理系統演變
Xilinx在2002年推出了第一款帶PowerPC405應用處理器的FPGA,在接下來的FPGA里,Xilinx在單片內集成了更高性能的PowerPC單核或雙核處理器。不像現今產品代的器件處理系統是一個集成的ASSP(包含處理器、互聯、存儲控制器和外設),早期產品需要大量的FPGA資源將各部分資源連接在一起形成一個ASSP-like的解決方案。
2011年,Xilinx推出了Zynq-7000系列高集成度的器件,它集成了ARM Cortex-A9 MPCore處理器、互聯單元、內存控制器、外設以及基于Xilinx 7系列FPGA的可編程邏輯。有人肯能會認為Zynq-7000系列是第一代“異構多處理”系統,因為片上的可編程邏輯使得創建和使用專用處理單元成為現實。
3 含可編程邏輯的最新一代異構處理系統
2015年,Xilinx發布并且開始供貨新一代異構多處理器件Zynq UltraScale+ MPSoC。之前的器件集成了可編程邏輯和一個或多個應用處理器,Zynq UltraScale+ MPSoC器件集成了:
①多核應用處理器:四核ARM Cortex-A53應用處理器;
②多核圖形處理器:雙核ARM Mali-400圖形處理器;
③多核實時處理器:雙核ARM Cortex-R5實時處理器,可同步運行安全性要求苛刻的應用;
④平臺管理單元:一致性三冗余處理器用于power、錯誤管理和功能安全管理;
⑤配置和安全單元:一致性三冗余處理器用于系統配置和安全管理;
⑥FPGA可編程邏輯:用戶可編程邏輯用于定制處理器、處理單元和外設。
Zynq UltraScale+ MPSoC Block Diagram
多核應用處理器是傳統的用于通用計算的重負載處理器。這些處理器一般工作在SMP模式,運行一個Linux或Andriod操作系統,當然也支持虛擬管理運行多操作系統。
圖形處理單元是繼浮點運算單元之后最流行的協處理器。GPU從應用處理器分擔圖形處理負載,實現復雜的用戶界面和復雜的圖形渲染。對Andriod或Windows CE之類的操作系統而言,這些都是必須的基本功能。通用目的GPU(GPGPU)除了圖形處理,還可以勝任數據陣列通用計算。
實時處理器可以低延時響應事件,和應用處理器比較通常也更具確定性。在大多數情況下會運行支持低延時中斷處理和確定性應答的實時操作系統。在功能安全性應用中,實時處理器通常會運行在雙核鎖步模式下,這樣可以檢測雙處理器中一個處理器出現的錯誤。
平臺管理單元負責管理關鍵的系統功能和服務。這些功能包括系統錯誤處理、功耗管理和功能安全任務等。作為系統的心臟,該單元不容失敗。因此,這里使用了包含表決邏輯的三冗余處理器,這使得即使有一個處理器核發生錯誤事件,子系統也可以繼續運行。
配置和安全單元負責系統配置,包括加載處理器第一級Bootloader、可編程邏輯的配置bit stream,程序代碼和bit文件均有可選的加密認證和解密功能。配置和安全單元還可提供持續的安全監控,比如過壓或欠壓、低溫或高溫、試圖提取系統信息訪問等。
片上可編程邏輯為異構處理帶來了充分的靈活性。可以通過添加額外的現成的軟核來處理特殊應用的計算任務,也可以在不同層級添加多pipeline和多pipeline stage自定義軟核實現數據流的大規模并行處理。
評論
查看更多