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

问题描述 投票:2回答:1

我正在为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内核会对性能产生什么影响?

memory arm embedded cortex-m
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位总线可能允许单周期指令和操作数获取 - 但我怀疑这将对数据读/写有任何好处。

© www.soinside.com 2019 - 2024. All rights reserved.