TIwilliam hill官网
直播中

沈家春

7年用户 224经验值
私信 关注
[问答]

C6000 DSP二级cache的工作机理,是不是说,代码段.text中的指令要从DDR或者SDRAM中被搬运或者映射到L1P cache中才能被执行?

本帖最后由 一只耳朵怪 于 2018-6-22 14:18 编辑

关于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 搬运指令或者代码?

回帖(6)

沈家春

2018-6-22 02:46:59
DSP C64x  cpu  在取指令时候,如何判断自己想要的指令是否存在L1P cache中,是否存在L2cache 中,还是存在DDR或者SDRAM中。
cpu一上电,从第一条取指令开始的时候,所有cache中包括L1P cache  L1D cache和L2 cache中的内容是不是都是0?
举报

李润基

2018-6-22 03:03:14
呵呵 你cache研究的很深入啊 关注一个。
举报

沈家春

2018-6-22 03:09:41
引用: Jazzye 发表于 2018-6-22 03:03
呵呵 你cache研究的很深入啊 关注一个。

举报

沈家春

2018-6-22 03:28:07
引用: viczeng 发表于 2018-6-22 03:09
<blockquote class="quote"/>

顶起来
举报

更多回帖

发帖
×
20
完善资料,
赚取积分