论文部分内容阅读
随着集成电路技术的发展,处理器的性能提升已不能再依赖于主频的提高。要想使微处理器性能继续按摩尔定律推进,使处理器能够符合计算发展的需求,必须研究新的微架构和新的计算模型。因此片上多核处理器CMP架构成为现在学术界和工业界关注的热点,并己成为服务器和桌面领域的主流。但是,如何进行多核处理器结构设计,以充分提高处理器性能是一个值得仔细研究和探索的问题。
目前绝大多数的主流CMP处理器都使用私有一级(或一级和二级)cache,共享二级(或三级)cache的片上存储结构。这种结构通过共享最后一级cache和更低的存储层,最大限度的提高资源利用率避免重复开销。然而,随着同时执行线程数量的增加,存储层所承受的压力也在不断地增大。由cache共享所引发的cache竞争会对吞吐量和公平性造成不利的影响。
系统公平性是一个关键的优化问题,因为操作系统(OS)线程调度的效率体现在硬件向所有并发执行的线程所提供的公平性上。但当今的cache设计依然使用LRU策略来选择被替换的cache块,LRU策略实际上会根据每个线程的需要隐式地划分共享cache,其管理cache空间具有明显的不公平性。因此,将公平性作为CMP结构下主要的优化目标,可以极大地简化操作系统的设计,并且可以显著提升系统整体性能。
文章首先讨论了适用于CMP或SMT系统的各种cache划分算法。重点介绍了DFC算法、MLP-Aware算法和基于双核处理器的性能最优划分算法。同时也介绍了已有的CMP系统公平性评价参数。然后,通过分析现有评价参数的优缺点,提出了更适合CMP系统的多线程并发执行的公平性参数。最后,在此参数基础上,提出了S-DFC算法。
本文把优化系统公平性作为主要目标,通过对CMP共享cache划分的公平性进行分析,提出新的易于测量且可用于评价多个线程并发执行的公平性指标,改进了已有的动态公平划分算法。实验结果表明改进后的划分算法可以显著提高多线程并发执行的公平性,有效避免各种缺乏公平引起的系统调度问题,并且在提高系统公平性的同时未牺牲系统吞吐量。