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的效率,也好考慮系統運行必須的內存空間。