Memory 我能用“我能用”吗;说明;Atmel SAM E70处理器中的TCM用于数据传输?

Memory 我能用“我能用”吗;说明;Atmel SAM E70处理器中的TCM用于数据传输?,memory,arm,embedded,cortex-m,Memory,Arm,Embedded,Cortex M,我正在为Atmel微处理器开发一个应用程序。该MCU具有ARM Coretex-M7内核 Atmel已经在这个特定的MCU变体中实现了ARM TCM(紧耦合存储器)。Atmel似乎将TCM分为“ITCM”(说明TCM)和“DTCM”(数据TCM)两部分 我目前正在使用DTCM进行快速存储,通常来自中断。然而,ITCM目前实际上已关闭,尽管TCM的配置系统仍为其分配32K的数据 我在想,既然我不是在ITCM之外执行,而且ram已经分配好了,我可以使用ITCM来存储数据吗?Cortex-M7是一个冯

我正在为Atmel微处理器开发一个应用程序。该MCU具有ARM Coretex-M7内核

Atmel已经在这个特定的MCU变体中实现了ARM TCM(紧耦合存储器)。Atmel似乎将TCM分为“ITCM”(说明TCM)和“DTCM”(数据TCM)两部分

我目前正在使用DTCM进行快速存储,通常来自中断。然而,ITCM目前实际上已关闭,尽管TCM的配置系统仍为其分配32K的数据

我在想,既然我不是在ITCM之外执行,而且ram已经分配好了,我可以使用ITCM来存储数据吗?Cortex-M7是一个冯·诺依曼体系结构CPU,我看到的体系结构图显示,两个TCM内存段与CPU有单独的接口

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

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


如果两种方法都不用于代码,则可能不会对性能造成影响,但如果您在TCM中运行代码,则将它们与哈佛体系结构分离,从而允许并行指令获取和数据读取。ITCM的64位总线可能允许单周期指令和操作数提取,但我怀疑这对数据读/写是否有任何好处。

名称如何“说明TCM不清楚?它用于存储中断处理程序或其他与性能相关的功能。更好的方法是按预期使用它。他说:不要过早地进行优化。对代码进行基准测试和评测。首先确定热点并优化C中的热点。只有在这还不够的情况下,才考虑另一种方法,并将功能放在ITCM中。这将使大多数liekyl增加更多的性能增益,而不是将其用于datqa(如果这能起作用的话)。@Olaf-可能是AFICT的一部分,指令/数据的区别最初是用于早期的内核(ARM926EJ),将功能移入其中涉及将其视为普通RAM?还是我只是好奇?或者你似乎认为我没有做过其他的优化?我总是惊讶于在堆栈交换上“如果我做了这个怎么办”的问题被如此积极地否定。尝试和实验是一种很好的学习方式,中医药部分的文档最多也只有很少,我正在努力了解该设备如何更好地工作。为什么我不能要求做一些奇怪的事情?不太可能。ARMv7M是一种全新的体系结构。它离ARMv4远得多(比ARMv7A或R远得多。M7更不同。我的评论是正确的。@Olaf-Wat?不,我知道事实上我可以读写ITCM,因为atmel就是这样。重点是,考虑到它是
rwx
(同样,这是)我很好奇它的含义。砰,这正是我所好奇的行为。我显然需要阅读ARM文档。