计算机组成原理Cache模拟器的实现
2016-06-12 19:56
435 查看
一.实验目的
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。
Cache出现:
I/O设备访问主存请求级别高于CPU访存,在多体并行存储系统出现,使得CPU等甚多至几个主存周期,效率降低;所以在CPU于主存之间加一级缓存,先将CPU要取的信息提前送至缓存,CPU可直接从缓存中读取信息;
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。
4、读取cache-traces.zip中的trace文件。
5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。
思考:
1、Cache的命中率与其容量大小有何关系?
Cache 的容量与块长是影响cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一定值时, 命中率已不因容量的增加而又明显的提高;
2、Cache块大小对不命中率有何影响?
Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;
3、替换算法和相联度大小对不命中率有何影响?
替换算法中:LRU算法的平均命中率比FIFO的高
LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;
Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;
三:实验结果分析
Cache的命中率与其容量大小的关系
将所有测试的数据绘制成折线图,更清晰的展现,如下
Cache块大小对不命中率的影响
替换算法对命中率影响数据分析
FIFO
LRU
Random
相关度大小对命中率的影响
*折线图
四.实验心得
有实验指导书可知,实验所需要知识点是高速缓冲存储器第四章的基础内容,然后由书中学习了cache发展历程,基本工作原理;
对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;
因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响;
看了主存地址映射:有直接映射,全相连映射,感觉有一些迷糊了;
不是太容易理解了,然后百度搜了一些相连度大小对命中率影响,然后运用CacheSim模拟器,仅仅从一个数值中值看出来简单的变化;
但是并不能看出有什么规律;然后把它们用excel做成折线图,发现其中存在的规律;
然后翻阅书籍;解释为什么会存在着现象;这种实践让在学习知识点的过程中,更加有说服性了;
文档
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。
Cache出现:
I/O设备访问主存请求级别高于CPU访存,在多体并行存储系统出现,使得CPU等甚多至几个主存周期,效率降低;所以在CPU于主存之间加一级缓存,先将CPU要取的信息提前送至缓存,CPU可直接从缓存中读取信息;
3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。
4、读取cache-traces.zip中的trace文件。
5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。
思考:
1、Cache的命中率与其容量大小有何关系?
Cache 的容量与块长是影响cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一定值时, 命中率已不因容量的增加而又明显的提高;
2、Cache块大小对不命中率有何影响?
Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;
3、替换算法和相联度大小对不命中率有何影响?
替换算法中:LRU算法的平均命中率比FIFO的高
LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;
Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;
三:实验结果分析
Cache的命中率与其容量大小的关系
将所有测试的数据绘制成折线图,更清晰的展现,如下
Cache块大小对不命中率的影响
替换算法对命中率影响数据分析
FIFO
LRU
Random
相关度大小对命中率的影响
*折线图
四.实验心得
有实验指导书可知,实验所需要知识点是高速缓冲存储器第四章的基础内容,然后由书中学习了cache发展历程,基本工作原理;
对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;
因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响;
看了主存地址映射:有直接映射,全相连映射,感觉有一些迷糊了;
不是太容易理解了,然后百度搜了一些相连度大小对命中率影响,然后运用CacheSim模拟器,仅仅从一个数值中值看出来简单的变化;
但是并不能看出有什么规律;然后把它们用excel做成折线图,发现其中存在的规律;
然后翻阅书籍;解释为什么会存在着现象;这种实践让在学习知识点的过程中,更加有说服性了;
文档
相关文章推荐
- Linux下C语言多线程,网络通信简单聊天程序
- TCP 通信
- 数据结构(线段树):BZOJ 1103 [POI2007]大都市meg
- 数据结构(线段树):CodeForces 145E Lucky Queries
- 关于内存问题提醒!结构体+protobuf做协议体发送!
- 模拟简单距离向量算法的更新——计算机网络作业
- Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频
- 常用网络结构
- Android加载网络图片
- JBWEB000065: HTTP Status 500 - Request processing failed; nested exception is javax.ejb.EJBException
- Linux抓包工具tcpdump详解
- 安卓发送Get、Post请求,解决参数乱码问题
- 计算机图形学(二)输出图元_20_章节总结_程序展示_蜗形线、心形线、螺旋线
- HttpWebRequest用法
- 配置内外网通信(虚拟机内网)
- memcached网络实现部分简介
- 理解LSTM网络
- 《计算机系统要素》学习笔记: 逻辑门 构建 思路
- Lab 8:网络LED矩阵显示器
- 深入理解 HTTP 协议 POST 与PUT 方法区别