MCU對應用優勢的挑戰已經開始。具有片上固定功能處理子系統(即片上系統(SoC)FPGA)的現場可編程邏輯器件(FPGA)最近已成為高端處理應用的潛在競爭者。這提出了一個問題:隨著應用性能要求的不斷提高,SoC FPGA將成為更廣泛的應用中的挑戰者,還是MCU會發展為更好地與SoC FPGA競爭?如果您正在考慮采用新設計,那么現在最適合您的方法是MCU還是SoC FPGA?
本文將快速回顧SoC FPGA與MCU相比的一些主要優缺點。它還將探討最近的一些MCU創新,使其更加靈活,能夠更好地應對SoC FPGA提供的一些關鍵優勢。有了這些信息,您將能夠在下一次設計中更好地在MCU和SoC FPGA之間進行選擇。
SoC FPGA將新的靈活性與熟悉的處理系統相結合
SoC FPGA結合兩個世界中更好的。對于初學者來說,SoC FPGA提供了一個熟悉的處理系統--CPU - 來執行熟悉的順序處理算法。實際上,許多SoC FPGA已經融合在普適的ARM處理器架構上,構成了其“固定功能”處理子系統的基礎。這充分利用了ARM兼容工具,知識產權核心(IP核)和支持技術的廣泛生態系統,使開發成為一個非常熟悉的過程。
SoC FPGA還為順序處理提供了靈活的可編程替代方案。可編程結構可以實現您所需的任何硬件功能,以增強處理子系統中的順序處理能力。可編程結構本質上是并行的,因為多個硬件模塊可以同時操作,或者在邏輯復制的情況下并行操作,或者以流水線方式操作,其中算法被分成多個階段以便處理重疊。與順序方法相比,這兩種方法都可以產生巨大的吞吐量增益。
當可以使用并行或流水線技術在硬件中實現的算法的一部分需要高性能時,SoC FPGA特別有用(或組合)技術。讓我們看一個示例器件,以便更好地了解它在實際系統中的工作原理。
Xilinx Zynq-7000 SoC FPGA框圖如下圖1所示。該圖的上半部分顯示了芯片內包含的所有固定功能模塊。這些模塊實現了完整的雙核ARM處理器應用處理單元以及大量支持互連總線,外設,存儲器和片外接口。可編程邏輯部分顯示在圖的最底部,可通過各種系統級接口訪問。該組織對SoC FPGA的可編程邏輯方面進行了新的改進,因為即使沒有可編程邏輯,固定功能元件也可以工作。這意味著處理器系統可以“啟動”然后配置可編程邏輯。以前的非SoC方法要求首先配置可編程邏輯,然后處理器才能啟動。通過顛倒這個序列,可編程邏輯成為處理器的資源,并且可以更容易地與硬件開發并行地開發代碼。
圖1:Xilinx Zynq SoC FPGA框圖。 (由賽靈思提供)
事實上,代碼開發人員可以將SoC中的可編程邏輯視為一種硬件資源,用于加速在處理器上實現時速度過慢的代碼段。一個設計團隊成員可能將他們的活動集中在創建程序員請求的硬件加速上,或者程序員可能自己實現硬件。無論哪種方式,算法都成為可用的多種實現選項的開發重點。
當有多個面向性能的算法同時進行時,SoC方法似乎效果最好。 SoC FPGA取得巨大成功的一個應用領域是復雜的圖像處理。這些算法通常可以流水線化和/或并行化,使其成為FPGA加速的理想選擇。如果處理器還需要處理片上和片外的高帶寬流量(可能具有高速串行接口和大型片外緩沖存儲器),則從處理器卸載低級任務的額外硬件支持也可能需要支付大紅利
對SoC FPGA的多核響應
還有其他方法可以為圖像處理等應用實現并行和流水線實現。 MCU供應商采取的一種方法是在芯片上實現多個處理引擎(多核),以允許設計人員分解復雜的算法。當每個處理器的體系結構相同時,可以很容易地采用復雜的算法并將其分解為各自在不同但功能相同的處理器上執行的部分。
作為示例,德州儀器提供TMS320C66x多核固定和浮點數字信號處理器(DSP)具有8個DSP處理器以及網絡協處理器和多核導航器,可簡化使用硬件隊列的數據傳輸(圖2)。 DSP內核為各種復雜算法(如音頻,視頻,分析,工業自動化和媒體處理)提供極高的處理能力。
圖2:德州儀器(TI)多核DSP框圖。 (德州儀器公司提供)
多核架構的代碼開發與使用SoC FPGA的代碼開發有些類似,不同之處在于硬件加速是由DSP內核而不是可編程結構完成的。當一個核心無法足夠快地實現算法時,只需將另一個核心放在其上即可。繼續這樣做,直到你用完核心或達到你的性能目標。可能需要進行調整和優化以獲得最后的功耗/性能效率,但是一些更高級的工具可以通過提供有助于優化過程的性能和功耗配置文件來提供幫助。
雙核MCU
多核方法不需要僅用于最高性能的應用。通常,SoC FPGA可以在性能較低的應用中找到,在這些應用中需要優化功耗和處理能力。由于可編程結構可用于實現部分算法,因此實現所需的總功率可能遠遠低于高端DSP或多核解決方案。
MCU制造商也發現了這一趨勢,通過將雙核處理器放在單個設備上進行響應。在某些情況下,使用高性能處理器和低性能處理器。這允許高性能處理器實現算法的更復雜部分和低性能處理器,以處理不太復雜的管理任務。較低性能的處理器可以在大多數時間處于活動狀態,使用的功率低于高性能核心。 (請注意,多核系統可以使用類似的方法,只使用動態達到目標性能級別所需的核心數。這實現起來有點復雜,但如果算法需要,最終會非常有效各種性能水平在短時間內變化很大。)
利用高性能和低性能處理器的雙核MCU的一個例子是恩智浦半導體LPC4350 。如圖3所示,它下面有一個ARM Cortex-M4和一個Cortex-M0。 M4用于高性能任務,而M0可用于通用管理功能。實際上,如果不需要M4子部分甚至可以斷電,并且在處理請求需要時通電。這種方法適用于僅需要定期但需要快速響應處理數據的算法。作為一個例子,安全攝像機上的圖像處理在圖像變化時會非常沉重,但在圖像靜止時則不需要。
圖3:恩智浦雙核MCU框圖。 (恩智浦提供)
即便是低端也是可編程的
不要以為只有高端和中端MCU才能增加新的靈活性以提高靈活性。即使是低端MCU也在增加可編程功能,可能不是對SoC FPGA的響應,而是作為一種在可編程邏輯器件已經存在數十年的情況下“片上”拉出少量外部邏輯的方法。 Microchip PIC10F320增加了可編程邏輯,位于可配置邏輯單元(CLC)模塊中。 PIC10F320的框圖以及更詳細的CLC視圖如圖4所示.CLC可以根據器件輸入,內部時鐘,內部外設和寄存器位實現各種簡單的邏輯功能。 CLC甚至可以在低功耗模式下工作,使其成為喚醒事件的便捷來源,以便在不需要處理MCU時節省最大功率。
圖4:具有可編程邏輯框圖的Microchip MCU。 (由Microchip提供)
CLC在PIC10F320上特別有用,因為它只有幾個引腳。充分利用這些引腳并消除一些外部邏輯可以對電路板空間要求產生很大影響。即使在PAL和CPLD的早期階段,可編程邏輯提供的一大優勢。現在,隨著低端MCU將可編程邏輯放在芯片上,我們可能會看到更少的MCU旁邊的低端PLD。這不是一個新的轉折!
總之,MCU和SoC FPGA解決了類似的應用問題,并開始爭奪應用優勢。目前,挑戰主要在應用領域的最高端,但最近的創新可能會擴大MCU與可編程設備之間的應用重疊。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605204 -
mcu
+關注
關注
146文章
17316瀏覽量
352237 -
cpld
+關注
關注
32文章
1257瀏覽量
169524
發布評論請先 登錄
相關推薦
評論