论文部分内容阅读
缓存系统在现代计算机中极为常见,其通常由多种存储介质组成,例如CPU片上缓存与主存构成的传统缓存系统、主存与磁盘构成的内存缓存、DRAM与相变内存(PCM,Phase-change memory)构成的新型异构内存缓存,广泛的存在性使得针对缓存系统的通用优化极为重要。然而缓存系统存在多个维度的性能指标,包括缓存空间需求、缓存缺失率、带宽利用率等,此类指标构成高维度的性能调优问题空间,使得针对多个性能指标同时调优极为困难。多核计算机的普及进一步加大了调优问题复杂度,原因在于缓存共享行为引入全局性能与个体程序性能两个维度,扩大了问题空间。因此共享缓存性能调优问题已经成为当今计算机技术发展面临的重大挑战。缓存性能调优问题存在两个难点:一是问题空间巨大且维度极高;二是各性能指标相互关联,针对特定指标优化可能导致另一指标降低,例如优化全局性能可能引起个体性能损失。性能模型驱动的缓存管理机制是解决调优问题的有效途径之一,其在无需运行程序的前提下,通过模型预测各项性能指标,针对性地调整管理机制参数,从而实现性能调优。由于调优过程仅依赖于预测值,因此效率较高,具备分析大量调优方案并从中选取最优解的能力。这种管理机制包含三个模块:针对特定缓存结构的性能模型,针对单个程序多个性能目标的参数化管理机制,针对全局性能与个体性能的协调机制。第一个模块提供缓存性能预测,是随后两个模块的基础,后两者则针对调优问题的不同维度。在性能建模方面,针对多层互斥缓存结构,提出性能模型受害者足迹(VFP,Victim Footprint)理论,实现任意缓存层次结构、任意缓存大小、任意程序组合下的缓存性能预测。同时以形式化方法证明VFP理论的正确性与唯一性,具体包括定义多层互斥缓存性能建模问题,并将其形式化描述为受害者缓存约束条件(VCR,Vicitim Cache Requirement),随后证明VFP理论是唯一满足VCR的缓存性能模型。在单个程序多性能目标调优方面,针对多层互斥缓存结构设计了缓存管理机制FCache及模型驱动的调优技术,实现参数化的缓存管理。随后以DRAM-PCM异构内存构成的缓存系统为应用场景,展示FCache同时优化DRAM空间需求与DRAM-PCM迁移开销的能力。具体设计方面,FCache将数据划分为两部分,一部分数据使用DRAM作为缓存,与另一部分数据共享PCM。FCache通过参数化数据划分比例实现灵活的管理配置,涵盖海量的配置空间。与FCache同时提出的模型驱动的调优技术则实现最优缓存管理配置的自动推导,通过建立数据划分比例与多个性能参数间的形式化关系,在给定特定性能参数限定时推导管理配置,自动最优化其他性能指标。在多个程序全局与个体性能协调方面,设计了弹性缓存划分机制RECU,通过模型驱动的缓存划分实现保障个体程序性能的同时最优化全局性能。RECU首先定义个体程序性能基准,包括缓存空间基准以及缓存缺失率基准,并针对基准定义弹性机制,例如20%缓存缺失率弹性表示个体程序缓存缺失率不得高于基准缓存缺失率的120%。与此同时,使用缓存性能模型建立缺失率与缓存空间之间的量化关系,以此将缓存缺失率上限等效为缓存空间下限。随后提出最优化缓存划分,在满足个体程序缓存空间限定的前提下实现全局性能最优化。最后以云计算环境中多用户共享服务器场景为例,针对用户公平性需求与服务供应商全局性能需求之间的权衡问题展示RECU的使用方法。缓存性能模型VFP理论与两种缓存管理机制分别针对共享缓存性能调优问题的不同维度,具有模块化特性,可以相互组合,例如RECU可采用VFP理论之外的缓存性能模型,FCache可与RECU组合解决多个性能目标的协调问题,因此三种技术组合可解决不同缓存架构、不同性能需求的调优问题。