我想知道ARM Cortex-M4内部是否有缓存。
我在技术参考手册中没有找到任何线索,但是它是官方的还是隐藏的呢?我知道一些微控制器有缓存,但那是位于总线和RAM之间,而不是在核心内部。
您是否知道任何澄清这一点的文档?
我想知道ARM Cortex-M4内部是否有缓存。
我在技术参考手册中没有找到任何线索,但是它是官方的还是隐藏的呢?我知道一些微控制器有缓存,但那是位于总线和RAM之间,而不是在核心内部。
您是否知道任何澄清这一点的文档?
简短回答:
不,ARM Cortex-M4 内核内部没有缓存。
详细回答:
根据维基百科关于 ARM Cortex-M (link)的页面,指令和数据缓存是 Cortex-M 架构的硅选项,而 Cortex-M4 并没有包括这样的缓存。
可靠的来源是《ARM Cortex™-M 编程指南:内存屏障指令》(html / pdf),其中提到:
Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3 和 Cortex-M4 处理器都没有内部缓存。
但是,SoC 设计可以集成系统级缓存。
之后它还补充道:
注意:Cortex-M3 和 Cortex-M4 处理器中存在一个小的缓存组件,在指令提取过程中加速 flash 存储器访问。
此外,在同一应用说明中还提到:
因此,总结一下,ARM Cortex-M4核心不包含(相关)缓存。某些 Cortex-M3 和 Cortex-M4 设计可能具有特定于实现的程序缓存,以加速程序存储器访问。
在Cortex-M4内部没有“隐藏”的缓存。如果有文档支持,那么它就不会是隐藏的。
系统级别的缓存和TCM当然是特定实现的细节,因此MPU可以为不同区域指定缓存策略。