|
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是實抓Flash信號波形來看i.MXRT的FlexSPI外設(shè)下AHB讀訪問情形。
5 E9 x) e" X9 s* _上一篇文章 《實抓Flash信號波形來看i.MXRT的FlexSPI外設(shè)下AHB讀訪問情形(有預(yù)。 里痞子衡抓取了Cache關(guān)閉但Prefetch開啟下的AHB讀訪問對應(yīng)的Flash端時序波形圖,我們知道了FlexSPI的Prefetch功能確實在一定程度上改善了Flash訪問效率,但是AHB RX Buffer最大僅1KB(對i.MXRT1050而言),不可拆分成更小粒度Buffer去緩存不同F(xiàn)lash地址處的數(shù)據(jù)(對于同一AHB master而言),這樣對于代碼中多個不同小數(shù)據(jù)塊重復的Flash空間訪問,Prefetch機制并沒有明顯提升訪問效率。
: J) z7 a( Q/ v( R0 c針對這種不連續(xù)Flash地址空間頻繁訪問低效情況,ARM Cortex-M7內(nèi)核給出了解決方案,那就是L1 Cache技術(shù),今天痞子衡就來繼續(xù)測一測開啟L1 Cache下的Flash AHB讀訪問情形(本文主要針對D-Cache):
+ |8 m. s) K& r, D( l一、Cortex-M7的Cache功能對于Cortex-M系列家族(M0+/M3/M4/M7/M23/M33/M35P/M55)來說,L1 Cache僅在Cortex-M7和Cortex-M55內(nèi)核上存在,說白了,L1 Cache是專為高性能內(nèi)核配置的,而目前的i.MXRT1xxx系列微控制器都是基于Cortex-M7內(nèi)核。
; E2 i0 S/ m1 s/ \下面是i.MXRT1050的內(nèi)核系統(tǒng)框圖,可以看到它集成了32KB D-Cache,Cache經(jīng)由AXI64總線連到SIM_M7和SIM_EMS模塊,最終轉(zhuǎn)成AHB總線連接到FlexSPI模塊,因此對于Flash的AHB讀訪問是可以受到D-Cache加速的。 |
|