使用多核微控制器的三個優(yōu)勢
讓我們來看看多核微控制器相對于傳統(tǒng)單核微控制器的三個優(yōu)勢。
優(yōu)勢 #1 – 平衡性能和能源消耗
使用多核微控制器的第一個優(yōu)勢是它為開發(fā)人員提供了平衡性能和能耗的額外方法。在單核處理器中,開發(fā)人員主要依靠低功耗模式或時鐘縮放來最大限度地降低能耗(盡管可以采用數(shù)十種技術(shù))。多核解決方案允許開發(fā)人員通過使所有內(nèi)核以最高效率運行,從而獲得其設(shè)備所需的性能。當不需要所有馬力時,可以關(guān)閉內(nèi)核以節(jié)省能源并最大限度地延長電池壽命。
在微控制器領(lǐng)域,目前典型的多核解決方案是雙核實現(xiàn)。最常見的實現(xiàn)是將高性能、功能豐富的處理器(如 Cortex-M4 或 Cortex-M7)與低功耗 Cortex-M0+ 處理器配對。這允許低功耗 M0+ 處理低功耗狀態(tài),并且當需要完成一些需要處理的事情(例如 GUI 更新、運行機器學習推理等)時,可以重新打開 M4。這為嵌入式開發(fā)人員提供了幾種用于平衡性能和能耗的潛在配置文件。
優(yōu)勢 #2 – 關(guān)注點分離(域)
使用多核微控制器的第二個優(yōu)點是它允許通過分離關(guān)注點或域來分解應(yīng)用程序代碼。目前有三個主要的領(lǐng)域類別非常適合大多數(shù)應(yīng)用程序,但肯定還有其他的。這三個領(lǐng)域包括:
- 豐富/實時執(zhí)行
- 安全/非安全
- 應(yīng)用/通訊(Wi-Fi/BT)
在豐富/實時執(zhí)行實現(xiàn)中,應(yīng)用程序根據(jù)其時序要求分為兩個域。支持圖形用戶界面等豐富執(zhí)行功能的組件將位于一個內(nèi)核中,可能是 Cortex-M4/M7。支持傳感器采集和控制等實時要求的組件將位于第二個內(nèi)核中,可能是 Cortex-M0+。
在安全/非安全實現(xiàn)中,應(yīng)用程序的分解不是基于其執(zhí)行需求,而是基于安全問題。支持安全啟動、加密庫、安全通信或其他一些安全功能的組件將在一個處理器(如 Cortex-M0+)上執(zhí)行。再一次,在嵌入式開發(fā)中,通用應(yīng)用程序組件將從其他處理器(如 Cortex-M4/M7)執(zhí)行,這種實現(xiàn)的主要好處是 Cortex-M0+ 充當安全的處理器和執(zhí)行環(huán)境,它與應(yīng)用程序的其余部分是硬件隔離的。
在應(yīng)用程序/通信實現(xiàn)中,一個核心專用于專門處理一個通信堆棧。這個堆??梢允?Wi-Fi 堆棧、藍牙堆棧、其他一些通信堆棧,甚至可能是組合。這里的優(yōu)點是它可以擁有一個具有集成通信功能的微控制器。然后,第二個內(nèi)核專用于正常的應(yīng)用程序代碼。
這些是使用多核微控制器非常有意義的幾種實現(xiàn)方式,在某些情況下,甚至有兩個以上的內(nèi)核也可能有意義!
優(yōu)勢#3 – 工作負載分配
最后一個優(yōu)勢是它允許開發(fā)團隊分配工作負載。首先,我們可以將開發(fā)和維護應(yīng)用程序的工作量分配給多個嵌入式開發(fā)人員或團隊,我們可以有一個核心一應(yīng)用團隊和一個核心二應(yīng)用團隊,然后,每個團隊專注于其核心的應(yīng)用程序組件,并且顯然與第二個團隊在可能存在重疊關(guān)注或需要仔細協(xié)調(diào)核心之間的應(yīng)用程序行為的領(lǐng)域進行交互。
我們可以分配工作負載的第二種方式是相當明顯的,因為我們可以將我們的應(yīng)用程序工作負載分配到多個處理器上。我們可以獲得真正的并發(fā)應(yīng)用程序行為,因為我們有多個內(nèi)核。不要忘記,就像在使用 RTOS 的并發(fā)應(yīng)用程序中一樣,當我們有多個內(nèi)核并發(fā)時,我們可能會遇到有趣的競爭條件、時序問題、共享資源問題和其他并發(fā)行為問題。在內(nèi)核之間分離工作負載時,務(wù)必非常小心使用何種處理器間通信方法。
結(jié)論
多核微控制器無疑為嵌入式開發(fā)團隊提供了許多優(yōu)勢,可以幫助他們解決越來越復(fù)雜的系統(tǒng)問題。將應(yīng)用程序劃分為關(guān)注區(qū)域或域的能力目前是采用多核微控制器的主要驅(qū)動力。在考慮遷移到多核解決方案時,平衡性能與能耗以及分配工作負載的能力也是主要優(yōu)勢。