On 02/05/2012 11:12 PM, Marcus Harnisch wrote:
> Data access to ITCM must always be possible, since otherwise literal
> pools wouldn't work. However, the system performance could be negatively
> affected, since both I-side and D-side will share a single
> interface. I'd rather avoid using ITCM for holding data that is as
> frequently accessed as the program stack.
Hi Marcus,
Thanks for your answer. Your explanation makes perfect sense. I think
the ITCM and DTCM have different data-ports to the RAM, and using one
for code and data will lead to collisions.
I did a little experiment with a 31 band audio-equalizer code (a nice
blend between arithmetic and memory accesses). When I move all the data
into the ITCM the overall performance drops by 20%.
My conclusion from these experiments are: Placing data into the ITCM is
okay, but better be done with data that is accessed infrequently.
Cheers,
Nils