TIwilliam hill官网
直播中

沈家春

7年用户 224经验值
私信 关注

DSP如何在L2CACHE中区分哪一块数据是代码,需要载入到L1PCACHE中,哪一块是数据,需要载入到L1DCACHE中呢?

本帖最后由 一只耳朵怪 于 2018-5-25 15:27 编辑

由于L2CACHE是  数据和指令混合存放的,但是L1PCACHE 是专门用来存放指令的,L1DCACHE是专门用来存放数据的。
我的问题是,DSP如何在L2CACHE中区分哪一块数据是代码,需要载入到L1PCACHE中,哪一块是数据,需要载入到L1DCACHE中呢?

回帖(5)

李秋年

2018-5-25 00:29:02
这个由CMD文件定义程序段和数据段。
举报

沈家春

2018-5-25 00:35:06
引用: szoldman 发表于 2018-5-25 00:29
这个由CMD文件定义程序段和数据段。

哦这样的,谢谢!
那如果这样的话,
1。
是不是说,CPU会一直自动从L1P中读取命令,然后译码执行,因为CPU主要是为了执行程序,当读取一条命令时候,需要取操作数的时候,
再调用L1Dcache  也就是数据cache,从低级的存储器中调取数据。所以,CPU首要是 和指令CACHE 交互,需要用到数据的时候,才会启用数据cache。
举报

李秋年

2018-5-25 00:40:52
引用: viczeng 发表于 2018-5-25 00:35
哦这样的,谢谢!
那如果这样的话,
1。

是的,CPU通过程序总线从L1P中读取指令,同时协同数据总线从L1D中读取数据。
举报

沈家春

2018-5-25 00:57:49
引用: szoldman 发表于 2018-5-25 00:40
是的,CPU通过程序总线从L1P中读取指令,同时协同数据总线从L1D中读取数据。

  我还想问另外一个问题,就是在DSP 下面CCS调试程序代码的时候,如何分析L1P L1D cache 以及L2CACHE的运行状态,判断是否发生miss 和 hit 等。通常情况下是用什么方法呢?
我看到CCS里面有个tools的cache tag ram viewer好像是能分析cache的,但是不知道怎么用,我程序跑起来之后,看不到任何cache的运行信息,不知道是不是哪里设置错误了?我现在用CCS3.3  硬件DSP是DM648,然后用的是xds560 PCI 的jtag仿真器。我搜了网上帖子,有些人说,软件仿真simulator可以,我想问下,到底是emulator可以还是simulator可以?还是我哪里设置错了?我就想分析下我的代码中cache的利用率,以便优化。谢谢!
举报

更多回帖

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