This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6000 dsp 二级cache机理

关于C6000 DSP 二级cache的工作机理有一些问题,像和大家讨论下。谢谢!


cpu一上电,就要开始一条条的执行指令,但是由于指令(代码段.text)往往存放在DDR或者SDRAM中。

问题1:
是不是说,代码段.text中的指令要从DDR或者SDRAM中被搬运或者映射到L1P cache中才能被执行?

问题2:
如果是要搬运到L1P的话,如何搬运,因为DSPC6000 有二级缓存cache,DDR和L1P CACHE 之间还隔着
L2 CACHE,是不是说,分两步走,step1,指令先从DDR映射或者搬运到L2 cache中,step2,指令再从
L2 cache中映射或者搬运到L1p cache中。

问题3:

如果问题2成立的话,由于L2 cache和L1p cache 以及L1d cache三者大小和cache line大小都不同,以
DM648为例,L1P cache 32KB linesize 为32byte 直接映射 L1D cache 32KB linesize 64byte 二路
相联映射, L2 cache 256KB linesize 为128byte 。

是不是说,step1,指令从DDR到L2 cache时候,一次性搬运L2 cache linesize 大小,也就是128byte大小指令。
然后step2,指令从L2cache 搬运到L1p cache时候,一次性搬运L1P CACHE linesize大小,也就是32byte 长度
指令?


问题4:

如果上面问题都成立的话,那么这些步骤step1和step2都是由谁来完成的?系统自动完成的么?还是要人为干预,
编程实现?


问题5:
最后关于DDR cacheability ,如果DDR开启了CACHE 功能,是不是就像上面描述的step1呢?开启CACHE之后,DDR
会自动定期向L2cache 搬运指令或者代码?