1.万方数据上的一篇论文,据说进过DMA优化后,硬件仿真软件仿真的CPU周期数相差很小,该方法亟待测试和验证
http://d.wanfangdata.com.cn/Periodical_dqdzjxxb200902019.aspx
2.对cache优化的几个方面做了很好的介绍,讲得很详细
http://www.cnblogs.com/jinrize/archive/2010/01/29/1659126.html
3.对DMA的具体操作进行了举例
http://hi.baidu.com/zcug_071/blog/item/5c5f5dc12a683d38e5dd3b4f.html
4.讲得比较全,值得参考
http://hi.baidu.com/shmily_soc/blog/item/2d8f5b83bc0639a70df4d217.html
几个要点及问题的总结:
-1.由于图像数据量大,采用片上内存较小的DSP芯片时,大量的运行时间将浪费在片内、外存储器的数据交换上,因此为了提高性能,需专注于存储结构的优化。
0.CPU只访问L1的数据,程序代码和数据必须经过存储器到L2,再由L2到L1的逐级搬移才能被CPU访问。
1.L1D Cache不命中访问L2 Cache的时钟延迟是8个时钟周期,而L1D Cache不命中访问L2 SRAM的时钟延迟是6个时钟周期。
为什么访问L2 Cache的时钟延迟要高呢?
2.Cache优化流程为应用级->程序级->算法级。应用级优化即为合理安排Cache和SRAM的大小,以及采用DMA搬运数据。程序级的优化旨在减少conflict miss。
3.LIP优化策略:
在同一循环里或在某些特定时间帧里面反复调用的多个函数,需要考虑重排。
L1P Cache的Cache line为32byteC64x的指令长度一般为4B,这就表示在L1P Cache读取指令的时候,其实每次是读取8条指令。基于此,保证每个函数在存储器中的起始地 址是32B对齐是有效利用L1P Cache的方式。
4.简单配置L2 Cache提高Cache性能十分有限,在L2 SRAM上开辟双缓冲实现乒乓操作,可以在很大程度上提高Cache性能?值得验证!
采用缓冲结构的时候,缓冲区的大小设置是需要慎重考虑的。既要考虑DMA的效率,也好考虑系统运行必须的内存空间。