如今的智能產(chǎn)品越來越多地需要將傳統(tǒng)的實時嵌入式設(shè)計需求與要求更高的應(yīng)用級軟件結(jié)合在一起。除了更大的計算負載外,這些產(chǎn)品還需要支持通過先進的媒體服務(wù)(如觸摸屏、高分辨率 3D 圖形和圖像傳感器)與用戶交互。
隨著需求的擴大,開發(fā)人員在減小功耗、成本和系統(tǒng)尺寸方面所面臨的壓力也更大,因此不得不尋找更有效的方法來替代傳統(tǒng)的多子系統(tǒng)設(shè)計。
本文將討論這些設(shè)計需求的演變,以及到目前為止,處理器是如何滿足這些需求的。然后將介紹并展示如何使用 NXP Semiconductors 的新型處理器。這些處理器為開發(fā)人員提供了一種更簡單的滿足這一不斷增長的需求的解決方案,讓設(shè)計能夠同時處理實時計算和應(yīng)用計算要求。
升級處理器并保持代碼投資
開發(fā)人員通常使用與特定應(yīng)用處理要求匹配的多核微處理器來升級其設(shè)計的計算能力。使用這種方法,開發(fā)人員既可實現(xiàn)性能提升,又可保持與現(xiàn)有代碼庫的兼容性,以及相應(yīng)器件系列的使用體驗。
例如,使用 NXP i.MX 6 應(yīng)用處理器系列,設(shè)計人員不僅可以保持代碼兼容性,而且能夠使用配備單個 Arm? Cortex?-A9 應(yīng)用處理器內(nèi)核的 i.MX 6Solo、配備兩個內(nèi)核的 i.MX 6Dual 或集成四個內(nèi)核的 i.MX 6Quad,來提升性能。
這種升級應(yīng)用處理能力的需求,也在曾被視為傳統(tǒng)嵌入式系統(tǒng)的設(shè)計中快速發(fā)展。對于這些設(shè)計,產(chǎn)品制造商希望為家用電器、工業(yè)控制器、醫(yī)療儀器等設(shè)備增加智能性。為此,半導(dǎo)體供應(yīng)商提供了異構(gòu)多核處理 (HMP) 器件,這些器件可同時集成應(yīng)用處理器內(nèi)核和嵌入式處理器內(nèi)核。例如,NXP i.MX 8M 系列結(jié)合了多至四個 Arm Cortex-A53 應(yīng)用處理器內(nèi)核,以及一個 Arm Cortex-M4 嵌入式處理器內(nèi)核。
只需使用這一單個器件,開發(fā)人員就可以打造出智能音頻產(chǎn)品。這些產(chǎn)品可充分利用應(yīng)用處理器來增強、過濾或以其他方式處理音頻數(shù)據(jù)。然后,音頻系統(tǒng)依靠嵌入式處理器內(nèi)核來執(zhí)行播放所需的實時功能(圖 1)。在嵌入式處理器執(zhí)行實時操作期間,應(yīng)用處理器可以置于低功耗模式,從而降低整體功耗。當實時操作完成時,嵌入式處理器只需向應(yīng)用處理器發(fā)送喚醒信號。
圖 1:異構(gòu)多核處理器尤其適用于智能產(chǎn)品設(shè)計,既可提供高性能計算與實時功能,同時又不影響緊張的功率預(yù)算。(圖片來源:NXP Semiconductors)
除了異構(gòu)內(nèi)核外,NXP i.MX 8M 系列還集成了各種多媒體資源,包括 4K 視頻處理單元 (VPU) 和高性能 3D 圖形處理單元 (GPU)。因此,該系列可以為越來越多的視頻及 3D 圖形智能產(chǎn)品提供有效解決方案。
盡管如此,開發(fā)人員在構(gòu)建高性能系統(tǒng)時,仍然面臨著電池及線路供電系統(tǒng)對低功耗需求日益增長的挑戰(zhàn)。為應(yīng)對這一挑戰(zhàn),NXP i.MX 8M Mini 處理器系列采用先進的半導(dǎo)體工藝技術(shù)制造,可解決高性能混合負載處理與功耗降低之間的需求矛盾。
高性能、低功耗計算
NXP i.MX 8M Mini 處理器屬于首款采用 14 納米 (nm) FinFET 工藝技術(shù)制造的 NXP HMP 系列,專為新興的工業(yè)和物聯(lián)網(wǎng) (IoT) 系統(tǒng)而設(shè)計,這些系統(tǒng)對高性能、高安全性和低功耗都提出了要求。與 NXP i.MX 8M 系列一樣,NXP i.MX 8M Mini 也集成了一個 Arm Cortex-M4 嵌入式處理內(nèi)核,以及最多四個 Arm Cortex-A53 應(yīng)用處理內(nèi)核,還有一個全面的安全子系統(tǒng)以及多個連接和 I/O 選項(圖 2)。
圖 2:NXP i.MX 8M Mini 處理器結(jié)合了最多四個 Arm Cortex-A53 應(yīng)用處理器內(nèi)核和一個 Arm Cortex-M4 嵌入式內(nèi)核,還有新興智能產(chǎn)品所需的全套安全、多媒體、系統(tǒng)功能以及 I/O 接口。(圖片來源:NXP Semiconductors)
為了支持嵌入式設(shè)計,與之前的 NXP i.MX 8M 相比,i.MX 8M Mini 減少了某些 I/O 通道的數(shù)量及其多媒體子系統(tǒng)的高分辨率能力。例如,i.MX 8M Mini 器件包括商業(yè)版 (MIMX8MM6DVTLZAA) 和工業(yè)版 (MIMX8MM6CVTKZAAA),提供一個單一著色器 GPU 和一個 1080p 60 赫茲 (Hz) VPU,而 NXP i.MX 8M 則提供四著色器 GPU 和 4K VPU。i.MX 8M Mini 系列的其他成員包括商業(yè)版 (MIMX8MM5DVTLZAA) 和工業(yè)版 (MIMX8MM5CVTKZAA) 器件,則完全去除了 VPU。與早期的 NXP i.MX 8M 一樣,i.MX 8M Mini 能夠讓開發(fā)人員利用處理器對多種存儲器類型的支持(包括雙倍數(shù)據(jù)速率 3 低電壓 (DDR3L)、DDR4 和低功耗 DDR4 (LPDDR4)),實現(xiàn)性能與成本之間的進一步平衡。
降低功耗
為了進一步優(yōu)化性能和功耗,開發(fā)人員可利用 NXP i.MX 8M Mini 功能,以自動或編程方式切換到低功耗工作模式。在一定條件下,應(yīng)用內(nèi)核可以自動切換到空閑模式,并且關(guān)閉 GPU、VPU 和應(yīng)用內(nèi)核,同時對大多數(shù)內(nèi)部邏輯進行時鐘選通,但保留對 L2 數(shù)據(jù)緩存的供電。在此模式下,Arm Cortex-M4 內(nèi)核仍可繼續(xù)運行,以執(zhí)行更多傳統(tǒng)嵌入式處理任務(wù),如傳感器數(shù)據(jù)采集等。
掛起模式是最省電的模式,通過同時禁用用于管理存儲器接口的雙倍數(shù)據(jù)速率控制器 (DDRC),延長空閑狀態(tài)下功耗降低的時間。最后,安全非易失性存儲 (SNVS) 模式只保留對 SNVS 邏輯和實時時鐘的供電。
i.MX 8M 中采用的 14 nm FinFET 工藝技術(shù)具有功耗降低特性,在掛起和 SNVS 模式下表現(xiàn)尤為明顯。在采用 FinFET 的 i.MX 8M Mini 中,掛起模式的功耗大約為 7.81 毫瓦 (mW)。而在早期的 i.MX 8M 中,功能類似的模式(稱為深度休眠模式)消耗 197 mW。類似的功耗降低也發(fā)生在 SNVS 模式,在該模式下,i.MX 8M Mini 的功耗約為 0.11 mW,而早期的 i.MX 8M 功耗約為 17 mW。
像 i.MX 8M Mini 這樣的復(fù)雜器件具有大量的功能塊和微調(diào)工作模式,使工程師面臨諸多嚴格的實現(xiàn)要求。與其他同類器件一樣,i.MX 8M Mini 也依賴多個功率域來優(yōu)化電源管理和效率。要啟動和關(guān)閉這些器件,必須嚴格遵照指定的上電和斷電順序。
對 i.MX 8M Mini 上電時,首先為 SNVS 存儲體中的 GPIO 前級驅(qū)動器加電,通常為 1.8 伏。在 2 毫秒 (ms)(最多 2.4 ms)內(nèi),必須為 SNVS 內(nèi)核邏輯加電,通常為 0.8 伏。隨后,再通過 12 個步驟,按順序?qū)⑻囟ㄐ盘柣螂娏┙o i.MX 8M Mini 的各個引腳,每一步按 0.015 ms 到 20 ms 間隔定時進行。
為器件斷電的順序正好相反,但是連續(xù)步驟之間的延遲均為 10 ms。無論是哪一種情況,若不遵守這些準則,都可能使器件無法啟動,導(dǎo)致上電期間電流過大,或者在最壞的情況下,會造成器件發(fā)生不可逆轉(zhuǎn)的損壞。
處理器的 PC 板物理設(shè)計也有自身的嚴格要求。對于處理器 486 焊球 14 x 14 毫米 (mm) 封裝的布局,NXP 建議使用至少 8 層的 PC 板層疊結(jié)構(gòu),并分配足夠的層專門用于電源軌,以滿足電流電阻 (IR) 下降規(guī)范的要求。與此同時,布局工程師必須確保高速線路上的串擾最小,包括受支持、以 1.5 千兆赫 (GHz) 和 3,000 百萬次/秒 (MT/s) 速度運行的存儲器器件線路。
快速開發(fā)
為幫助工程師快速開始應(yīng)用開發(fā)或加快定制硬件設(shè)計的開發(fā),NXP 推出了 NXP i.MX 8M Mini EVK(評估套件)和相關(guān)的參考設(shè)計(圖 3)。該評估套件以基板和系統(tǒng)級模塊 (SOM) 板形式交付,提供了一個完整的系統(tǒng),包括外部 LPDDR4 存儲器和閃存,以及 USB 和其他接口。
圖 3:NXP i.MX 8M Mini EVK 板組提供了一個完整的系統(tǒng)平臺,用于立即評估 i.MX 8M Mini 處理器,以及快速開發(fā)異構(gòu)多核處理器應(yīng)用。(圖片來源:NXP Semiconductors)
除千兆位以太網(wǎng)外,該套件還包含 Wi-Fi 和藍牙連接選項。提供的擴展板包括 MINISASTOCSI 相機模塊和 MX8-DSI-OLED1 有機發(fā)光二極管 (OLED) 觸摸屏,用于幫助進行視頻和顯示應(yīng)用設(shè)計。
借助用于嵌入式 Linux? 和嵌入式 Android? 操作環(huán)境的可用預(yù)建鏡像,開發(fā)人員可以立即使用該套件評估 i.MX 8M Mini 處理器,并運行樣例應(yīng)用程序。對于構(gòu)建自己的軟件應(yīng)用的開發(fā)人員,NXP 免費提供 MCUXpresso 軟件開發(fā)工具包 (SDK),該工具包提供了一整套軟件組件,用于構(gòu)建典型的高性能嵌入式應(yīng)用(圖 4)。
圖 4:MCUXpresso 軟件開發(fā)工具包 (SDK) 架構(gòu)由整套軟件層組成,包括驅(qū)動程序、板級支持包,以及開發(fā)大多數(shù)嵌入式應(yīng)用所需的可選組件。(圖片來源:NXP Semiconductors)
使用 NXP 的在線 MCUXpresso SDK Dashboard,開發(fā)人員可以針對 GCC Arm Embedded 工具鏈或用于 Arm 的 IAR Embedded Workbench 進行 SDK 配置,還可以添加可選的中間件組件,包括 Arm Cortex 微控制器軟件接口標準 (CMSIS) DSP 庫和 Amazon FreeRTOS。配置后的 SDK 分發(fā)包將包含 Arm 標準庫、外設(shè)驅(qū)動程序、用于 FreeRTOS 的外設(shè)驅(qū)動程序包裝器,以及一套齊全的軟件樣例。在 SDK 分發(fā)包的軟件樣例中,有一對應(yīng)用程序演示了一種關(guān)鍵的信息交換設(shè)計模式,該模式是實現(xiàn)異構(gòu)計算的基礎(chǔ)。
在任何多核計算環(huán)境中,單獨的處理器都需要有效的機制來傳遞請求和共享數(shù)據(jù)。對于 i.MX 8M Mini EVK 應(yīng)用,NXP 使用的是 RPMsg-Lite——遠程處理器消息傳遞 (RPMsg) 協(xié)議的精簡版。RPMsg 協(xié)議是開放式非對稱多處理 (OpenAMP) 框架項目的組成部分,旨在為異構(gòu)多核系統(tǒng)中多核之間的通信提供標準接口。NXP 的 RPMsg-Lite 解決了小型嵌入式系統(tǒng)中的資源限制,縮小了封裝尺寸,并取消了與這些系統(tǒng)不一致的功能。
在 SDK 分發(fā)包中,樣例應(yīng)用程序 rpmsg_lite_pingpong_rtos 演示了一次簡單的交換,即使用 RPMsg-Lite 實現(xiàn)不同處理器之間的簡單 ping-pong 交互(清單 1)。在為另一個“遠程”處理器創(chuàng)建 RPMsg 隊列 (my_queue) 和端點 (my_ept) 后,“主機”應(yīng)用處理器向遠程內(nèi)核發(fā)送信號。在收到來自遠程內(nèi)核的握手響應(yīng)后,主機處理器將開始執(zhí)行一個循環(huán),該循環(huán)使用阻塞策略等待遠程內(nèi)核的“ping”消息,然后再發(fā)送自己的“pong”響應(yīng)。
void app_task(void *param) {
。..my_rpmsg = rpmsg_lite_remote_init((void *)RPMSG_LITE_SHMEM_BASE, RPMSG_LITE_LINK_ID, RL_NO_FLAGS); while (!rpmsg_lite_is_link_up(my_rpmsg))
;
PRINTF(“Link is up!\r\n”);
my_queue = rpmsg_queue_create(my_rpmsg);
my_ept = rpmsg_lite_create_ept(my_rpmsg, LOCAL_EPT_ADDR, rpmsg_queue_rx_cb, my_queue);
ns_handle = rpmsg_ns_bind(my_rpmsg, app_nameservice_isr_cb, NULL);
rpmsg_ns_announce(my_rpmsg, my_ept, RPMSG_LITE_NS_ANNOUNCE_STRING, RL_NS_CREATE);
PRINTF(“Nameservice announce sent.\r\n”);
/* Wait Hello handshake message from Remote Core.*/
rpmsg_queue_recv(my_rpmsg, my_queue, (unsigned long *)&remote_addr, helloMsg, sizeof(helloMsg), NULL, RL_BLOCK);
while (msg.DATA 《= 100)
{ PRINTF(“Waiting for ping.。.\r\n”);
rpmsg_queue_recv(my_rpmsg, my_queue, (unsigned long *)&remote_addr, (char *)&msg, sizeof(THE_MESSAGE), NULL,
RL_BLOCK);
msg.DATA++; PRINTF(“Sending pong.。.\r\n”);
rpmsg_lite_send(my_rpmsg, my_ept, remote_addr, (char *)&msg, sizeof(THE_MESSAGE), RL_BLOCK);
} PRINTF(“Ping pong done, deinitializing.。.\r\n”);
rpmsg_lite_destroy_ept(my_rpmsg, my_ept);
my_ept = NULL;
rpmsg_queue_destroy(my_rpmsg, my_queue);
my_queue = NULL;
rpmsg_ns_unbind(my_rpmsg, ns_handle);
rpmsg_lite_deinit(my_rpmsg);
msg.DATA = 0; 。..}
列表 1:這個片段來自 MCUXpresso 軟件開發(fā)工具包提供的樣例代碼,演示了在異構(gòu)多核處理器中不同處理器間實現(xiàn)交互的基本設(shè)計模式。(代碼來源:NXP Semiconductors)
開發(fā)人員可以基于這一簡單的交換,輕松創(chuàng)建完整操作,以跨越多個處理器分配任務(wù)執(zhí)行。另一個樣例應(yīng)用程序 sai_low_power_audio 實質(zhì)上將 RPMsg-Lite 用作更高層簡化型實時消息傳遞 (SRTM) 應(yīng)用協(xié)議的低級數(shù)據(jù)鏈路層。在此應(yīng)用程序中,Arm Cortex-A53 處理器使用該 SRTM 協(xié)議請求 Arm Cortex-M4 處理器播放共享存儲器中的音頻文件。在控制了共享緩沖區(qū)之后,M4 將執(zhí)行多項操作,最終執(zhí)行智能直接存儲器訪問 (SDMA) 事務(wù),以將數(shù)據(jù)傳輸?shù)竭m當?shù)拇a,最后傳輸?shù)酱?a target="_blank">音頻接口 (SAI) 進行音頻輸出。在執(zhí)行這些操作期間,A53 內(nèi)核可以進入低功耗模式。盡管在設(shè)計上比 ping-pong 應(yīng)用程序更復(fù)雜,但 sai_low_power_audio 樣例應(yīng)用程序演示了開發(fā)人員如何能夠使用異構(gòu)多核處理器來實現(xiàn)性能最大化,同時充分降低智能產(chǎn)品的功耗。
總結(jié)
智能產(chǎn)品正在將傳統(tǒng)的實時嵌入式處理系統(tǒng)與強大的應(yīng)用處理能力結(jié)合在一起。然而,開發(fā)人員需要在滿足這些處理要求的同時,還要滿足人們對于電池和線路供電型系統(tǒng)中低功耗產(chǎn)品的持續(xù)預(yù)期。
NXP i.MX 8M Mini 應(yīng)用處理器采用先進的半導(dǎo)體工藝制造,既可提供高性能異構(gòu)多核處理能力,又能保持低功耗。使用 NXP i.MX 8M Mini 器件,開發(fā)人員可以更好地滿足日益復(fù)雜的智能產(chǎn)品中的嵌入式系統(tǒng)設(shè)計對于高性能計算的新興需求。
評論
查看更多