[发明专利]利用虚存机制对片上异构存储资源动态分配的方法无效
申请号: | 200910264393.6 | 申请日: | 2009-12-21 |
公开(公告)号: | CN101739358A | 公开(公告)日: | 2010-06-16 |
发明(设计)人: | 凌明;张阳;梅晨;王欢;武建平 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F13/28 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 奚幼坚 |
地址: | 214135 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 机制 片上异构 存储 资源 动态分配 方法 | ||
技术领域
本发明涉及嵌入式片上存储器领域,特别涉及一种利用虚存机制对片上异构存储资源(Cache和SPM的数据部分)动态分配的方法。
背景技术
随着微电子技术的发展,以SoC(System-on-a-Chip)为基础的嵌入式计算平台日益成熟。然而,由于处理器速度与外部存储器速度的差距不断增大,SoC存储子系统已经成为系统性能、功耗和成本的瓶颈。因此如何优化存储子系统的架构及管理策略,一直是嵌入式研究的热点。
作为传统片上存储器,Cache由硬件管理,大部分情况下对软件透明,能自动装载频繁访问的指令和数据到片上存储器中。然而,Cache的高功耗、占用面积大、程序执行时间不可预知等不足一直限制其在嵌入式系统中的广泛运用。尤其是Cache的组关联特性,可能导致被映射到同一Cache行的不同程序内容,由于访存规律,反复相互替换,从而增大了系统性能与能耗的开销,即出现Cache抖动。与Cache相比,SPM(Scratch-Pad Memory,便签存储器)是一种高速片上存储器,通常由SRAM实现,是现代嵌入式系统中一个非常重要的系统框架设计考虑因素。SPM处于处理器可直接访问的地址空间之内,由于传统的SPM控制器不包含任何辅助管理数据的逻辑电路,SPM中的所有内容必须经由软件显式的管理,相对于对程序员透明的Cache,增加了程序管理的复杂性。由于没有管理逻辑电路带来的额外代价,相较于传统Cache,SPM硬件实现更为简单、单次访问功耗更低、占用芯片面积更小而且访问时间可预知。综上,Cache和SPM各具优势且存在互补性,因此对Cache和SPM共存的异构存储器存储资源进行研究,可以充分利用两者优势,从而最大限度降低系统能耗、提升系统性能。
一些针对嵌入式片上存储器的研究的主要分析单纯配置Cache或单纯配置SPM的架构,不能很好的利用两者互补的特性。直接将仅针对SPM的优化算法或仅针对Cache的优化算法运用到两者共存的架构中,不能达到整体性能最优化,在一种存储体上取得的优化收益可能被另一种存储器的开销所抵消,甚至引入更多系统性能与能耗的额外开销。例如针对SPM的优化算法将某段主存的内容搬运到SPM,从而得到了性能与能耗的收益。然而搬运代码本身可能对指令Cache造成污染、引起Cache优化算法的失效,从而造成额外的Cache缺失,抵消SPM的优化收益。
Cache缺失时需要实际访外存操作并将新的内容换入Cache行,开销较大,这被称为Cache缺失的惩罚。由于Cache的组关联特性,被映射到同一Cache行内容可能反复相互替换,带来大量的访存操作,从而导致系统性能急剧降低,系统能耗急剧增加,这就是Cache的冲突。通过增大Cache容量、增大组关联数等方法,可以减小Cache冲突,但是这样又会引入新的芯片面积并提升单次Cache读写时间及能耗。目前有研究指出Cache冲突是造成系统性能和能耗瓶颈的重要原因,因此他们将容易引起Cache冲突的程序段放入SPM,以此得 到性能和能耗的收益。将容易引起Cache冲突的页选入SPM中,不仅可以通过降低Cache冲突而降低系统能耗,提升系统性能,还能由单次访问SPM与Cache的能耗差获得更多收益。但是这些研究都是基于静态的设计,即在程序执行中SPM中的内容不发生改变,没有充分的利用Cache冲突在在时间维上的局部性,降低了SPM的利用率。并且,这些设计对SPM的管理依赖于对源程序跳转指令的修改,是一种侵入式的分析,因此仅能针对指令部分进行分析,而不能分析更容易引起Cache抖动的程序数据部分。
由于对SPM内容的更改需要软件显示的进行,因此一般对SPM进行动态管理的研究都是通过“打桩”的形式,即在需要优化的程序核心循环前后,手工插入代码搬运指令,从而完成对程序内容的换入换出。在程序映像中插入新的指令,需要依赖对源码的分析,并且新的指令很可能引起共存架构中Cache行为的变化,例如产生更多的冲突。
目前针对Cache和SPM共存架构中数据部分的研究,一般都是仅针对程序的全局数据部分进行研究。对于在程序在执行过程中,动态分配与使用的堆数据和栈数据,基于源码分析的静态分析方法,如程序扩展流图(Control Flow Graph)、数组划分等,难以对其进行优化。因此目前针对堆优化和栈优化的方案中,优化效率较低,且方案不适用于全局数据和常量池数据。因此,针对数据部分的优化,一般是分别对全局数据、常量池、堆和栈进行分别优化的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910264393.6/2.html,转载请声明来源钻瓜专利网。