ARM Cortex-M4 有缓存吗?
Is there a cache in the ARM Cortex-M4?
我想知道ARM Cortex-M4内部是否有缓存
我在技术参考手册中没有找到任何线索,但那是官方的还是隐藏的?我知道有些微控制器有缓存,但那是在总线和RAM之间,而不是在内核内部。
你知道有什么文件可以阐明这一点吗?
据我所知,没有为 Cortex-M4 内核定义缓存,official Arm documentation for Cortex-M4 中也没有提到缓存。但是,我知道许多基于 Cortex-M4 的微控制器都有缓存,有些只用于闪存加速,有些也用于访问 ram。使用紧耦合内存 (TCM) 而不是数据缓存也很常见,因为它们使程序具有更可预测的行为。
Cortex-M4 内部没有 'hidden' 缓存。没有文档支持这个,否则不会被隐藏。
系统级缓存和TCM当然是具体实现的细节,为此MPU可以针对不同区域指定缓存策略。
简答:
不,ARM Cortex-M4内核内部没有缓存。
长答案:
根据关于 ARM Cortex-M (link) 的维基百科页面,指令和数据缓存是 Cortex-M 架构的硅选项,而 Cortex-M4 不是包括这样的缓存。
可靠的来源是 ARM 应用说明 321:ARM Cortex™-M 内存屏障指令编程指南 (html / pdf),其中指出:
The Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, and Cortex-M4 processors do not have
any internal cache memory. However, it is possible for a SoC design to integrate a system level cache.
然后是:
Note: A small caching component is present in the Cortex-M3 and Cortex-M4 processors to accelerate flash memory accesses during instruction fetches.
此外,稍后在同一应用笔记中提到:
Some Cortex-M3 and Cortex-M4 designs might have an implementation specific program
cache to accelerate program memory accesses.
因此,总而言之,ARM Cortex-M4 core 不 包含(相关)缓存。
但是,建议查看您正在使用的实际微控制器的数据表。例如,NXP i.MX 7 系列 (link) 确实包含一个带有指令和数据缓存的 Cortex-M4,但正如您在问题中已经指出的那样,这在核心之外。
我想知道ARM Cortex-M4内部是否有缓存
我在技术参考手册中没有找到任何线索,但那是官方的还是隐藏的?我知道有些微控制器有缓存,但那是在总线和RAM之间,而不是在内核内部。
你知道有什么文件可以阐明这一点吗?
据我所知,没有为 Cortex-M4 内核定义缓存,official Arm documentation for Cortex-M4 中也没有提到缓存。但是,我知道许多基于 Cortex-M4 的微控制器都有缓存,有些只用于闪存加速,有些也用于访问 ram。使用紧耦合内存 (TCM) 而不是数据缓存也很常见,因为它们使程序具有更可预测的行为。
Cortex-M4 内部没有 'hidden' 缓存。没有文档支持这个,否则不会被隐藏。
系统级缓存和TCM当然是具体实现的细节,为此MPU可以针对不同区域指定缓存策略。
简答:
不,ARM Cortex-M4内核内部没有缓存。
长答案:
根据关于 ARM Cortex-M (link) 的维基百科页面,指令和数据缓存是 Cortex-M 架构的硅选项,而 Cortex-M4 不是包括这样的缓存。
可靠的来源是 ARM 应用说明 321:ARM Cortex™-M 内存屏障指令编程指南 (html / pdf),其中指出:
The Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, and Cortex-M4 processors do not have any internal cache memory. However, it is possible for a SoC design to integrate a system level cache.
然后是:
Note: A small caching component is present in the Cortex-M3 and Cortex-M4 processors to accelerate flash memory accesses during instruction fetches.
此外,稍后在同一应用笔记中提到:
Some Cortex-M3 and Cortex-M4 designs might have an implementation specific program cache to accelerate program memory accesses.
因此,总而言之,ARM Cortex-M4 core 不 包含(相关)缓存。
但是,建议查看您正在使用的实际微控制器的数据表。例如,NXP i.MX 7 系列 (link) 确实包含一个带有指令和数据缓存的 Cortex-M4,但正如您在问题中已经指出的那样,这在核心之外。