我正在为Atmel SAME70Q21微处理器开发一个应用程序 . 该MCU具有ARM Coretex-M7内核 .
Atmel在这种特殊的MCU变体中实现了ARM TCM(紧耦合存储器) . Atmel似乎将TCM分为两部分“ITCM”(指令TCM)和“DTCM”(数据TCM)
我目前正在使用DTCM进行快速存储,通常来自中断 . 但是,ITCM目前实际上已关闭,尽管TCM的配置系统仍然会为其分配32K数据 .
我在想,既然我没有执行ITCM,并且已经分配了ram,我可以使用ITCM进行数据存储吗? Cortex-M7是Von Neumann架构CPU,我见过的架构图显示两个TCM内存段具有与CPU不同的接口 .
DTCM和ITCM内存空间在链接器脚本中都是 rw
(要使用ITCM,实际上您必须在运行时将代码重定位到它中) . (ab)以这种方式使用ARM内核会对性能产生什么影响?
1 回答
From the ARM Cortex-M7 Processor Technical Reference Manual Section 5.8 TCM Interfaces:
如果您既不使用代码,那么可能没有性能损失,但如果您在TCM中运行代码,那么将它们从哈佛架构中分离出来,允许并发指令获取和数据读取 . ITCM的64位总线可能允许单周期指令和操作数提取 - 但我怀疑这将对数据读/写有任何好处 .