
圖6:多核嵌入式 MCU 示例(PSoC 6 BLE)
處理器間通訊(實現(xiàn)外設(shè)共享和信息交換):
多核 MCU 通過需要處理器間通訊(IPC)來協(xié)調(diào)內(nèi)核之間的運行。IPC 充當分配處理器間消息的通信管理器?,F(xiàn)代 CPU 架構(gòu)(如 ARM Cortex)支持硬件和固件中的多核通信,比如 SEV(發(fā)送事件)指令在執(zhí)行時會提示設(shè)備中的所有核心。MCU 供應(yīng)商采用多種方法來實現(xiàn) IPC:
中斷法:這種方法讓一個內(nèi)核向另一個內(nèi)核發(fā)送一個中斷來指示一個應(yīng)用程序事件。通常中斷程序非常緊湊,不會占用太多的代碼存儲空間。與任何中斷機制一樣,每個中斷都有自己的 ISR(中斷服務(wù)程序),通過它可以讓相應(yīng)的內(nèi)核執(zhí)行特定的任務(wù)。在實際的數(shù)據(jù)傳遞中,有一個可以被多個內(nèi)核訪問的共享內(nèi)存。除了共享數(shù)據(jù)之外,它還提供了請求和確認消息的機制。
郵箱:郵箱是 RAM 中的專用存儲空間,用于讓每個 CPU 相互發(fā)送和接收消息。每個內(nèi)核都要維護自己的 RAM 內(nèi)存(郵箱)并將消息發(fā)送到其他內(nèi)核的郵箱。
消息隊列:消息隊列使用共享內(nèi)存的兩個區(qū)域來存儲每個核心發(fā)送給另一個核心的消息。第一個區(qū)域是被稱為命令緩沖器的專用存儲器,用于存儲從主機發(fā)送到從機的命令。另一個專用存儲器被稱為消息緩沖器,它使從機能夠響應(yīng)主機。

圖7:處理器間通訊(IPC)的各種模式
信號量:信號量是一種防止多個源同時訪問共享資源的機制。在多核處理器中,共享硬件位置作為信號量指示特定內(nèi)核是否正在使用特定的共享外設(shè)等。在訪問外設(shè)之前,系統(tǒng)中的其他內(nèi)核會讀取信號量狀態(tài)以查看是否可用。
串行存儲器接口(IoT 內(nèi)存的選擇):
內(nèi)存是任何物聯(lián)網(wǎng)系統(tǒng)不可缺少的組成部分。其功能主要是代碼和數(shù)據(jù)存儲?,F(xiàn)代物聯(lián)網(wǎng)設(shè)備不斷增長的智能化需求帶動了對更大代碼和數(shù)據(jù)存儲器的需求。但是將所有這些內(nèi)存作為內(nèi)部存儲器集成到設(shè)備中會增加 MCU 的芯片尺寸和成本。另一種方法是根據(jù)需要提供外部擴展內(nèi)存。這樣開發(fā)人員就能夠根據(jù)最終應(yīng)用程序的需要添加內(nèi)存。另外,如果在開發(fā)過程中內(nèi)部存儲空間預(yù)算不足,則可以增加外部存儲器而不必重新設(shè)計整個系統(tǒng)。
了解外部存儲器接口的速度和安全性以及使用方法也很重要。通常情況下,在節(jié)省 MCU上有限的 IO 引腳方面,串行存儲器比并行存儲器更好?;?SPI 的串行存儲器為數(shù)據(jù)記錄提供了理想的接口速度,而直接執(zhí)行外部代碼則需要更高的速度。這些要求使 MCU 制造商必須提供 SPI 的替代品。以下是不同方案的數(shù)據(jù)吞吐量速度比較。
SPI:支持1位/循環(huán)的吞吐量
雙路SPI:支持2位/循環(huán)的吞吐量
四路SPI:支持4位/循環(huán)的吞吐量
雙四路SPI:支持1字節(jié)/循環(huán)的吞吐量
通常情況下,MCU 同時支持多種類型的存儲器,為開發(fā)人員提供了最大的靈活性。
由于許多物聯(lián)網(wǎng)系統(tǒng)會處理用戶的個人數(shù)據(jù),因此確保數(shù)據(jù)的安全尤為重要。代碼存儲器也同樣需要保護,以防止設(shè)備被非法入侵。外部存儲器在安全性方面更加脆弱,因此需要特殊的機制來保護外部存儲的數(shù)據(jù)。為此,MCU 使用各種加密技術(shù)(例如 AES、DES、RSA)來保護數(shù)據(jù)和代碼免受非法訪問。例如,賽普拉斯半導(dǎo)體的 PSoC 6 BLE MCU 提供了一個特殊的串行存儲器接口(SMIF)外設(shè),該外設(shè)支持直接執(zhí)行外部代碼的 XIP(現(xiàn)場執(zhí)行)模式和記錄數(shù)據(jù)的 MMIO(內(nèi)存映射 IO)模式。它使用特殊命令進行控制,比如閃存的編程/擦除、存儲器設(shè)備的睡眠模式輸入等。

圖8:串行存儲接口(SMIF)示例