计算机组成原理 实验1 Cache模拟器的实现
2016-11-11 10:43
1711 查看
一.实验目的
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。
Cache容量 块容量 映射方式 替换策略 写策略
256KB 8 Byte 直接映射 —— ——-
64KB 32 Byte 4路组相联 LRU ——-
64KB 32 Byte 4路组相联 随机 ——–
8KB 64 Byte 全相联 LRU ———
4、读取cache-traces.zip中的trace文件。
5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。
思考:1、Cache的命中率与其容量大小有何关系?
2、Cache块大小对不命中率有何影响?
3、替换算法和相联度大小对不命中率有何影响?
三.实验结果分析
四.实验心得
一.首先要了解cache的作用:
:在多并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了CPU的工作效率。为了避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存这样,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。
二.实验结果
Cache容量 块容量 映射方式 命中率 差量
8KB 32B 直接映射 96.5519
16KB 32B 直接映射 97.8677 1.3158
32KB 32B 直接映射 98.2644 0.3967
64KB 32B 直接映射 98.5404 0.2760
128KB 32B 直接映射 98.6606 0.1202
Cache容量 块容量 映射方式 命中率 差量
32KB 8B 直接映射 95.6332
32KB 16B 直接映射 97.5547 1.9215
32KB 32B 直接映射 98.5404 0.9857
32KB 64B 直接映射 99.017 0.4766
32KB 128B 直接映射 99.1196 0.1026
Cache容量 块容量 映射方式 命中率 差量
128KB 64B 2路组相联 99.3083
128KB 64B 4路组相联 99.3221 0.0138
128KB 64B 6路组相联 99.3246 0.0025
128KB 64B 8路组相联 99.3244 -0.0002
128KB 64B 16路组相联 99.3263 0.0019
Cache容量 块容量 映射方式 命中率
64KB 32B FIFO 5.73938
64KB 32B LRU 98.7636
64KB 32B RANDOM 98.7122
三:思考
1、Cache的命中率与其容量大小有何关系?
根据实验结果显示:Cache 的容量与块长是影响cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一定值时, 命中率已不因容量的增加而又明显的提高;
2、Cache块大小对不命中率有何影响?
Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;
3、替换算法和相联度大小对不命中率有何影响?
替换算法中:LRU算法的平均命中率比FIFO的高
LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;
Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;
四:实验心得
有实验指导书可知,实验所需要知识点是高速缓冲存储器第四章的基础内容,然后由书中学习了cache发展历程,基本工作原理;
对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;
因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响。
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。
Cache容量 块容量 映射方式 替换策略 写策略
256KB 8 Byte 直接映射 —— ——-
64KB 32 Byte 4路组相联 LRU ——-
64KB 32 Byte 4路组相联 随机 ——–
8KB 64 Byte 全相联 LRU ———
4、读取cache-traces.zip中的trace文件。
5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。
思考:1、Cache的命中率与其容量大小有何关系?
2、Cache块大小对不命中率有何影响?
3、替换算法和相联度大小对不命中率有何影响?
三.实验结果分析
四.实验心得
***实验过程***
一.首先要了解cache的作用:
:在多并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了CPU的工作效率。为了避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存这样,主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。
二.实验结果
Cache容量 块容量 映射方式 命中率 差量
8KB 32B 直接映射 96.5519
16KB 32B 直接映射 97.8677 1.3158
32KB 32B 直接映射 98.2644 0.3967
64KB 32B 直接映射 98.5404 0.2760
128KB 32B 直接映射 98.6606 0.1202
Cache容量 块容量 映射方式 命中率 差量
32KB 8B 直接映射 95.6332
32KB 16B 直接映射 97.5547 1.9215
32KB 32B 直接映射 98.5404 0.9857
32KB 64B 直接映射 99.017 0.4766
32KB 128B 直接映射 99.1196 0.1026
Cache容量 块容量 映射方式 命中率 差量
128KB 64B 2路组相联 99.3083
128KB 64B 4路组相联 99.3221 0.0138
128KB 64B 6路组相联 99.3246 0.0025
128KB 64B 8路组相联 99.3244 -0.0002
128KB 64B 16路组相联 99.3263 0.0019
Cache容量 块容量 映射方式 命中率
64KB 32B FIFO 5.73938
64KB 32B LRU 98.7636
64KB 32B RANDOM 98.7122
三:思考
1、Cache的命中率与其容量大小有何关系?
根据实验结果显示:Cache 的容量与块长是影响cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一定值时, 命中率已不因容量的增加而又明显的提高;
2、Cache块大小对不命中率有何影响?
Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;
3、替换算法和相联度大小对不命中率有何影响?
替换算法中:LRU算法的平均命中率比FIFO的高
LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;
Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;
四:实验心得
有实验指导书可知,实验所需要知识点是高速缓冲存储器第四章的基础内容,然后由书中学习了cache发展历程,基本工作原理;
对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;
因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响。
相关文章推荐
- 计算机组成原理Cache模拟器的实现
- [置顶] 计算机组成原理实验:乘法实现
- 山东大学软件学院计算机组成原理实验二
- [z]计算机架构中Cache的原理、设计及实现
- 计算机组成原理实验之微程序控制器实验
- 【计算机组成原理】用MARS做实验
- [置顶] [计算机组成原理][R-I-J型指令CPU设计实验总结]
- [Other]计算机组成原理分解实验:实验四 时序系统
- 1.计算机原理实验及实现
- 计算机组成原理实验之CPU组成与指令周期实验
- 计算机组成原理实验二:RAM实验
- 计算机组成原理运算器的编程实现
- 计算机组成原理 实验一 VHDL BCD码
- 山东大学软件学院计算机组成原理实验4
- 计算机组成原理实验之模拟整机实验考核试题
- 计算机组成原理综合实验
- 计算机组成原理课程设计实验一:验证74LS181运算和逻辑功能
- [Other]计算机组成原理分解实验:实验三 二进制补码加法器
- 计算机组成原理课程设计(vhdl语言实现)
- [计算机组成原理][实验十.R-I-J型指令CPU设计实验总结]