當今的大多數嵌入式系統都依賴于片上閃存或SRAM作為程序存儲器(固件)。然而,這些存儲器在成本和功耗方面通常很昂貴,并且還將程序大小限制在片上實現的存儲器量上。協議和存儲器設計的最新進展使固件能夠以就地擴展(XiP)方式直接從片外非易失性存儲器(NVM)設備中運行,這種方法可能會緩解上述挑戰。
本文將介紹用于嵌入固件的傳統解決方案的優缺點。隨后將對 XiP 解決方案進行深入討論,最后就如何選擇最佳 XiP 架構提出建議。
嵌入式閃存長期以來一直是微控制器(MCU)的支柱。這些MCU通過一個或多個NVM陣列來增強片上易失性存儲器陣列,用于存儲固件和其他常量。要實現這一目標,需要通過大量額外的制造步驟,用NVM單元增強基本的CMOS工藝。過去,添加這些制造步驟的成本很小,但隨著CMOS技術的進步,將標準CMOS工藝轉變為支持NVM的工藝變得越來越復雜和昂貴。事實上,雖然當今量產中最先進的CMOS工藝低于10nm,但帶有嵌入式閃存的CMOS在40nm處落后于多代。
結果是,雖然MCU供應商可以使用更快,更便宜且需要更低功率的工藝技術來構建產品,但嵌入式NVM的使用使他們無法這樣做。即使他們選擇支持嵌入式NVM的老一代,支持閃存的工藝與不支持閃存的工藝之間的價格差距也可能超過40%。此外,將特定的 NVM 大小提交到 MCU 中可能適用于一個應用程序,但對于另一個應用程序來說可能是錯誤的容量。
無論面臨所有這些挑戰,嵌入式NVM仍將在很長一段時間內成為MCU的支柱。對于可以在不太先進的CMOS工藝中實現的較小設計,使用嵌入式閃存將是最有效的解決方案。但更高性能、更低功耗的MCU需要替代解決方案。
使用嵌入式閃存的另一種方法是由外部串行閃存器件備份的片上SRAM陣列。啟動后,外部閃存的內容被復制到片內SRAM,然后MCU開始從SRAM執行。該解決方案的最大優點是SRAM可以采用最先進的CMOS工藝制造,而無需修改工藝。但是,此解決方案需要兩個固件副本 - 一個在外部閃存中,另一個在SRAM中。大型片上SRAM陣列即使在高級工藝節點中也相當昂貴。而且,由于SRAM會泄漏電流,因此當系統處于省電模式時需要關閉它們,每次MCU喚醒時都需要重復耗電且耗時的復制操作。最后,與嵌入式閃存一樣,特定MCU中SRAM的尺寸是固定的,對于特定應用的需求來說,它可能太大或太小。
MCU供應商正在尋找新的內存架構,以滿足新興智能物聯網邊緣設備的性能和功耗要求。XiP的使用正在成為高性能、低功耗系統的首選解決方案。借助XiP,MCU可以在標準CMOS工藝技術中實現,而只有外部閃存陣列需要特殊的NVM工藝。MCU通過保存常用代碼段的指令緩存進行了增強。每當處理器在緩存中找不到所需的指令(緩存未命中)時,MCU 就會啟動對外部閃存的訪問,以帶來缺失的指令并將其存儲在緩存中。隨著新的JEDEC xSPI協議(JESD 251)的引入,閃存的接口可以達到200MHz,在雙數據速率(DDR)中切換8位寬的數據路徑。
最近,恩智浦和意法半導體都推出了可以使用外部閃存進行就地擴展(XiP)操作的MCU。意法半導體的STM32L4+和STM32L5分別是基于Arm Cortex-M4和M33內核的中端MCU,而高端恩智浦 i.MX RT1050和RT10xx系列的其他成員則實現了具有32KB指令緩存的600MHZ雙問題Cortex-M7。恩智浦還通過其基于M4的中端Kinetis K8x產品和最近推出的基于Arm Cortex-M33的MCURT600支持XiP。意法半導體MCU和Kinetis K8x實現了片上閃存和對XiP的支持的組合。RT600 和 RT10xx 產品的設計沒有片上閃存,因此價格非常激進。
選擇用于就地擴展的外部閃存設備時,首先要問的問題是固件的哪些部分將在 XiP 模式下運行。一些設計人員選擇混合方法,將程序的性能關鍵部分保留在芯片上(ROM、閃存或SRAM),并在XiP模式下使用外部閃存來擴展系統。
有關此的問題:
程序的全部或部分是否從片上ROM、閃存或SRAM執行?如果是,這些內存類型中的哪一種?
程序的全部或部分是否會以XiP方式直接從外部閃存中執行?
如果(a)的答案是SRAM,則需要在SoC外部使用閃存,以便在啟動時加載程序。設計人員可以選擇Adesto Phoenix(標準閃光燈)、Fusion(針對電池操作優化的閃光燈)或EcoXiP(針對XiP優化的八閃光燈)。對于對成本敏感且吞吐量不重要的應用程序,應選擇 Phoenix。Fusion適合具有非常嚴格的功率限制的最佳應用。在這種情況下,只有當客戶還需要 XiP 模式下的高性能,或者需要八通道閃存設備的吞吐量來實現非常快速的啟動或頻繁的數據讀取操作時,才應考慮 Adesto 的 EcoXiP,例如人工智能推理引擎。
假設(b)的答案是肯定的(至少部分固件需要XiP),下一個問題是確定需要多少性能。由于采用了高速八通道 DDR 接口,EcoXiP 的吞吐量大約是標準閃存設備的 4 倍。此外,包裝并繼續命令進一步提高了可實現的吞吐量。有許多問題要問:
SoC 是否包含指令緩存?(如果沒有指令緩存,XiP性能將非常低;但是EcoXiP相對于Quad設備的優勢將更加顯著)
CPU 將以什么頻率運行,SPI 總線的頻率是多少?
在 XiP 中運行時需要什么級別的性能?
設備是否需要現場軟件更新(通常稱為無線 (OTA) 更新)?
(c)的答案至關重要。在低頻和對XiP性能要求較低的情況下,直接從標準四通道SPI閃存設備執行是相當可行的。但是,即使指令緩存中的失誤百分比非常小,與用完 EcoXiP 相比,從 Quad 設備執行將提供大約 50% 的 CPU 性能。
請注意,如果對 (d) 的響應是肯定的,則 EcoXiP 的邊寫邊讀功能將使 OTA 更新變得更加容易,前提是 SoC 在沒有其他代碼存儲存儲器的情況下構建(僅依賴于 XiP)。還有其他無需隨寫即讀即可進行 OTA 更新的解決方案,但它們都是 SRAM 密集型的,需要復雜的固件。
審核編輯:郭婷
-
mcu
+關注
關注
146文章
16992瀏覽量
350310 -
嵌入式
+關注
關注
5068文章
19019瀏覽量
303274 -
存儲器
+關注
關注
38文章
7452瀏覽量
163605
發布評論請先 登錄
相關推薦
評論