如何用SimpleScalar进行cache性能研究(三)cache相连度的影响

之前的文章中,我们介绍了在计算机体系结构学术界广泛使用的一款模拟器SimpleScalar,包括各种模拟器,以及模拟器的运行,提到了影响cache性能的几个方面:容量、块大小、相关度、替换算法。

我们已经通过两篇文章,分别探讨了cache容量和块大小对cache性能的影响,并给出了相应的分析。今天我们继续探索影响Cache性能的另外一个重要的方面。

如何用SimpleScalar进行cache性能研究(三)--cache相连度的影响

Cache关联度对性能的影响

整个实验的具体做法是:在SimpleScalar的配置过程中,保持容量大小、cache块大小、替换策略等参数不变,改变关联度从1、2、4到256变化,执行程序,得到在不同条件之下的,失效率数据。

整个过程的参数变化如下表所示:

如何用SimpleScalar进行cache性能研究(三)--cache相连度的影响

表一 参数变化

经过测试,我们得到不同关联度下,失效率的变化情况。具体曲线如下图所示,曲线代表在不同关联度条件下,失效率的变化趋势情况。

如何用SimpleScalar进行cache性能研究(三)--cache相连度的影响

图一 Cache相联度对失效率影响

结果分析

从图中曲线可以看出,关联度对在组相联Cache中的cache性能有着十分重要的影响,cache中冲突失效,出现的概率与关联度有着直接的负相关关系。也就是说,当关联度呈现上升趋势时,块冲突概率呈现出下降趋势,即Cache的失效率就会下降。

那么何为块冲突?当cache中的某块位置已被占用时,如果此时,有一个主存块试图进入被占用的这块位置时,称此时发生了块冲突。理论上讲,全相连时候,失效率应该为最低值,直接映射时,失效率应该为最高值。

如何用SimpleScalar进行cache性能研究(三)--cache相连度的影响

虽然理论上讲,随着关联度的增加,失效率呈现下降确实,但是实验证明,随着关联度的增加,cache的失效率下降到某个值以后,会停止下降。并且,随着关联度的增加,系统的复杂性会跟着增加,所以产生负收益。

回到图中的曲线,从图中曲线可知,在16K byte容量下,关联度的变化范围从1到256,因为容量保持恒定,所以相应的组数从512到2。从实验结果看来,当相联度为1、2、4时,失效率曲线随着相联度的增加而呈现出下降趋势。但是当关联度超过4继续增加时,失效率停止继续降低,开始稳定在一个范围内。

所以实验结果,验证了我们之前的理论分析,即关联度对cache性能的提升,在一个范围内有效,当超出这个范围时候,不仅不能起到促进作用,反而出现负面影响。

如何用SimpleScalar进行cache性能研究(三)--cache相连度的影响

小结

今天的文章中,我们借助一个小实验,论证了关联度对cache性能的影响。以后的文章中,我们将继续探讨替换策略对cache性能的影响,也欢迎大家和我进行讨论。

参考资料:[1]SimpleScalar模拟器使用指南

展开阅读全文

页面更新:2024-04-28

标签:主存   性能   模拟器   概率   曲线   冲突   容量   大小   策略   趋势   位置   参数   理论   情况   文章   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top