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