cache性能分析报告

上传人:206****923 文档编号:91845036 上传时间:2019-07-02 格式:DOC 页数:16 大小:493.52KB
返回 下载 相关 举报
cache性能分析报告_第1页
第1页 / 共16页
cache性能分析报告_第2页
第2页 / 共16页
cache性能分析报告_第3页
第3页 / 共16页
cache性能分析报告_第4页
第4页 / 共16页
cache性能分析报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《cache性能分析报告》由会员分享,可在线阅读,更多相关《cache性能分析报告(16页珍藏版)》请在金锄头文库上搜索。

1、计算机系统结构课内实验实验报告一、实验目的及要求1. 加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2. 了解Cache的容量、相联度、块大小对Cache性能的影响;3. 掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;4. 理解Cache失效的产生原因以及Cache的三种失效;5. 理解LRU与随机法的基本思想,及它们对Cache性能的影响;二、实验环境Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器三、实验内容1. 运行SimpleScalar模拟器;2. 在基本配置情况下运行程序(请指明所选的测

2、试程序),统计Cache总失效次数、三种不同种类的失效次数;3. 改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;4. 改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;5. 改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;6. 分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明

3、所选的测试程序)统计Cache总失效次数,计算失效率。分析不同的替换算法对Cache性能的影响。四、实验步骤1、关于simplescalar的简要说明SimpleScalar包括多个仿真器:sim-fast ,simsafe,sim-cache,sim-cheetah,sim-profile,sim-bpred,sim-eio和sim-outorder。 本次实验使用的是sim-cache,下面说明一下sim-cache。sim-cache: 在这个仿真中加入了cache,用户可以对cache及TLB 进行设置,支持两级的cache和一级的TLB,第一级cache和TLB均分为数据和指令两部分

4、。(摘自百度百科)下面简要说明一下有关cache的信息:一般来说,Cache的结构参数主要包括以下几个方面:容量、块大小、相联度、替换算法等。在SimpleScalar模拟器中,采用了两级Cache结构,同时数据和指令Cache分开。SimpleScalar的Cache参数配置命令为:: :Cache的名称,其中:dl1:一级数据Cache;dl2:二级数据Cache;il1:一级指令Cache;il2:二级指令Cache;dtlb:数据TLB;itlb:指令TLB; : 组的数目;:块大小; :相联度; :替换策略。此时,Cache容量为:*。替换策略主要有以下几种: l :LRU,最近最少

5、使用; f : FIFO,先进先出; r : RANDOM,随机策略。例如:-cache:dl1 dl1:2048:64:4:r,表示对一级数据cache进行配置,2048表示有2048组,64表示cache块大小为64byte,4表示相联度为4,r表示替换策略为RANDOM。在此配置下,一级数据cache的容量为2048*64*4=512KB。由于Simplescalar Spec2000测试程序在其官方网站不能下载,故使用simplescalar模拟器自带的测试程序以及自己设计的一个程序进行测试。我们所有的实验内容都是对一级数据cache来进行分析的。在simplescalar中,我们使用

6、的模拟器是sim-cache。2、 simplescalar模拟器基本配置情况下的运行模拟1.用安装好的simplescalar中的编译器对test.c进行编译,编译后生成了能够在模拟器中可以运行的可执行文件。命令行运行界面如下图所示:2.我们使用simplescalar中的模拟器sim-cache对a.out模拟执行,执行后的界面如下图所示:3.对运行结果进行分析从上面的运行结果中我们提取出一级数据cache(dl1)的信息进行分析:dl1.accesses 4420 # total number of accesses 一级数据cache上的总访问次数dl1.hits 3963 # tot

7、al number of hits 一级数据cache上的命中次数dl1.misses 457 # total number of misses 一级数据cache上的失效次数dl1.replacements 201 # total number of replacements一级数据cache上发生替换的次数dl1.writebacks 190 # total number of writebacks一级数据cache上发生写回的次数dl1.invalidations 0 # total number of invalidations一级数据cache上无效访问的次数dl1.miss_rat

