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