采用非對(duì)稱(chēng)雙核 MCU 提高系統(tǒng)性能
1、背景介紹
隨著各個(gè)行業(yè)朝著智能化方向的發(fā)展,嵌入式產(chǎn)品對(duì)能耗和效率的要求越來(lái)越苛刻。特別是在智能電網(wǎng)、工業(yè)和醫(yī)療等領(lǐng)域,一個(gè)產(chǎn)品的核心 MCU 處理器面臨多重挑戰(zhàn)。比如,一個(gè)自動(dòng)化的馬達(dá)系統(tǒng)或者分布式工業(yè)系統(tǒng),一方面需要更多的數(shù)字信號(hào)處理能力來(lái)更精確地控制馬達(dá),另一方面也需要更多和更高級(jí)的網(wǎng)絡(luò)接口(CAN,Ethernet 或者 Wireless 等)來(lái)實(shí)現(xiàn)實(shí)時(shí)的分布式監(jiān)控或控制功能。再比如圖 1,一個(gè)太陽(yáng)能逆變系統(tǒng),一方面需要 DSP 引擎來(lái)實(shí)現(xiàn) DC/AC 或者 DC/DC 的算法,另一方面也需要將多個(gè)逆變器通過(guò) Wireless 或者以太網(wǎng) Ethernet 組成網(wǎng)絡(luò),從而實(shí)現(xiàn)智能診斷和監(jiān)控。
面對(duì)這些需求,有兩種傳統(tǒng)的方案可以解決。一種方案是采用兩顆單獨(dú)的 MCU/DSP,其中一顆 MCU或者 DSP 用于實(shí)現(xiàn)數(shù)字信號(hào)處理或者控制算法,另外一顆 MCU 實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧或者圖形顯示界面等。這類(lèi)方案的存在諸多缺點(diǎn),首先兩顆 MCU 增加了 PCB 的面積,而且雙 MCU 之間的通訊的可靠性和數(shù)據(jù)吞吐率受到限制,另外,功耗也將顯著增加,程序開(kāi)發(fā)者甚至需要維護(hù)多個(gè)軟硬件開(kāi)發(fā)環(huán)境。另外一種方案是采用更高主頻和更多片內(nèi)資源的單核 MCU/DSP,分時(shí)地完成數(shù)據(jù)處理和輔助通信或顯示功能,這種方案顯著增加了系統(tǒng)成本和功耗,最致命的是,當(dāng)客戶(hù)的產(chǎn)品需要增加新的功能的時(shí)候,工程師需要重新計(jì)算 MCU 內(nèi)核的資源和不同任務(wù)所需要的運(yùn)行時(shí)間,需要更多的測(cè)試時(shí)間,因此不利于擴(kuò)展和產(chǎn)品維護(hù)。
面對(duì)種種不足,異構(gòu)雙核架構(gòu)應(yīng)運(yùn)而生,可以很好解決上述問(wèn)題。事實(shí)上,非對(duì)稱(chēng)雙核架構(gòu) MCU 可以將不同的系統(tǒng)任務(wù)分配于不同的 MCU 內(nèi)核,分工精細(xì),并且可以最佳地平衡性能、功耗和成本。兩個(gè)MCU 內(nèi)核間的通信可以通過(guò)不同的方式來(lái)實(shí)現(xiàn),比如分享內(nèi)存區(qū)和消息區(qū),非常簡(jiǎn)單和易于實(shí)現(xiàn)。在下面的章節(jié),本文將以 TI 最新的 Concerto 系列產(chǎn)品 TMS320F28M35H52C 為例,詳細(xì)闡述非對(duì)稱(chēng)異構(gòu)雙核 MCU 的優(yōu)勢(shì),及其為系統(tǒng)帶來(lái)的性能提升。
2、C2000 Concerto 雙核 MCU 的特點(diǎn)
C2000 Concerto 系列 MCU 是 TI 推出的創(chuàng)新性的異構(gòu)雙核產(chǎn)品。Concerto 混合架構(gòu)通過(guò)將業(yè)界最好的實(shí)時(shí)控制功能和通訊功能集成在一個(gè)芯片內(nèi),提供高性能、高效率和可靠性,從而實(shí)現(xiàn)實(shí)時(shí)控制環(huán)路和低延時(shí)的快速通訊響應(yīng)[1]。以下從內(nèi)核、存儲(chǔ)器架構(gòu)、通訊外設(shè)等方面闡述其特點(diǎn)。Concerto 系列 TMS320F28M35H52C 功能框圖如下圖 2 所示。
首先是高性能的內(nèi)核。Concerto 系列 MCU 包含 Cortex-M3 和 C28x 兩個(gè)內(nèi)核。Cortex-M3 內(nèi)核是Concerto 的主系統(tǒng) Master 子系統(tǒng)內(nèi)核,主頻最高可運(yùn)行于 125 MHz。Cortex-M3 內(nèi)核是 32 位的ARM 核,超高的性?xún)r(jià)比,已經(jīng)被業(yè)界廣泛使用,其性能和穩(wěn)定性也已被用戶(hù)所廣泛接受,非常適用于通訊和事件控制。C28x 是新一代的 32 位 DSP 內(nèi)核,是 TI 大多數(shù)現(xiàn)有的 C2000 產(chǎn)品的內(nèi)核,最高可運(yùn)行于 150 MHz,Concerto 中的 C28x 帶浮點(diǎn)運(yùn)算單元(Floating-Point Unit),VCU 協(xié)處理器等,性能超強(qiáng),非常適用于大吞吐量的數(shù)據(jù)處理。C28x 作為 Control 子系統(tǒng),宏觀上受控于 Cortex-M3 Master 子系統(tǒng)。
其次是優(yōu)化的存儲(chǔ)器架構(gòu)。如圖 2 所示,TMS320F28M35H52C 的 C28x 可支配 512KB 帶 ECC 校驗(yàn)的 Flash 存儲(chǔ)器,64KB ROM,36KB 帶 ECC 校驗(yàn)的 RAM;Cortex-M3 可支配 512KB 帶 ECC 校驗(yàn)的Flash 存儲(chǔ)器,64KB ROM,32KB 帶 ECC 校驗(yàn)的 RAM [3]。在兩個(gè)內(nèi)核之間,是共享的外設(shè)和存儲(chǔ)區(qū)??偣?64K 字節(jié)的共享 RAM,4K 的消息 RAM。
再次是外設(shè)。如圖 2 所示,TMS320F28M35H52C 的 C28x 內(nèi)核可支配 DMA、高速 ADC(3MSPS)、多路高精度的 PWM(24 路 PWM和 16 路高精度 HRPWM)、eCAP、eQEP 等為閉環(huán)控制所優(yōu)化的控制外設(shè);Cortex-M3 內(nèi)核可支配多個(gè)串行接口、以太網(wǎng)、CAN 等工業(yè)通訊外設(shè)。同時(shí),兩個(gè)內(nèi)核還可共享 ADC 等外設(shè),增強(qiáng)整個(gè)系統(tǒng)的靈活性。
最后是軟件架構(gòu)。如圖 3 所示,controlSUITE 是一個(gè)集成所有 C2000 MCU 的開(kāi)發(fā)資源和軟件包和開(kāi)發(fā)平臺(tái),它為 TMS320F28M35H52C 的開(kāi)發(fā)者提供了外設(shè)例程、DSP 庫(kù)、文檔、開(kāi)發(fā)板資料。ControlSUITE 還提供免費(fèi)的全功能實(shí)時(shí)操作系統(tǒng) TI-RTOS 平臺(tái),如圖 4 所示,TI-RTOS 是基于SYS/BIOS 實(shí)時(shí)內(nèi)核,集成了穩(wěn)定的中間件,例如 TCP/IP 協(xié)議棧、USB 協(xié)議棧、FAT 文件系統(tǒng)、IPC多核通訊組件等。
3、IPC 內(nèi)核間通信
Cortex-M3 和 C28x 內(nèi)核之間的通信主要完成兩大功能,一是數(shù)據(jù)通信,二是傳遞狀態(tài)和控制信息。IPC(內(nèi)核間通訊)的數(shù)據(jù)通信需要較大的 RAM 來(lái)支持,而傳遞狀態(tài)和控制等信息只需要一系列狀態(tài)標(biāo)志位即可。此外,Cortex-M3 側(cè)的 UART4 與 C28x 側(cè)的 SCIA;以及 Cortex-M3 側(cè)的 SSI3 與 C28x側(cè)的 SPIA 在 Concerto 內(nèi)部實(shí)現(xiàn)互聯(lián),不需要在芯片外部硬件連接,而是否使能這類(lèi)功能則有 CortexM3 系統(tǒng)配置。
3.1 Message RAM 內(nèi)存區(qū)
TMS320F28M35H52C 使用 Message RAM 實(shí)現(xiàn) IPC 的數(shù)據(jù)通信。如圖 5 所示,2K 字節(jié)的 MTOC Message RAM 用于從 Master (Cortex-M3)子系統(tǒng)向 Control(C28x)子系統(tǒng)傳遞消息;2K 字節(jié)的CTOM Message RAM 用于從 Control 子系統(tǒng)向 Master 子系統(tǒng)傳遞消息。由于兩個(gè)子系統(tǒng)都配有 DMA外設(shè),因此,DMA 也可以讀寫(xiě) Message RAM,從而提高系統(tǒng)效率。Message RAM 區(qū)通過(guò) RAM 內(nèi)存的讀寫(xiě)權(quán)限保證了 Message 的互斥訪問(wèn),例如,C28x CPU 與 DMA 可以讀寫(xiě)訪問(wèn) CTOM Message RAM 區(qū),而 Cortex-M3 CPU 和 uDMA 只能讀訪問(wèn) CTOM Message RAM。同樣,兩個(gè)內(nèi)核對(duì)于MTOC Message RAM 區(qū)的讀寫(xiě)訪問(wèn)權(quán)限則正好相反。
評(píng)論