8、e 0.1034 # miss rate (i.e., misses/ref) 一级数据cache上的失效率dl1.repl_rate 0.0455 # replacement rate (i.e., repls/ref) 一级数据cache上发生替换的概率dl1.wb_rate 0.0430 # writeback rate (i.e., wrbks/ref) 一级数据cache上发生写回的概率dl1.inv_rate 0.0000 # invalidation rate (i.e., invs/ref) 一级数据cache上发生无效访问的概率从分析中,我们可以得出,一级数据cache总共的

9、失效次数(dl1.misses)为457次,我们知道容量失效和冲突失效都发生了替换,所以它们的失效次数(dl1.replacements)总共为201次,强制性失效次数为457-201=256次。一级数据cache的总失效率为0.1034。3、 Cache容量对Cache性能的影响1. 操作说明:改变simplescalar模拟器中的一级数据cache(dl1)的容量配置,我们通过改变组数来改变它的容量。与此同时固定块大小为32byte、相联度为2以及替换策略为LRU等参数。2. 运行的界面(截取了部分所需的界面)如下图所示:容量为2KB(32*32*2*1)时,容量为4KB(64*32*2*

10、1)时,容量为8KB(128*32*2*1)时,容量为64KB(1024*32*2*1)时,4、Cache相联度对Cache性能的影响1. 操作说明改变simplescalar模拟器中的一级数据cache的相联度大小。与此同时固定cache的容量16KB、块大小32byte以及替换策略为LRU等参数。2. 运行的界面(只截取了部分所需的界面)如下图所示:相联度为1路时,相联度为2路时,相联度为4路时,相联度为8路时,相联度为64路时,5、Cache块大小对Cache性能的影响1. 操作说明改变simplescalar模拟器中的一级数据cache的块大小。与此同时固定Cache的容量为32KB、

11、相联度为2以及替换策略为LRU等参数。2. 运行的界面(只截取了部分所需的界面)如下图所示:块大小为8byte时,块大小为16byte时,当块大小为32byte时,当块大小为64byte时,6、Cache的替换策略对Cache性能的影响1. 操作说明改变simplescalar模拟器中的一级数据cache的替换策略。与此同时固定Cache的块大小为32byte、相联度为2。在Cache容量为2KB、4KB、8KB和64KB的情况下,分别进行测试。2. 运行的界面(只截取了部分所需的界面)如下图所示:容量为2KB时,使用了LRU替换策略使用了RANDOM策略容量为4KB时,使用了LRU替换策略使

12、用了RANDOM策略容量为8KB时,使用了LRU策略使用了RANDOM策略容量为64KB时,使用了LRU替换策略使用了RANDOM策略五、实验结果1、cache容量对失效率的影响从面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示:cache容量总的失效次数总的失效率容量失效和冲突失效总次数强制性失效次数2KB13950.02431331644KB8400.01467121288KB6690.011641325664KB5420.00940542从上表,我们可以分析出,随着cache容量的不断增加,程序的失效率不断降低。容量失效和冲突失效的次数随着cache容量的增加不断地减

13、少,而强制性失效次数则不断地增加。2、相联度对失效率的影响从上面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示:相联度总的失效次数总的失效率容量失效和冲突失效总次数强制性失效的次数14920.02968340924920.02967641644760.02862844884720.028410462644700.02820470从上表,我们可以分析得出,随着相联度的增加,程序的失效率逐渐降低,但降低的幅度比较小。容量失效和冲突失效的次数随着相联度的增加不断地减少,而强制性的失效次数则不断地增加。3、块大小对失效率的影响块大小总的失效次数总的失效率容量失效和冲突失效总次数强制性失效的次数8byte20500.00392204816byte10610.00202105932byte5600.0011355764byte2950.00062293从上表,我们可以分析得出,随着块大小的增加,程序的失效率逐渐地降低。容量失效和冲突失效的次数随着块大小的增加,基本维持在一个稳定的值,而强制性的失效次数则不断地降低,且幅度比较大。4、替换策略对失效率影响dl1容量替换策略总的失效次数总的失效率容量失效和冲突失效总次数强制性失效的次数2KBl4740.0453410642KBr4840.0462420644KBl4660.0445338284KBr4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号