论文部分内容阅读
处理器和存储器之间的速度差距一直是计算机系统的性能瓶颈,这就是著名的“存储墙”问题。为了解决存储墙问题,几乎所有的计算机都采用层次存储系统。因此,层次存储系统的研究成为了充分发挥计算机系统性能的关键技术之一。层次存储的访问即数据访问,是连接存储墙问题中处理器和存储器的“桥梁”,因此,数据访问特性的研究是解决存储墙问题的基础。我们归纳了数据访问的六种重要性质:依赖性、重用性、相似性、亲和性、一致性和生存性。●依赖性描述了包含写访问的数据单元访问之间的相对顺序关系,约束了程序执行的正确性。●重用性描述了对同一个数据单元或相邻数据单元集合的多次访问之间的关系,是数据访问在存储层次中表现出局部性的前提。●相似性描述了程序的多个执行体中对应的多个数据单元内容之间的关系,用于优化多个执行体对存储器的占用量。●亲和性描述了数据单元在多个处理器中访问频度之间的关系,决定了数据分布对处理器访问性能的影响。●一致性描述了数据的单个或多个副本访问的数据内容之间的关系,影响着程序执行的正确性。●生存性描述了多个数据访问的活跃程度之间的关系,是资源分配类问题求解的重要约束。这六种数据访问特性相互关联、相辅相成,从不同侧面反映了数据访问的特性。我们将这六种性质分为两类,一类主要影响程序执行的正确性,对程序变换、体系结构设计等有着重要影响,包括依赖性和一致性;另一类则主要影响各种性能优化技术,是软硬件进行性能优化的依据,包括重用性、相似性、亲和性和生存性。在影响程序性能的四个性质中,重用性和相似性描述了具有资源相容特点的数据访问关系,它们分别从地址和值的角度描述了对资源的重复利用;而生存性和亲和性则描述了具有资源相斥特点的数据访问关系,它们分别从时间和空间的角度描述了对资源的互斥使用。按照正确性、性能,以及资源相容和资源相斥划分的三组数据访问特性中,每两种性质之间分别从时间与空间、地址与值两个角度相互正交。依赖性、重用性和生存性都描述了程序执行的时间维度上的数据访问性质;一致性、相似性和亲和性则分别描述了多数据副本、多数据单元、多数据位置等空间维度上的数据访问性质。同时,依赖性、重用性和亲和性都是从数据单元的角度刻画了数据访问性质,它们的依据是数据的地址;一致性、相似性和生存性则更多地从数据内容的角度刻画了数据访问性质,它们的依据是数据的值。本文主要研究了其中的重用性、相似性和亲和性三种性质的分析与优化方法。本文的创新工作主要体现在:1.提出了并行数据重用模型。该模型系统分析了OpenMP和OpenTM等并行程序中数据访问的重用性,给出了并行程序中数据重用的分类和求解方法。该模型将Wolf的串行数据重用模型扩展到并行领域,对面向共享存储结构的并行程序分析和编译优化技术的研究具有重要的指导意义。2.提出了面向数据对象Cache技术。通过软硬件合作管理,面向数据对象Cache技术将程序中的数据对象在Cache上进行分段管理,并为数据对象的不同重用性需求提供合适的Cache策略,包括段容量、相联度、块大小和一致性协议。实验结果表明,面向数据对象Cache技术能更好地适应多样的数据访问重用性特点,有效提高了Cache的利用率。3.提出了数据访问相似性的分析方法。该方法对程序中的差异传播进行了分类,研究了不同类型的差异传播行为,建立了差异传播模型,并通过差异传播模型给出了程序中相似数据的分析和求解方法。该方法系统、定量地研究了相似性,为面向相似性的各种编译优化技术研究奠定了重要的基础。4.提出了面向共享存储结构的相似页技术。通过编译器与操作系统的合作管理,相似页技术将相似进程间的相似数据合并到同一个物理页。实验结果表明,相似页技术有效减少了共享Cache、主存等共享存储结构中的数据占用量,优化了系统性能,提高了并行可扩展性。5.提出了数据访问亲和性的分析方法。该方法从纵直亲和度和水平亲和度两个角度对亲和性进行了定量研究,给出了纵直亲和度和水平亲和度的求解方法,给出了纵直亲和度与水平亲和度之间的定量关系,从亲和性的角度揭示了分布Cache结构研究的关键问题。该方法定量度量了亲和性,对分布存储结构下的数据分布、任务划分与调度技术等的研究具有重要的指导意义。6.提出了面向动态分布Cache的多种数据分布优化技术。针对动态分布Cache结构,分别提出了智能多跳提升技术、任意步长硬件预提升技术、软件预提升技术,以及面向共享数据竞争问题的Bank一致性技术。实验结果表明,这些技术有效优化了数据的存储位置,提高了动态分布Cache的访问性能。