在最近一系列的文章中,我们集中介绍了在计算机体系结构学术界广泛使用的一款模拟器SimpleScalar,包括SimpleScalar中的各种模拟器,以及模拟器的运行,提到了影响cache性能的几个方面:容量、块大小、相关度、替换算法。 在这个系列中,前四篇文章中对应的四个实验,详细介绍并分析了影响变化过程。在第五篇文章《如何用SimpleScalar进行cache性能研究(五)引入victimcache》中,我们进一步的介绍了一个设想,如果我们在cache和它的下一级存储器的数据通路中间,增加一块全相连,且容量较小的cache,将上面讲到的在替换过程中,被移出的失效块(称为victim),放入这个小cache里面,以供后面使用。为了验证victimcache的作用,第六篇文章《如何用SimpleScalar进行cache性能研究(六)victimcache》,第七篇文章《SimpleScalar进行cache性能研究(七)victimcache对比试验》,我们对比了两种添加与不添加victimcache情况下,IL1DL1的missrate,以及IPC,并得到了两个结论:随着cache的增大,victimcache对cache性能的影响作用在不断减小;victimcache的hitrate降低,导致cache的各项性能也跟着下降了。 今天我们继续讨论victimcache对性能的影响。 情况一:不添加victimcache 统计在不添加victimcache,但是数据cache(Dcache)和指令cache(Icache)的blocksize都变的情况下,指令L1级和数据L1级cache的missrate。 表一情况一统计数据 根据表一数据,得到的曲线如下图所示: 图一情况一对应变化趋势情况二:添加victimcache 统计在添加victimcache(dvictim:128:32:4:1),数据cache(Dcache)和指令cache(Icache)的blocksize都变的情况下,指令L1级和数据L1级cache的missrate。 表二情况二统计数据 图二添加与不添加victimcache统计数据变化曲线 结果分析:从上图可以看出,在增加victim前后,对指令L1和数据L1的missrate,以及IPC的影响不是很大,并且随着数据cache(Dcache)和指令cache(Icache)blocksize的不断变化,victimcache的hitrate下降到一定的值之后,cache的各项性能急剧下降。 这说明当victimcache的hitrate太低的话,它victimcache对cache来讲,已经没有提升作用,已经变成了累赘。 小结 今天的实验结果,依然和我们的理论分析一致。我们对比实验还将继续,欢迎大家继续关注。 另外大家对试验有什么建议,或者对计算机体系结构感兴趣的,也欢迎和我进行讨论。