论文部分内容阅读
应用规模的不断扩大给计算机底层硬件提出了巨大的挑战。然而,随着计算机底层硬件的逐渐发展,CPU与主存的性能发展差距越来越大。“剪刀差”问题逐渐明显。高速缓存(Cache)已经成为了缓解“剪刀差”问题的不二之选。Cache的传统结构逐渐不能适应应用数据多样性需求,当负载较大时缓存命中率较小。另一方面,随着应用的规模越来越大,应用开发人员对程序的设计很少考虑到底层Cache的工作特性,导致程序在执行时效率低下。Cache传统的结构与程序数据访问日益的多样性形成了一对尖锐的矛盾,硬件与应用的专用化鸿沟不断加大。本文针对上述矛盾,全面调研了传统Cache的结构和工作原理,对其结构和工作原理进行了深入剖析,并指出了其中的不足。在此基础之上,针对片上Cache硬件与应用的专用化鸿沟,本文分别在软件和硬件上提出改进方法。对于数据的多样性,本文提出基于读写属性的分离机制,其实现方式为在数据在被装载至缓存之前,通过标记和分离两个阶段,对数据的存储根据缓存特性做出优化;对于传统Cache结构不足,可以总结为程序的所有数据在Cache存储中的一致性处理问题,对基于属性的方法进一步完善即基于频率属性的分离机制,通过对Cache缓存块的访问频率进行统计,展开缓存块分离与重组机制的研究。另外,针对Cache中缓存块的频繁替换状况,本文提出了相邻缓存块回写策略。通过基于属性的硬软件分离机制,能够有效提升Cache的缓存命中率,从而达到优化Cache的性能。为了精确评估本文的方法对Cache性能的影响,本文使用GEM5开源软件对计算机基础平台进行系统仿真,并通过Linux系统实验间接验证本文方法的有效性。实验结果表明,基于读写属性分离方法的RHR的改善效果稳定在5%左右,WHR的改善效果稳定在9%左右,最大可到达10.2%,OHR改善效果稳定在6.8%左右,其最大值可达7.39%;基于频率属性的分离机制当主存覆盖率为10%时,最优情况下其缓存命中率提升了 19.58%,缓存覆盖率越低,其提升效果越明显;相邻缓存块回写策略将Cache的主存回写率平均降低了2个百分点。通过Linux系统实验,间接反映了本文方法的有效性。因此,本文提出的基于硬软件Cache性能优化方法能够有效提升Cache的性能。