论文部分内容阅读
随着集成电路制造工艺的快速发展,处理器和主存之间的性能差距越来越大。为了填补该性能差距,现代处理器已经把芯片上一半以上的晶体管用于实现多级片上高速缓存。其中片上末级高速缓存作为片上高速缓存层次结构中的最后一级,其在失效时仍然需要花费几百个处理器时钟周期来访问片外存储。对于SPECCPU2006中的存储密集型程序,片上末级高速缓存失效时间平均占处理器总执行时间的37.9%,因此片上末级高速缓存的性能对处理器的整体性能至关重要。传统高速缓存管理策略主要针对一级高速缓存的访存特征来进行设计,它们无法有效管理片上末级高速缓存。因此如何通过高效管理片上末级高速缓存来提高系统性能就成为了计算机系统结构领域中的一个重要问题。并且随着程序工作集的不断增大,片上末级高速缓存管理策略的重要性不断提高。本文面向典型的超标量处理器设计,分析了现有片上末级高速缓存管理策略存在的问题,并针对这些问题提出了低开销的解决方案,从而达到高性能的片上末级高速缓存管理策略设计目标。本文的主要内容和贡献包括: (1)提出了一种基于最优旁路算法的旁路策略。旁路策略通过不为局部性差的块在末级高速缓存中分配空间来避免上述块对末级高速缓存的污染,从而提高性能。理论上的最优旁路算法具有与最优替换算法相近的性能,但是由于需要未来的信息而无法实现。本文提出一种通过学习和预测最优旁路算法的行为来指导是否使用旁路的技术,最优旁路监测器。最优旁路监测器记录失效时产生的进入块和替换块对,通过监测这些对中进入块和替换块的访问顺序来判断最优旁路算法对这些对的行为,并使用预测表记录监测的结果。在失效时,该技术根据预测表记录的最优旁路算法的近期行为来指导是否使用旁路。本文技术可以和多种替换算法联合使用,实验结果表明该技术在使用较少的额外硬件开销的情况下可使处理器的单线程和多线程性能分别提升9.7%和8.9%。 (2)提出了一种面向包含型末级高速缓存的替换策略。由于包含型高速缓存层次结构可以简化高速缓存一致性的实现,因此在现代处理器中被广泛使用。但是为了保证包含性需要牺牲一定的性能,并且很多新近提出的高性能替换策略无法适用于包含型末级高速缓存。本文提出了一种基于两级替换优先级的包含型末级高速缓存替换策略。除由基础替换算法提供的替换优先级以外,该策略为末级高速缓存块额外附加了一级替换优先级。当一个块被装入末级高速缓存时,该策略通过预测它的局部性来相应地设置该优先级。当一个拥有高替换优先级的块不再位于内部高速缓存中时,它将优先被末级高速缓存换出。通过这种方式,末级高速缓存可以保留更多局部性好的块来提升性能,同时避免了提前换出内部高速缓存中局部性好的块。本文实验结果表明对于容量为512KB的包含型末级高速缓存,该策略的平均性能提升是其他技术的3倍以上。 (3)提出了一种面向互斥型末级高速缓存的旁路策略。互斥型末级高速缓存中因为不需保存内部高速缓存中已有的数据,因此相比其他类型的末级高速缓存可以保存更多有效数据,从而在现代处理器中被广泛使用。互斥型高速缓存层次结构主要存在两个问题:首先末级高速缓存无法直接获得它的进入块对应的PC等信息来指导管理策略;其次互斥型高速缓存层次结构要求所有内部高速缓存换出的块都要发给末级高速缓存,从而增加了片上互连网络的通信量。为此,本文提出了一种面向互斥性末级高速缓存的旁路策略。该策略为每个内部高速缓存块保存其对应的PC,并在替换时把该信息传递给末级高速缓存以指导其旁路决定。同时如果被旁路的块不为脏,那么该策略不把该块发给末级高速缓存以降低片上通信量。实验结果表明该策略可以在显著提高互斥型末级高速缓存性能的同时平均减少7.1%的片上互连通信量。 (4)提出了一组基于保留价值的末级高速缓存管理策略。在现代处理器系统中,由于访存延迟可变,并且处理器对于高速缓存不同失效的容忍能力也不同,使得不同高速缓存失效对处理器的性能影响存在较大差异。因此,高速缓存管理策略应该能够感知失效代价的差异。为达到该目的,本文首先提出了保留价值的概念。一个高速缓存块的保留价值由所有访问该块的请求所决定,既包括在访问该块失效时处理器的性能损失,也包括在访问该块命中时处理器的性能收益。然后基于保留价值的概念,本文提出了一组以最大化高速缓存中块的整体保留价值为目标的高速缓存管理策略。通过优先替换保留价值较低的块,这些策略使高速缓存能够保留更多高保留价值的块,从而改善性能。本文实验结果表明相比其他技术,基于保留价值的管理策略可以显著降低末级高速缓存的总失效代价,从而提高性能。