论文部分内容阅读
在典型的多核处理器(CMP,Chip Multi-Processor)体系结构中,多个处理器核共享二级高速缓存,这种方式不仅能够提高高速缓存的利用率,还能避免存储器硬件资源的浪费。在共享的二级缓存中,如果数据频繁地被多个线程共享访问,则有可能增加缓存的命中率,相反地,如果在所有核上运行的线程太多,会导致线程对共享资源的剧烈竞争,进而产生大量的缓存失效现象。因此预测CMP结构中共享二级缓存的失效率,详细分析每种类型的缓存失效产生的原因变得非常重要。在实际应用中,可以利用分析预测得出的结论对程序进行优化,合理安排程序对数据的访问,使得缓存失效的数量大大减少,从而提升系统的性能。为了分析不同的线程在不同核上同时运行时的相互影响情况和预测共享二级高速缓存的失效情况,重点研究了现有的预测共享二级缓存的失效率的数学模型。该模型主要利用循环序列和堆栈处理技术,对CMP结构中共享二级高速缓存的强制性失效和容量性失效数量进行了预测。由于该模型只考虑了同类型的两个线程同时运行时的情况,因此它对于预测不同类型线程运行时产生的缓存失效,存在一定的局限性。针对原模型存在的不足之处,加入了有效缓存空间和访问频率等概念,改进了原预测算法。改进后的模型,不仅能够预测相同类型线程一起运行时的缓存失效数量,还能准确预测不同类型线程一起运行时的缓存失效数量。同时还对不同类型的缓存失效的预测算法进行了改进,使算法的精度有了一定程度的提高。最后,对多核模拟器SESC以及其高速缓存的实现机制做了大量的分析和研究工作。并利用SESC模拟器对改进后的模型进行了实验验证。实验得到的结果表明,改进后的分析模型,与原分析模型相比,较为精确预测。