论文部分内容阅读
片上多处理器(CMP)是当前主流的微处理器体系结构,它利用现有的海量晶体管资源在单个芯片上集成多个处理器核,通过多核并行执行的方式开发指令级和线程级等各个层面的并行度来提高性能。
CMP中的cache,特别是最底层cache是影响其性能的关键,也是目前学术界研究的热点。在本研究中将最底层cache设定为L2 cache。本论文从CMP中cache设计面临的线程间干涉、有限的片外带宽和增长的线延迟三个挑战出发,就如何减少线程间干涉,增加有效的片上cache容量和有效的片外带宽,缓解线延迟的影响和减少平均内存访问延迟进行了深入的研究,提出了一种共享cache划分策略,一种压缩存储系统,以及一种适用于CMP的cache结构。本论文的主要创新点及贡献包括:
1.提出一种适用于CMP的共享cache动态划分策略——基于栈距离剖析的cache划分策略。该策略利用栈距离剖析这一特性,在不同访问存储流之间显式分配cache空间,动态调节cache容量使之满足同时执行的线程的需求,解决了线程之间的干涉问题。该划分策略采用硬件计数器动态获得每个线程的栈距离剖析,根据栈距离剖析结果应用划分序列算法获得cache划分序列,并利用修改的LRU替换策略保证线程实际分配的cache容量接近划分序列的值。多道编程测试程序的性能评测结果表明,与标准LRU替换策略相比,采用基于栈距离剖析的cache划分策略,组合IPC平均提高了11%,加权加速平均提高了9%。
2.提出一种CMP中的压缩存储系统,该系统包括L2 cache压缩和接口压缩两个部分,通过存储和传输压缩格式的数据来增加有效的片上cache容量和有效的片外带宽。文中提出了带相邻匹配的基于值和端的压缩算法和基于拼接的cache压缩方法。带相邻匹配的基于值和端的压缩算法采用硬件编码方式对每个32位的字进行编码,以压缩格式存放频繁出现的值、符号位扩展数以及相邻匹配字,达到释放存储空间的目的。这一算法硬件实现简单,开销小,解压延迟低。在cache压缩实现中,采用基于拼接的cache压缩方法来降低cache管理复杂度和简化设计。实验结果表明,采用本文提出的压缩存储系统,多线程测试程序性能平均提高了12%。
3.提出一种适用于CMP的cache结构——延迟和容量权衡的cache结构(TCLC)。该结构是一种混合私有结构和共享结构的设计,核心思想是动态识别cache块的共享类型,根据不同共享类型分别对其进行优化,对私有cache块采用迁移的优化策略,对共享只读cache块采用复制的优化策略,对共享读写cache块采用中心放置的优化策略,以期达到访问延迟接近私有结构,有效容量接近共享结构的目的,从而缓解线延迟的影响,减少平均内存访问延迟。实验结果表明,采用TCLC结构,相对于私有结构基于吞吐量的性能提高了13.7%,相对于共享结构基于吞吐量的性能提高了12%。
本文重点研究了CMP中的cache技术,提出了一些新的策略和结构,取得了一些有意义的成果,为未来CMP的cache设计做了有意义的探索工作。