cache性能分析实验报告Word文件下载.docx

上传人:wj 文档编号:6941512 上传时间:2023-05-07 格式:DOCX 页数:18 大小:550.45KB
下载 相关 举报
cache性能分析实验报告Word文件下载.docx_第1页
第1页 / 共18页
cache性能分析实验报告Word文件下载.docx_第2页
第2页 / 共18页
cache性能分析实验报告Word文件下载.docx_第3页
第3页 / 共18页
cache性能分析实验报告Word文件下载.docx_第4页
第4页 / 共18页
cache性能分析实验报告Word文件下载.docx_第5页
第5页 / 共18页
cache性能分析实验报告Word文件下载.docx_第6页
第6页 / 共18页
cache性能分析实验报告Word文件下载.docx_第7页
第7页 / 共18页
cache性能分析实验报告Word文件下载.docx_第8页
第8页 / 共18页
cache性能分析实验报告Word文件下载.docx_第9页
第9页 / 共18页
cache性能分析实验报告Word文件下载.docx_第10页
第10页 / 共18页
cache性能分析实验报告Word文件下载.docx_第11页
第11页 / 共18页
cache性能分析实验报告Word文件下载.docx_第12页
第12页 / 共18页
cache性能分析实验报告Word文件下载.docx_第13页
第13页 / 共18页
cache性能分析实验报告Word文件下载.docx_第14页
第14页 / 共18页
cache性能分析实验报告Word文件下载.docx_第15页
第15页 / 共18页
cache性能分析实验报告Word文件下载.docx_第16页
第16页 / 共18页
cache性能分析实验报告Word文件下载.docx_第17页
第17页 / 共18页
cache性能分析实验报告Word文件下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

cache性能分析实验报告Word文件下载.docx

《cache性能分析实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《cache性能分析实验报告Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。

cache性能分析实验报告Word文件下载.docx

分析不同的替换算法对Cache性能的影响。

预备知识

1.SimpleScalar模拟器的相关知识。

详见相关的文档。

2.复习和掌握教材中相应的内容

(1)可以从三个方面改进Cache的性能:

降低失效率、减少失效开销、减少Cache命中时间。

(2)按照产生失效的原因不同,可以把Cache失效分为三类:

①强制性失效(Compulsorymiss)

当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。

这种失效也称为冷启动失效或首次访问失效。

②容量失效(Capacitymiss)

如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生失效。

这种失效称为容量失效。

③冲突失效(Conflictmiss)

在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。

这就是发生了冲突失效。

这种失效也称为碰撞失效(collision)或干扰失效(interference)。

(3)降低Cache失效率的方法:

增加Cache块大小、提高相联度、VictimCache、伪相联Cache、硬件预取技术、由编译器控制的预取和编译器优化。

(4)替换算法

①随机法:

为了均匀使用一组中的各块,这种方法随机地选择被替换的块。

②最近最少使用法LRU(LeastRecentlyUsed):

选择近期最少被访问的块作为被替换的块。

但由于实现比较困难,现在实际上实现的LRU都只是选择最久没有被访问过的块作为被替换的块。

实验内容

一关于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均分为数据和指令两部分。

(摘自百度百科)

下面简要说明一下有关cache的信息:

一般来说,Cache的结构参数主要包括以下几个方面:

容量、块大小、相联度、替换算法等。

在SimpleScalar模拟器中,采用了两级Cache结构,同时数据和指令Cache分开。

SimpleScalar的Cache参数配置命令为:

<

name>

:

nsets>

bsize>

assoc>

repl>

Cache的名称,其中:

dl1:

一级数据Cache;

dl2:

二级数据Cache;

il1:

一级指令Cache;

il2:

二级指令Cache;

dtlb:

数据TLB;

itlb:

指令TLB;

组的数目;

块大小;

相联度;

替换策略。

此时,Cache容量为:

*<

替换策略主要有以下几种:

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模拟器自带的测试程序以及自己设计的一个程序进行测试。

自带的测试程序是在/root/simplescalar/simplesim-3.0/tests-pisa/bin.little目录下的test-math,test-fmath,test-llong以及test-printf。

我们所有的实验内容都是对一级数据cache来进行分析的。

在simplescalar中,我们使用的模拟器是sim-cache。

二simplescalar模拟器基本配置情况下的运行模拟

在基本的配置情况下运行自己设计的程序,代码如下:

#include<

stdio.h>

Main()

{

printf(“helloworld!

\n”);

return0;

}

