|
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形。% R" t% j' B! [# Q2 F
上一篇文章 《实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(有预取)》 里痞子衡抓取了Cache关闭但Prefetch开启下的AHB读访问对应的Flash端时序波形图,我们知道了FlexSPI的Prefetch功能确实在一定程度上改善了Flash访问效率,但是AHB RX Buffer最大仅1KB(对i.MXRT1050而言),不可拆分成更小粒度Buffer去缓存不同Flash地址处的数据(对于同一AHB master而言),这样对于代码中多个不同小数据块重复的Flash空间访问,Prefetch机制并没有明显提升访问效率。
, |' O, k8 A" Z$ A6 l% n) m针对这种不连续Flash地址空间频繁访问低效情况,ARM Cortex-M7内核给出了解决方案,那就是L1 Cache技术,今天痞子衡就来继续测一测开启L1 Cache下的Flash AHB读访问情形(本文主要针对D-Cache):
) ?3 R/ j% U: {4 e( \0 ^一、Cortex-M7的Cache功能对于Cortex-M系列家族(M0+/M3/M4/M7/M23/M33/M35P/M55)来说,L1 Cache仅在Cortex-M7和Cortex-M55内核上存在,说白了,L1 Cache是专为高性能内核配置的,而目前的i.MXRT1xxx系列微控制器都是基于Cortex-M7内核。
; p. c* u+ A U0 O下面是i.MXRT1050的内核系统框图,可以看到它集成了32KB D-Cache,Cache经由AXI64总线连到SIM_M7和SIM_EMS模块,最终转成AHB总线连接到FlexSPI模块,因此对于Flash的AHB读访问是可以受到D-Cache加速的。 |
|