This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Flash/RAM memory interfaces on Cortex-M7 based MCU for fast code execution

Hi, experts!

I would have few questions regarding Cortex-M7 and (in my case) STM32F7 MCU, if anyone here is familiar with them. I am not sure how to use MCU's different flash/RAM interfaces to gain maximum performance in code execution.

There are several options:

1. executing code through ITCM bus from flash with ST's "ART accelerator" enabled (0 wait state access)

2. executing code through ITCM bus from ITCM RAM (0 wait state, smaller size)

3. executing code through AXI/AHB bridge from flash with I-Cache enabled (0 wait state, not sure about that)

4. executing code through AXI/AHB bridge from flash with I-Cache disabled (slow)

So, my question is, which option is the best? Isn't it the first option which brings 0 wait states on the entire flash memory? Why would anyone use the ITCM RAM, if it is so much smaller in size and has the same latency? Or is there any other reason, not known to me?

Also, what would be benefit of using I-Cache for code execution from flash through AXI, if the latency is the same as with ART accelerator?

Thanks for sharing your knowledge!