论文部分内容阅读
片上多核处理器(Chip Multi-Processor, CMP)已经成为高性能微处理器的发展潮流。高速缓存作为处理器与主存之间的重要桥梁,在计算机系统的性能优化中发挥着重要作用。一种能够有效管理CMP共享高速缓存的策略对于当今高性能微处理器而言,有着重要的意义。目前学术界对CMP的缓存优化主要是面向多道程序的,对于多线程应用程序,已有的Cache优化技术如何提高性能,依然是开放的问题。本文围绕多线程应用程序的负载均衡,混合多线程应用程序的服务质量(QoS)等问题,针对CMP系统上运行单个或混合多线程应用程序时,共享高速缓存优化策略进行了研究,本文的主要研究内容与贡献包括:1.针对在fork-join模式下运行的并行应用程序,各线程之间存在的负载不均衡现象。本文设计了一种关键线程指导的细粒度缓存管理策略,通过在源程序中插入检查点,由各处理器统计并行循环区域的迭代次数,准确地找到并行程序的关键线程;通过给关键线程分配更多的缓存空间,平衡并行程序各线程之间的负载和加速关键线程的执行,从而提升并行程序的整体性能。实验表明关键线程指导的细粒度CMP共享缓存管理策略能对于计算机视觉、数据挖掘等并行程序的加速比分别达到1-6%。2.提出关键线程感知的共享缓存管理策略(CASCM),针对当前系统不能基于进程的优先级进行有效的进行缓存空间的分配的问题,不仅考虑了进程之间的优先级,还考虑了并行程序的线程之间的优先级,基于进程和线程的不同优先级来分配缓存空间,在保证高优先级程序服务质量水平的前提下,尽量提升其它进程的性能,且无需对现有的缓存结构进行较大的改动,硬件代价小;实验表明,关键线程感知的共享缓存管理策略更有效地利用了缓存空间,相对于ATR缓存管理策略,CASCM在保证了高优先级程序服务质量水平的前提下,低优先级进程的性能可获得更多地提升。