计算机组成原理之Cache模拟器的实现

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

实验一Cache模拟器的实现

一.实验目的

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

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二、实验内容和步骤

1、启动Cachesim

2.根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

Cache概念:高速缓冲存

Cache工作机制:大容量主存一般采用DRAM,相对SRAM速度慢,而SRAM速度快,但价格高。程序和数据具有局限性,即在一个较短的时间内,程序或数据往往集中在很小的存储器地址范围内。因此,在主存和CPU之间可设置一个速度很快而容量相对较小的存储器,在其中存放CPU当前正在使用以及一个较短的时间内将要使用的程序和数据,这样,可大大加快CPU访问存储器的速度,提高机器的运行效率

3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

(1)Cache容量:

启动CacheSim,提示请输入Cache容量,例如1、2、4、8......。此处选择输入4。

(2)块容量:

如下图所示,提示输入块容量,例如1、2、4、8......。此处选择输入16。

(3)映射方式:

如下图所示,提示输入主存储器和高速缓存之间的assoiativity方法(主存地址到Cache地址之间的映射方式),1代表直接映射(固定的映射关系)、2代表组相联映射(直接映射与全相联映射的折中)、3代表全相联映射(灵活性大的映射关系)。此处选择全相联映射。

(4)替换策略:

如下图所示,提示输入替换策略,1代表先进先出(First-In-First-Out,FIFO)算法、2代表近期最少使用(Least Recently Used,LRU)算法、3代表最不经常使用(Least Frequently Used,LFU)、4代表随机法(Random)。此处选择先进先出。

(5)写策略:

如下图所示,提示输入Cache的读写操作,1代表写直达法(存直达法)即写操作时数据既写入Cache又写入主存、2代表写回法(拷回法)即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。

此处选写回法

4、读取cache-traces.zip中的trace文件。

如下图所示,提示输入要测试的路径及名称,此处输入Cache-trace.zip的路径,以及需要读取的trace文件名,此处选择读取mcf.trace。

5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。

如下图所示,读取mcf.trace文件,程序运行结果如下:

访问次数读出次数写入次数平均命中率读出命中率写入命中率727230 5972 721258 74.8615% 60.6999% 74.9787%

(1)高速缓存访问次数:727230

(2)高速缓存次数:5972

(3)cache存储次数:721258

(4)平均缓存命中率:74.8615%

(5)高速缓存命中率:60.6999%

(6)缓存命中率:74.9787%

思考:1、Cache的命中率与其容量大小有何关系?

(1)当Cache块容量为8B、Cache容量为8KB时,平均命中率为1.02017%. (2)当Cache块容量为8B、Cache容量为16KB时,平均命中率为1.02334%.(3)当Cache块容量为8B、Cache容量为32KB时,平均命中率为1.03695%.

(4)当Cache块容量为8B、Cache容量为64KB时,平均命中率为1.0375%.(5)当Cache块容量为8B、Cache容量为128KB时,平均命中率为1.03791%.

当Cache块容量为8B时,不同Cache容量下的命中率如下图所示:

Cache容量8 16 32 64 128

平均命中率 1.02017% 1.02334% 1.03695% 1.0375% 1.03791% 由上述图中数据及表格数据可知,当Cache块容量一定时,Cache容量越大,其cache的命中率越高。

2、Cache块大小对不命中率有何影响?

(1)当Cache块容量为8KB、Cache容量为8B时,平均命中率为1.02017%. (2)当Cache块容量为16KB、Cache容量为8B时,平均命中率为50.4872%. (3)当Cache块容量为32KB、Cache容量为8B时,平均命中率为75.2232%.

(4)当Cache块容量为64KB、Cache容量为8B时,平均命中率为87.5903%. (5)当Cache块容量为128KB、Cache容量为8B时,平均命中率为93.768%.

当Cache容量为8kB时,不同Cache容量下的命中率如下图所示:

8 16 32 64 128 Cache块容

平均命中率 1.02017% 50.4872% 75.2232% 87.5903% 93.768% 由上述图中数据及表格数据可知,当Cache容量一定时,Cache块容量越大,其cache的命中率越高。则其不命中率越低。

3、替换算法和相联度大小对不命中率有何影响?

(1)当相联度大小保持一致,均为二路组相联映射时

替换策略为先进先出算法时:

当相联度为二路组相联映射,替换策略为先进先出算法时,此时cache平均命中率为0.0912598%。

替换策略为近期最少使用算法时:

相关文档
最新文档