協議和存儲器設計的最新進展使得能夠以原位制動 (XiP) 方式直接從片外非易失性存儲器 (NVM) 設備運行固件。
當今的大多數嵌入式系統都依賴于片上閃存或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 位寬數據路徑切換。
最近,恩智浦和意法半導體都推出了MCU,可以使用外部閃存進行原位掃描(XiP)操作。意法半導體的STM32L4+和STM32L5分別是基于Arm Cortex-M4和M33內核的中檔MCU,而高端恩智浦 i.MX RT1050和RT10xx系列的其他成員則實現了600MHZ雙問題Cortex-M7和32KB指令緩存。恩智浦還通過其基于中檔M4的Kinetis K8x產品和最近推出的RT600(基于Arm Cortex-M33的MCU)支持XiP。意法半導體的MCU和Kinetis K8x實現了片上閃存和對XIP支持的組合。RT600 和 RT10xx 產品的設計沒有片上閃光燈,使它們能夠達到非常激進的價格點。
為原位訪問選擇外部閃存設備時,首先要問的問題是固件的哪些部分將在 XiP 模式下運行。一些設計人員選擇混合方法,將程序的性能關鍵部分保留在芯片上(在ROM、閃存或SRAM中),并在XiP模式下使用外部閃存來擴展其系統。
與此相關的問題:
全部或部分程序是從片上ROM、閃存還是SRAM執行的?如果是,這些內存類型中有哪些?
全部或部分程序是否會以 XiP 方式直接從外部閃存中執行?
如果(a)的答案是SRAM,則需要在SoC外部使用閃存在引導時加載程序。設計人員可以選擇阿德斯托鳳凰(標準閃光燈)、融合(針對電池操作優化的閃光燈)或 EcoXiP(針對 XiP 優化的八通道閃光燈)。對于成本敏感且吞吐量不重要的應用程序,應選擇 Phoenix。Fusion將適合具有非常嚴格的功率限制的最佳應用。在這種情況下,只有當客戶還需要XiP模式下的高性能或需要八通道閃存設備的吞吐量以實現非常快速的啟動或頻繁的數據讀取操作時,才應考慮Adesto的EcoXiP-就像人工智能推理引擎一樣。
假設(b)的答案是肯定的(至少部分固件需要XiP),下一個問題是弄清楚需要多少性能。由于采用了高速八通道 DDR 接口,EcoXiP 可提供大約 4 倍于標準閃存設備的吞吐量。此外,“包裝并繼續”命令進一步提高了可實現的吞吐量。有許多問題要問:
SoC 是否包含指令緩存?(如果沒有指令緩存,XiP性能將非常低,但是EcoXiP相對于四通道設備的優勢將更加顯著)
CPU 將以什么頻率運行,SPI 總線的頻率是多少?
在 XiP 中運行時需要什么級別的性能?
設備是否需要現場軟件更新(通常稱為無線 (OTA) 更新)?
(c)的答案是至關重要的。在低頻和對XiP性能的低要求下,直接從標準四通道SPI閃存器件中執行是相當可行的。但是,即使指令緩存中只有很小百分比的未命中,與耗盡 EcoXiP 相比,在 Quad 設備之外執行也能提供大約 50% 的 CPU 性能。
請注意,如果對 (d) 的響應為正,則 EcoXiP 的邊寫讀取功能將使 OTA 更新更加容易,前提是 SoC 是在沒有其他代碼存儲存儲器(僅依賴于 XiP)的情況下構建的。還有其他用于OTA更新的解決方案,沒有邊寫邊讀,但它們都是SRAM密集型的,需要復雜的固件。
審核編輯:郭婷
-
嵌入式
+關注
關注
5069文章
19023瀏覽量
303465 -
存儲器
+關注
關注
38文章
7455瀏覽量
163615 -
sram
+關注
關注
6文章
764瀏覽量
114637
發布評論請先 登錄
相關推薦
評論