電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 46|回復(fù): 0
收起左側(cè)

Cortex-M7內(nèi)核的Cache是如何提升訪問效率的?且看硬核實(shí)測

[復(fù)制鏈接]

302

主題

307

帖子

1896

積分

三級會員

Rank: 3Rank: 3

積分
1896
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-5-8 22:48:00 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是實(shí)抓Flash信號波形來看i.MXRT的FlexSPI外設(shè)下AHB讀訪問情形。
7 t* c6 h+ \7 ~0 }' z7 w# e+ x上一篇文章 《實(shí)抓Flash信號波形來看i.MXRT的FlexSPI外設(shè)下AHB讀訪問情形(有預(yù)。 里痞子衡抓取了Cache關(guān)閉但Prefetch開啟下的AHB讀訪問對應(yīng)的Flash端時(shí)序波形圖,我們知道了FlexSPI的Prefetch功能確實(shí)在一定程度上改善了Flash訪問效率,但是AHB RX Buffer最大僅1KB(對i.MXRT1050而言),不可拆分成更小粒度Buffer去緩存不同F(xiàn)lash地址處的數(shù)據(jù)(對于同一AHB master而言),這樣對于代碼中多個不同小數(shù)據(jù)塊重復(fù)的Flash空間訪問,Prefetch機(jī)制并沒有明顯提升訪問效率。# F+ h0 x9 a) }
針對這種不連續(xù)Flash地址空間頻繁訪問低效情況,ARM Cortex-M7內(nèi)核給出了解決方案,那就是L1 Cache技術(shù),今天痞子衡就來繼續(xù)測一測開啟L1 Cache下的Flash AHB讀訪問情形(本文主要針對D-Cache):
8 C: N3 e1 k1 z6 A3 L8 v! G4 U一、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)核。% @+ N# W8 _* K
下面是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加速的。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表