cache性能分析报告.docx
- 文档编号:16768547
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:15
- 大小:415.09KB
cache性能分析报告.docx
《cache性能分析报告.docx》由会员分享,可在线阅读,更多相关《cache性能分析报告.docx(15页珍藏版)》请在冰点文库上搜索。
cache性能分析报告
《计算机系统结构课内实验》
实验报告
一、实验目的及要求
1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;
2.了解Cache的容量、相联度、块大小对Cache性能的影响;
3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;
4.理解Cache失效的产生原因以及Cache的三种失效;
5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;
二、实验环境
Vmware虚拟机,redhat9。
0linux操作系统,SimpleScalar模拟器
三、实验内容
1.运行SimpleScalar模拟器;
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容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率.分析不同的替换算法对Cache性能的影响。
四、实验步骤
1、关于simplescalar的简要说明
SimpleScalar包括多个仿真器:
sim—fast,sim-safe,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均分为数据和指令两部分。
(摘自XX百科)
下面简要说明一下有关cache的信息:
一般来说,Cache的结构参数主要包括以下几个方面:
容量、块大小、相联度、替换算法等。
在SimpleScalar模拟器中,采用了两级Cache结构,同时数据和指令Cache分开。
SimpleScalar的Cache参数配置命令为:
〈nsets〉:
〈assoc>:
〈name>: Cache的名称,其中: dl1: 一级数据Cache; dl2: 二级数据Cache; il1: 一级指令Cache; il2: 二级指令Cache; dtlb: 数据TLB; itlb: 指令TLB; 〈nsets>: 组的数目; 块大小; 〈assoc〉: 相联度; 〈repl>: 替换策略.此时,Cache容量为: 〈nsets〉* 替换策略主要有以下几种: l: LRU,最近最少使用; f: FIFO,先进先出; r: RANDOM,随机策略. 例如: —cache: dl1dl1: 2048: 64: 4: r,表示对一级数据cache进行配置,2048表示有2048组,64表示cache块大小为64byte,4表示相联度为4,r表示替换策略为RANDOM。 在此配置下,一级数据cache的容量为2048*64*4=512KB. 由于SimplescalarSpec2000测试程序在其官方网站不能下载,故使用simplescalar模拟器自带的测试程序以及自己设计的一个程序进行测试. 我们所有的实验内容都是对一级数据cache来进行分析的.在simplescalar中,我们使用的模拟器是sim—cache。 2、simplescalar模拟器基本配置情况下的运行模拟 1。 用安装好的simplescalar中的编译器对test.c进行编译,编译后生成了能够在模拟器中可以运行的可执行文件。 命令行运行界面如下图所示: 2.我们使用simplescalar中的模拟器sim—cache对a。 out模拟执行,执行后的界面如下图所示: 3。 对运行结果进行分析 从上面的运行结果中我们提取出一级数据cache(dl1)的信息进行分析: dl1.accesses4420#totalnumberofaccesses一级数据cache上的总访问次数 dl1.hits3963#totalnumberofhits一级数据cache上的命中次数 dl1。 misses457#totalnumberofmisses一级数据cache上的失效次数 dl1。 replacements201#totalnumberofreplacements一级数据cache上发生替换的次数 dl1.writebacks190#totalnumberofwritebacks一级数据cache上发生写回的次数 dl1.invalidations0#totalnumberofinvalidations一级数据cache上无效访问的次数 dl1。 miss_rate0.1034#missrate(i。 e.,misses/ref)一级数据cache上的失效率 dl1.repl_rate0。 0455#replacementrate(i.e.,repls/ref)一级数据cache上发生替换的概率 dl1。 wb_rate0。 0430#writebackrate(i.e。 ,wrbks/ref)一级数据cache上发生写回的概率 dl1.inv_rate0。 0000#invalidationrate(i。 e.,invs/ref)一级数据cache上发生无效访问的概率 从分析中,我们可以得出,一级数据cache总共的失效次数(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*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、相联度为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替换策略 使用了RANDOM策略 容量为8KB时,使用了LRU策略 使用了RANDOM策略 容量为64KB时,使用了LRU替换策略 使用了RANDOM策略 五、实验结果 1、cache容量对失效率的影响 从面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示: cache容量 总的失效次数 总的失效率 容量失效和冲突失效总次数 强制性失效次数 2KB 1395 0.0243 1331 64 4KB 840 0.0146 712 128 8KB 669 0。 0116 413 256 64KB 542 0.0094 0 542 从上表,我们可以分析出,随着cache容量的不断增加,程序的失效率不断降低。 容量失效和冲突失效的次数随着cache容量的增加不断地减少,而强制性失效次数则不断地增加. 2、相联度对失效率的影响 从上面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示: 相联度 总的失效次数 总的失效率 容量失效和冲突失效总次数 强制性失效的次数 1 492 0.0296 83 409 2 492 0.0296 76 416 4 476 0。 0286 28 448 8 472 0。 0284 10 462 64 470 0。 0282 0 470 从上表,我们可以分析得出,随着相联度的增加,程序的失效率逐渐降低,但降低的幅度比较小。 容量失效和冲突失效的次数随着相联度的增加不断地减少,而强制性的失效次数则不断地增加。 3、块大小对失效率的影响 块大小 总的失效次数 总的失效率 容量失效和冲突失效总次数 强制性失效的次数 8byte 2050 0。 0039 2 2048 16byte 1061 0。 0020 2 1059 32byte 560 0.0011 3 557 64byte 295 0.0006 2 293 从上表,我们可以分析得出,随着块大小的增加,程序的失效率逐渐地降低。 容量失效和冲突失效的次数随着块大小的增加,基本维持在一个稳定的值,而强制性的失效次数则不断地降低,且幅度比较大。 4、替换策略对失效率影响 dl1容量 替换策略 总的失效次数 总的失效率 容量失效和冲突失效总次数 强制性失效的次数 2KB l 474 0.0453 410 64 2KB r 484 0.0462 420 64 4KB l 466 0。 0445 338 28 4KB r 467 0。 0446 341 26 8KB l 465 0.0444 209 256 8KB r 465 0.0444 233 32 64KB l 439 0。 0419 0 439 64KB r 439 0.0419 1 438 从上表我们可以分析得出,最近最少使用策略(LRU)相对较好,但它与随机策略在一定的cache容量范围内相差不大。 容量失效和冲突失效次数,使用LRU替换策略的情况下,比较少;而强制性失效次数,使用RANDOM替换策略的情况下,比较少。 六、总结 本实验基于cache的失效率的基本策略,在多种方法中选择探究改变各项指标对性能的影响,在实验中我们发现很多指标的改变并不能如预期中一样改变性能,失效率的降低伴随着硬件开销的增加,时间开销的增加,但并不是一味增加硬件,增加时间就能取得良好的收效,相反,在不同的程序执行过程中呈现出对不同方法的特别的适应性。 通过本次实验,我对cache的失效率的降低方法有了新的认识,同时体会到实验分析对于性能提高的主要性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cache 性能 分析 报告