cache性能分析实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机系统结构实验报告

名称: Cache性能分析学院:信息工程

姓名:陈明

学号:S121055

专业:计算机系统结构年级:研一

实验目的

1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;

2.了解Cache的容量、相联度、块大小对Cache性能的影响;

3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;

4.理解Cache失效的产生原因以及Cache的三种失效;

5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;

实验平台

Vmware 虚拟机,redhat 9.0 linux 操作系统,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模拟器的相关知识。详见相关的文档。

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

(1)可以从三个方面改进Cache的性能:降低失效率、减少失效开销、

减少Cache命中时间。

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

①强制性失效(Compulsory miss)

当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。这种失效也称为冷启动失效或首次访

问失效。

②容量失效(Capacity miss)

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

③冲突失效(Conflict miss)

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

然后又被重新访问的情况。这就是发生了冲突失效。这种失效也称为碰

撞失效(collision)或干扰失效(interference)。

(3)降低Cache失效率的方法:增加Cache块大小、提高相联度、Victim Cache、伪相联Cache、硬件预取技术、由编译器控制的预取和

编译器优化。

(4)替换算法

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

的块。

②最近最少使用法LRU(Least Recently Used):选择近期最少被访

问的块作为被替换的块。但由于实现比较困难,现在实际上实现的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参数配置命令为:::::

:Cache的名称,其中:

dl1:一级数据Cache;

dl2:二级数据Cache;

il1:一级指令Cache;

il2:二级指令Cache;

dtlb:数据TLB;

itlb:指令TLB;

:组的数目;

:块大小;

:相联度;

:替换策略。此时,Cache容量为:**

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

l :LRU,最近最少使用;

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。

相关文档
最新文档