本文通过研究软件流水相关技术, 结合TI DSP C6000 系列DSP 的硬件特性,探讨了DSP 软件流水的相关优化方法。通过性能比较,说明这些方法具有普遍的应用价值。
数字信号处理器DSP(Digital Signal Processing)是一种运算密集型处理器, 采用哈佛结构设计, 即数据总线和地址总线分开, 使程序和数据分别存储在不同的空间,允许取指令和执行指令完全重叠。DSP芯片内部嵌有硬件乘法器、累加器等功能单元,采用流水线结构,具有良好的并行特性。然而,在DSP 算法中存在大量的循环操作, 要提高系统的并行性, 就必须发掘循环中各循环体之间的指令级并行性。目前,在这方面己经提出的技术有循环展开和软件流水等。其中,循环展开是通过多次复制循环体和调整循环中止代码, 从而优化ILP 和增大指令调度的作用范围。这种方法有两个缺点: (1)指令调度不能越过新的循环体,在产生的代码中就会有过多的注满与清空流水线的部分,效率不高; (2)展开次数不易确定, 太少并行度不够, 太多会导致代码长度过大。而软件流水则避免了这些问题。本文将通过研究软件流水相关技术, 从代码和编译器的角度提出DSP软件流水的一些优化方法。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !