首页 文章

我可以在Atmel SAM E70处理器中使用“指令”TCM来获取数据吗?

提问于
浏览
2

我正在为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 回答

  • 3

    From the ARM Cortex-M7 Processor Technical Reference Manual Section 5.8 TCM Interfaces

    预取单元(PFU)可以从任何TCM接口获取指令 . 加载存储单元(LSU)和AHBS接口可以使用任何TCM接口读取和写入数据 . 如果代码放在ITCM中并且数据放在DTCM中,则可以获得最佳性能 . 但是,没有放置TCM,代码和数据的功能限制 .

    如果您既不使用代码,那么可能没有性能损失,但如果您在TCM中运行代码,那么将它们从哈佛架构中分离出来,允许并发指令获取和数据读取 . ITCM的64位总线可能允许单周期指令和操作数提取 - 但我怀疑这将对数据读/写有任何好处 .

相关问题