1.编辑好程序后,将其保存在/root/simplescalar文件夹下,文件命名为hello.c,用安装好的simplescalar中的编译器sslittle-na-sstrix-gcc(它的访问目录为/root/simplescalar/bin/sslittle-na-sstrix-gcc)对其进行编译,编译后生成了能够在模拟器中可以运行的可执行文件a.out。

命令行运行界面如下图所示:

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。

三Cache容量对Cache性能的影响

1.操作说明:

(1)改变simplescalar模拟器中的一级数据cache(dl1)的容量配置,我们通过改变组数来改变它的容量。

与此同时固定块大小为32byte、相联度为2以及替换策略为LRU等参数。

(2)测试的程序是simplescalar自带的测试程序test-math。

2.运行的界面(截取了部分所需的界面)如下图所示:

容量为2KB(32*32*2*1)时,

容量为4KB(64*32*2*1)时,

容量为8KB(128*32*2*1)时,

容量为64KB(1024*32*2*1)时,

3.运行结果分析

从面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示:

dd1容量

总的失效次数

总的失效率

容量失效和冲突失效总次数

强制性失效次数

2KB

1395

0.0243

1331

64

4KB

840

0.0146

712

128

8KB

669

0.0116

413

256

64KB

542

0.0094

从上表,我们可以分析出,随着cache容量的不断增加,程序的失效率不断降低。

容量失效和冲突失效的次数随着cache容量的增加不断地减少,而强制性失效次数则不断地增加。

四Cache相联度对Cache性能的影响

1.操作说明

(1)改变simplescalar模拟器中的一级数据cache的相联度大小。

与此同时固定cache的容量16KB、块大小32byte以及替换策略为LRU等参数。

(2)测试的程序是simplescalar自带的测试程序test-fmath。

2.运行的界面(只截取了部分所需的界面)如下图所示:

相联度为1路时,

相联度为2路时,

相联度为4路时,

相联度为8路时,

相联度为64路时,

3.运行结果分析

从上面的运行结果中,我们提取所需要的一级数据cache的信息,如下表所示:

dl1相联度

强制性失效的次数

1

492

0.0296

83

409

2

76

416

4

476

0.0286

28

448

8

472

0.0284

10

462

470

0.0282

从上表,我们可以分析得出,随着相联度的增加,程序的失效率逐渐降低,但降低的幅度比较小。

容量失效和冲突失效的次数随着相联度的增加不断地减少,而强制性的失效次数则不断地增加。

五Cache块大小对Cache性能的影响

(1)改变simplescalar模拟器中的一级数据cache的块大小。

与此同时固定Cache的容量为32KB、相联度为2以及替换策略为LRU等参数。

(2)测试的程序是simplescalar自带的测试程序test-printf。

块大小为8byte时,

块大小为16byte时,

当块大小为32byte时,

当块大小为64byte时,

3.对上面的运行结果,我们提取所需要的一级数据cache的信息,如下表所示:

块大小

8byte

2050

0.0039

2048

16byte

1061

0.0020

1059

32byte

560

0.0011

3

557

64byte

295

0.0006

293

从上表,我们可以分析得出,随着块大小的增加,程序的失效率逐渐地降低。

容量失效和冲突失效的次数随着块大小的增加,基本维持在一个稳定的值,而强制性的失效次数则不断地降低,且幅度比较大。

六Cache的替换策略对Cache性能的影响

(1)改变simplescalar模拟器中的一级数据cache的替换策略。

与此同时固定Cache的块大小为32byte、相联度为2。

在Cache容量为2KB、4KB、8KB和64KB的情况下,分别进行测试。

(2)测试的程序是simplescalar自带的测试程序test-llong。

容量为2KB时,使用了LRU替换策略

使用了RANDOM策略

容量为4KB时,使用了LRU替换策略

容量为8KB时,使用了LRU策略

容量为64KB时,使用了LRU替换策略

3.对上面的运行结果,我们提取所需要的一级数据cache信息,如下表所示:

dl1容量

替换策略

l

474

0.0453

410

r

484

0.0462

420

466

0.0445

338

467

0.0446

341

26

465

0.0444

209

233

32

439

0.0419

438

从上表我们可以分析得出,最近最少使用策略(LRU)相对较好,但它与随机策略在一定的cache容量范围内相差不大。

容量失效和冲突失效次数,使用LRU替换策略的情况下,比较少;

而强制性失效次数,使用RANDOM替换策略的情况下,比较少。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2