论文部分内容阅读
随着半导体制造工艺和大规模集成电路设计能力的发展,嵌入式设备体积越来越小,功能却越来越强大,由此导致系统能耗问题日益突出。研究表明,存储子系统的能耗是整个片上系统能耗的重要来源,降低存储子系统的能耗可以有效降低整个片上系统的能耗。作为一个片上SRAM, Scratch-Pad Memory(SPM)因其体积小、功耗低、访问快速、有实时性保证及片内外统一编址等优势有逐渐代替Cache的趋势。本文围绕这一主题,重点研究了如何利用SPM进行嵌入式系统能耗优化,降低因存储访问带来的能耗,提出了能降低存储子系统功耗的编译期SPM动态管理策略,并讨论了SPM布局优化对系统功耗的影响。针对现有SPM动态管理策略仅仅单独考虑程序指令或数据变量作为置入SPM的候选对象这一情况,提出了一种基于时间戳的SPM动态管理算法。通过分析应用程序的动态调用情况,建立基于程序调用关系和时间戳的扩展控制流图,综合考虑全局变量、堆栈变量、数据、程序代码对系统能耗的影响,在每个程序点选择合适的程序元素置入SPM以降低存储子系统的能耗。针对现有SPM低功耗管理策略研究重点在于如何最大化地重复访问SPM中的内容,而未考虑SPM中不同的地址访问序列对功耗的影响,提出了一种基于电路活跃度的SPM布局优化策略。该优化策略在基本SPM管理策略的基础上,通过重新组织指令与数据在SPM中的布局,降低访问SPM中这些存储对象时地址线上的电路活跃度,从而降低功耗。仿真实验结果表明,同已有的SPM静态管理策略相比,在SPM容量相同且有限的情况下,采用基于时间戳的SPM动态管理策略,同一应用程序所产生功耗最多可减少31.3%。与未考虑布局优化的基本策略相比,基于电路活跃度的SPM布局优化策略可平均减少功耗15%以上。