2016-12-30 83 views
1

我正在开发Atmel应用程序SAME70Q21微处理器。该MCU具有ARM Coretex-M7内核。我可以在Atmel SAME70处理器中使用“指令”TCM数据吗?

爱特梅尔在这个特殊的MCU变体中实现了ARM TCM(紧耦合存储器)。 Atmel似乎将TCM分为“ITCM”(指令TCM)和“DTCM”(数据TCM)两部分。我正在使用DTCM进行快速存储,通常来自中断。但是,ITCM目前实际上已关闭,但TCM的配置系统仍分配了32K的数据。

我在想,因为我没有执行ITCM,并且内存已分配,我可以使用ITCM进行数据存储吗? Cortex-M7是一个冯诺依曼体系结构CPU,我所看到的架构图显示了两个TCM内存段具有与CPU分离的接口。

链接描述文件中的DTCM和ITCM内存空间都是rw(为了使用ITCM,实际上您实际上必须在运行时将代码重新定位到其中)。 (ab)以这种方式使用ARM内核的性能影响是什么?

+0

“**指令** TCM不知道怎么办?它的意思是存储中断处理程序或其他性能相关函数,更好的方法是按照预期使用它。做一些过早的优化,对你的代码进行基准测试和分析,找出热点并优先使用C语言进行优化,只有这样才可以考虑采用不同的方法,并将这些功能放在ITCM中。它可以用于datqa(如果可以的话) – Olaf

+1

@Olaf - 也许AFICT,指令/数据区别最初用于较早的核心(ARM926EJ),并将函数移入它的部分涉及将其视为普通RAM?或者事实上,我只是好奇?或者你认为我没有做过其他优化? –

+1

我总是惊讶于“什么如果我这样做的话“在堆栈交换中被如此积极地否定。尝试和尝试是一种很好的学习方式,中医部分的文档至多是最少的,我试图了解该设备如何更好地工作。为什么我不能问一些奇怪的事情? –

回答

2

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

预取单元(PFU)可以从任何TCM接口的取指令。负载存储单元(LSU)和AHBS接口可以分别使用任何TCM接口读写数据。如果代码放置在ITCM中并且数据位于DTCM中,则可以获得最佳性能。然而,没有功能限制,其中TCM,代码和数据被放置在

如果您既没有使用代码,那么有可能是没有性能损失,但如果你中医运行的代码,然后将它们分开的好处从哈佛架构,允许同时取指令和数据读取。 ITCM的64位总线大概允许单周期指令和操作数提取 - 但我怀疑这对数据读/写有什么好处。

+0

巴姆,那正好记录我很好奇的行为。我显然需要阅读ARM文档。 –

相关问题