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