上一篇我们介绍了在计算机体系结构学术界广泛使用的一款模拟器SimpleScalar,并且简单介绍了其包含多个模拟器,复杂度由最简单的Sim-safe、sim-cache等到最复杂的Sim-outordor。今天我们以sim-cache为例,来探讨一下SimpleScalar的基本运行模拟。 SimpleScalar模拟环境 本次运行模拟过程采用以下配置:模拟器。因为我们主要的目的是研究影响cache的影响因素,所以选择sim-cache模拟器。测试文件。spec2000标准测试文件。 有一点需要说明的是,在SimpleScalar的所有模拟器里面,sim-outorder是最复杂,但是功能最全,里面会包含sim-cache模拟器的部分,但是我们还是选择sim-cache来进行研究。SimpleScalar运行 我们准备好上面的环境之后,就可以通过下面的命令开始运行。 命令为:sim-cache -config "sim-cache.cfg"。 其中,sim-cache.cfg为我们配置的当前的cache参数,下面给出我已经写好的一个例子,具体参数意义,会在后面详细介绍。 图一 sim-cache配置参数 在研究过程中,我们只需要不断修改配置文件sim-cache.cfg中的相关参数,就能达到我们比较的目的。 cache参数介绍 通常情况下,我们认为cache的参数主要有以下几个方面:容量块大小相关度替换算法。 在SimpleScalar模拟器中,一般包含两级Cache(L1L2)结构,同时数据Cache和指令Cache分开。 给出SimpleScalar Cache参数配置命令:::::。 以上命令含义如下所示::cache名称,包括:dl1:L1 data Cache; dl2:L2 data Cache;il1:L1 instruction Cache;il2:L2 instruction Cache。 :组的数目。 :块大小(block size)。:关联度(association)。 :替换策略(replacement)。 在这种配置下,Cache的容量可以用下面的公式计算得到:**。 需要补充说明的是,替换策略一般有下面三种方式:l :LRU,最近最少使用(least recent use)。f : FIFO,先进先出。r : RANDOM,随机策略。 我们通过下面一个例子,再来看一下这些参数的含义。 -cache:dl1 dl1:512:32:2:l 上面的命令表示对一级数据cache进行配置,512表示有512组,Cache块大小为32个byte,每个组有2个Cache块,即相联度为2,替换策略为LRU。在此配置下,一级数据Cache的容量为512*32*2=32K byte。 cache容量对性能的影响 通过上面的介绍,我们基本上已经清楚了会影响cache性能的相关因素,在下面的文章中,我们会采用控制变量法,即在保持其他变量不变的条件下,改变单一变量的方式进行研究。 我们改变SimpleScalar模拟器的一级数据cache dl1的容量配置,在SimpleScalar的配置过程中,固定cache块大小、相联度、替换策略等参数,通过改变组数来改变Cache的容量大小。只需要修改sim-cache.cfg中对应组数即可。 同时,我们现在只是测试只有一级cache的情况,所以我们把sim-cache.cfg中的有关二级cache的相关参数都注释掉。如下所示: 图二 sim-cache注释掉L2配置参数 在确定块大小为32byte,相连度为2,替换策略为LRU情况之下,把参数改为如下所示: 图三 dl1参数变化 测试结果对应图线如下图所示: 图四 测试结果 上图中,横轴为cache容量,纵轴为cache的失效率(失效率越低,说明cache性能越好)。 从上图的曲线中可以看出,cache容量在一定范围内时,容量的增加,cache的失效率不断下降,一般来说,容量越大,Cache性能越好,发生失效的概率就越低。且当容量增加到一定程度之后,cache的性能到达一个峰值。在超过这个峰值之后,随着容量的增加,失效率已经不再降低,而是稳定在一个固定范围内,说明此时cache容量已经不是影响cache性能的瓶颈所在,继续扩大cache容量,对cache性能提升已经失效,需要考虑其他方面的条件。 小结 今天的文章,我们主要介绍了SimpleScalar的模拟运行环境,配置文件中各个参数的意义。并且以cache容量大小对cache失效率影响为例,介绍了整个测试过程。相信大家已经对如何使用SimpleScalar进行研究用了一个初步的认识。 正如前面所讲,除了cache容量大小之外,还有组大小、关联度、替换策略等因素均对cache性能有很大的影响,所以在后面的文章中,我们还会继续进行深入研究,欢迎大家继续关注。 参考资料:[1]SimpleScalar模拟器使用指南