在最近一系列的文章中,我们集中介绍了在计算机体系结构学术界广泛使用的一款模拟器SimpleScalar,包括SimpleScalar中的各种模拟器,以及模拟器的运行,提到了影响cache性能的几个方面:容量、块大小、相关度、替换算法。 在这个系列中,前四篇文章中对应的四个实验,详细介绍并分析了影响变化过程。在第五篇文章《如何用SimpleScalar进行cache性能研究(五)--引入victim cache》中,我们进一步的介绍了一个设想,如果我们在cache和它的下一级存储器的数据通路中间,增加一块全相连,且容量较小的cache,将上面讲到的在替换过程中,被移出的失效块(称为victim),放入这个小cache里面,以供后面使用。 为了验证victim cache的是否能起到作用,我们进行了一系列的实验,分别在第六篇文章《如何用SimpleScalar进行cache性能研究(六)-- victim cache》,第七篇文章《SimpleScalar进行cache性能研究(七)-- victim cache对比试验》,第八篇文章《SimpleScalar进行cache性能研究(八)-- victim cache对比试验》,第九篇文章《SimpleScalar进行cache性能研究(九)-- victim cache》等文章中,对实验过程和实验数据进行了详细描述。 我们对比了两种添加与不添加victim cache情况下,IL1DL1的miss rate,以及IPC,并得到了两个结论:随着cache的增大,victim cache对cache性能的影响作用在不断减小;victim cache的hit rate降低,导致cache的各项性能也跟着下降了。 前面的实验中,我们总是对比victim cache有无,对cache性能的影响,但是没有探讨过victim cache在总的cache中,所占的比重。今天我们给出所加的victim cache,在总的cache中所占的面积和功耗的百分比。在实验中,让数据cache(D-cache)和指令cache(I-cache)的大小保持不变,容量的大小变化都是来自victim cache的大小的变化。 表一 victim cache所占比例 根据表一数据,得到的曲线如下图所示: 图一 情况一对应变化趋势 结果分析:从图中看出,victim cache变大,对cache整体的面积和功耗的影响,基本稳定变化不大,但是,我们从上面的实验中得出的结果中看出,victim cache增大对性能的提升是十分有益的,所以这种增大victim cache的作法是十分有效的。 小结 经过连续十篇文章,我们介绍了一系列实验,来论证各个参数的影响,以及victim cache的作用,今天对这一段时间的探索做一个总结。如果大家有认真的看这十篇文章的话,相信现在对cache已经有了一个基本的概念。 感谢大家的持续关注,另外大家对试验有什么建议,也欢迎和我进行讨论。