TI中文支持网
TI专业的中文技术问题搜集分享网站

DM6467处理速度没有DM6437快?

大家好,最近遇到奇怪的问题,

之前用SEED6437 做视频开发,视频处理速度为7帧每秒,DM6437的主频为600MHZ,

但是随着代码量增大,6437的L2只有128KB,有点力不从心了。

于是升级选用DM6467t,双核,DSP端主频1G,DDR速度300Mhz,

把程序移植到DM6467t后,发现速度只有2帧每秒!!!

最后发现是一个主要算法执行函数很费时间,而6437明显执行要快,

编译器的优化等级都是2,

找了好久没有找到问题所在?

甲方乙方:

球分析

State Lee1:

老兄是在那个城市?

Chris Meng:

回复 State Lee1:

你好,

DM6467t的DDR时钟可以到400Mhz(支持DDR-800),不知道你说的300Mhz是否是DDR的时钟频率。无论如何也是可以提高的。

我对比例一下DM6467的L1D比DM6437是要小点的。请问你的L2是否有配成部分cache?你是否有比较过cache的命中率?

甲方乙方:

回复 Chris Meng:

非常感谢您的回复!

目前问题没有解决。

我介绍下我的环境

系统 win7 64bit

DSP是裸机程序,没有使用任何系统

ccs5.5

仿真器 xds560plus

我现在把6467 DSP端配置为990M,ARM 495M,DDR的时钟频率为396M。

与DM6437一样,DM6467的L2全部配置成RAM。

现在视频处理帧速度只有DM6437的1/3~1/2

甲方乙方:

回复 Chris Meng:

我是菜鸟,请问怎么查看cahe的命中率,我的仿真器在ccs5.5的环境下,使用不了profile clock,

提示:

C64XP: GEL Output: C64XP: Error enabling a profile counter

甲方乙方:

回复 Chris Meng:

我看了下手册

DM6437      L1P 32KB, L1D 80KB, L2 128KB

DM6467T    L1P 32KB, L1D 32KB, L2 128KB

L1D 少了很多,

请问,会是这个原因吗?

Louis:

回复 甲方乙方:

   L1D CACHE的大小只是影响系统性能的一个指标。取决于函数的大小,如果算法关联度很高的函数加起来一次性无法放入L1D,就可能导致频繁的换页,L1D miss。这个可以通过profile来看。

  下面是C6000 DSP优化的wiki,供参考:

http://processors.wiki.ti.com/index.php/Optimization_Techniques_for_the_TI_C6000_Compiler?keyMatch=optimization%20COMPILER&tisearch=Search-EN-Everything

甲方乙方:

回复 Louis:

谢谢您的回复,

我的一个图像处理主函数很大,大约2000行。整个工程更大,仅仅.text段大约有80KB

1、L1D是否会放不下这个函数,导致程序变慢?

2、我把L2配置成部分cache是否可以行,解决运行速度慢的问题?

3、L2中 cache和SRAM 是怎么排列的?我的意思是CMD文件中SRAM地址如何分配,L2中首先是cache还是SRAM?

我分配64KB的SRAM和64KB cache, 下面哪种方式对呢?

DSP_L2: o = 0x00818000 l = 0x0000FFFF /* 64 kB DSP L2 RAM 64KB CACHE */

或者DSP_L2: o = 0x00828000 l = 0x0000FFFF /* 64 kB DSP L2 RAM 64KB CACHE */

 ,  

4、还有一个问题是关于MAR寄存器,我没有使用这个寄存器,他的作用是啥?

谢谢

Louis:

回复 甲方乙方:

1. 函数的大小,可以在生成的.map里面看到。

2.可以尝试打开部分L2-CACHE,去掉一些L2RAM。

3.如果是用CMD配置cache和Ram可以参考:spru862b.pdf的Example 2-1, 64k length 的值应该是0x10000而不是0xFFFF.

DSP_L2_RAM: o = 0x00818000 l = 0x00010000

赞(0)
未经允许不得转载:TI中文支持网 » DM6467处理速度没有DM6437快?
分享到: 更多 (0)