论文部分内容阅读
二维SIMD结构是在嵌入式系统中提高多媒体处理能力的有效系统结构。该结构是指N×N个处理单元按一定的拓扑结构连接而成的阵列结构,同行/列的处理单元以SIMD方式工作,不同行/列并行执行。基于这种结构上数据和计算的并行性,它通常被用作多媒体加速部件与通用处理器核集成在一个SOC上,并由通用处理器完成应用程序中串行部分的计算。目前,二维SIMD结构在学术界和工业界都很受关注,许多高校和公司均有基于二维SIMD结构的产品。由于二维SIMD结构的特殊性和多媒体应用的特点,目前对于二维SIMD结构的研究大多着眼于如何提高程序的并行性从而提高性能,忽略了该结构在功耗方面的问题。随着移动科技的飞速发展,二维SIMD结构作为多媒体加速部件被越来越多的应用到移动设备上,由于电池体积和重量的限制,设备功耗的问题日益凸显。目前低功耗技术在硬件层面上已经发展的相对成熟,如果想要取得更好的性能/功耗比,就要采用软件级的低功耗技术。现在软件级的低功耗技术存在着大量的研究工作,如编译器指导的电压调节技术、关闭空转部件减少系统能量消耗等。本文在深入分析了二维SIMD体系结构和多媒体应用程序代码的基础上,提出了一种在编译级进行低功耗优化的算法。作为多媒体加速部件,在系统执行串行操作时二维SIMD结构基本处于空闲状态。在执行二维SIMD并行操作时,由于多媒体程序数据类型小、并行性高的特点,并非所有二维SIMD部件都全程参与运算。这就给适时关闭空转的部件,降低时钟动态功耗和静态功耗提供了很大的空间。本文针对这两个时间段内的能量消耗,采用动态关闭空转部件的方法,在编译源码的同时对代码进行分析,寻找合适的位置插入特殊的指令,让二维SIMD功能部件开启或者关闭。硬件结构识别出这些指令,执行开启或者关闭操作。我们修改了在SimpleScalar基础上实现的二维SIMD结构模拟器,并在这个平台上测试了算法优化的结果。实验数据显示算法能够有效的节省系统的能量消耗,同时对性能影响很小,在可接受范围内。本文的主要贡献如下所述:1.针对多媒体应用程序,提出了一种基于动态关闭空转部件的二维SIMD结构低功耗调度算法。2.针对二维SIMD结构中不同功能单元的工作特性,分别提出调度方案。3.针对多媒体程序的特点,提出了二维SIMD结构中存储部件的局部化调度方案。4.分析实验结果,给出了一些多媒体程序的优化建议,以降低其运行在二维SIMD结构上的功耗。