论文部分内容阅读
嵌入式系统是以应用为核心的计算机系统,是计算机市场中增长最快的领域。嵌入式系统一般采用片上高速静态随机访问存储器SRAM(Static Random Access Memory)与片外低速动态随机访问存储器DRAM(Dynamic Random Access Memory)相结合的层次化结构来实现存储速度、容量、成本三方面的均衡。片上高速SRAM分为硬件管理的Cache和软件管理的SPM(Scratch pad Memory)两种类型,SPM在器件能耗、硅片面积、实时性保证等方面具有明显优势,已逐步取代Cache成为嵌入式系统中最重要的片上存储器。
SPM由编译器负责管理,编译器决定了SPM数据分配与空间管理、SPM与片外DRAM之间数据传输等资源安排调度。嵌入式系统不断扩大的应用领域和持续增长的SPM优化需求对管理SPM的编译技术提出了巨大的挑战,基于编译指导的存储空间利用、运行时间效能、器件功耗等课题已成为当前SPM领域的研究热点。
本文以嵌入式程序中最占用运行时间及能量消耗的循环结构为研究对象,研究了提高空间利用率和运行时间性能、降低功耗三个方面的SPM编译优化问题。创新性工作和贡献概述如下:
(1)提出了基于存储器访问模式的空间复用编译优化技术。
SPM是容量受限的片上高速缓存器件,本文重点研究了SPM空间受限情况下的编译优化技术,首次提出基于存储器访问模式的SPM空间复用编译优化方法。根据循环迭代内部数组的存储器访问模式,确定可互相复用SPM空间的数组。只为循环迭代中部分数组分配SPM空间,其它数组与已分配空间的数组进行空间复用。循环迭代内部数组之间采用SPM空间复用优化之后,每个循环迭代所占用的SPM空间减少,既定容量的SPM就可为更多个数的循环迭代提供数据空间。
(2)提出了基于存储器访问模式的数据流水编译优化技术。
本文首次提出了编译指导的数据流水优化管理方法,有效减少数据传输冗余操作,提升嵌入式系统运行时间性能。本方法将片上SPM逻辑上划分为两个相等的部分,实现CPU数据处理和DMA数据传输的并行流水操作。同时,通过对循环迭代内部数据的存储器访问模式分析,如果某数组相关操作数据由本次或之前循环迭代计算产生,DMA就不用从片外存储器往SPM装载该数组的元素。通过在编译器插入数据传输指令之前进行冗余检查,避免冗余数据装载到SPM,减少了数据传输代价。
(3)提出了基于电压频率调整的功耗节省编译优化技术。
本文研究了编译指导的SPM嵌入式系统的功耗节省优化问题,首次提出基于动态电压频率调整DVFS(Dynamic Voltage andFrequency Scaling)的SPM功耗管理方法。主要思想是利用CPU数据处理和DMA数据传输这两种操作的时间性能不平衡性,两者之间的运行时间性能差为实现动态电压频率调整创造了机会。通过检测CPU数据处理和DMA数据传输之间的时间隙,插入适当的模式设置指令,使用单一调整和动态调整两种方式降低CPU的供电电压和时钟频率。在保证系统运行时间限制要求前提下,有效降低了功耗。
理论分析和大量实验证明,本文提出的三种SPM编译优化技术能够有效地提高SPM的空间利用率和系统运行时间性能,并减少系统能量消耗。