计算机组成原理作业
- 格式:docx
- 大小:112.15 KB
- 文档页数:9
计算机组成原理
实验报告
学院(系):软件
专 业:软工JAVA
班 级:一班
学 号:1415925062
姓名: 陈弈山
年 月 日
实验1 Cache模拟器的实现
一.实验目的
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。
(2)掌握Cache容量、相联度、块大小对Cache性能的影响。
(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。
(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。
二、实验内容和步骤
1、启动CacheSim。
2、对CacheSim的压缩包进行解压,打开CacheSim.exe,出现下面的运行黑框。
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的访问次数、读/写次数、平均命中率、读/写命中率。
在gcc.trace中的数据比较块容量与命中率的关系
三、 实验方法
通过控制变量法,保持其他变量不变,只改变想要测试的变量的大小,来分析
其对结果的影响。
1.通过实验看cache容量对C
PU命中率的影响
Cache = 8K
cache容量 = 16KB
cache容量 = 64KB
整理数据可得表格:
cache容量 块容量 映射方式 替换策略 写策略 平均命中率
8KB 64B 直接映射 —— write_through 96.3735
16KB 64B 直接映射 —— write_through 98.1923
32KB 64B 直接映射 —— write_through 98.719
64KB 64B 直接映射 —— write_through 99.017
128KB 64B 直接映射 —— write_through 99.1508
2.通过实验看块容量对CPU命中率的影响
块容量 = 8 B
块容量 = 16 B
块容量 = 32 B
块容量 = 64 B
cache容量 块容量 映射方式 替换策略 写策略 命中率
64KB 8B 直接映射 —— write_through 95.6332
64KB 16B 直接映射 —— write_through 97.5547
64KB 32B 直接映射 —— write_through 98.5404
64KB 64B 直接映射 —— write_through 99.017
64KB 128B 直接映射 —— write_through 99.1196
64KB 256B 直接映射 —— write_through 99.0789
64KB 512B 直接映射 —— write_through 98.7364
64KB 1024B 直接映射 —— write_through 98.2869
3.替换策略对命中率影响数据分析
cache容量 块容量 映射方式 替换策略 写策略 命中率
64KB 64B 8路组相联 FIFO write_through 5.79523
64KB 64B 8路组相联 LRU write_through 99.2937
64KB 64B 8路组相联 LFU write_through 5.79532
64KB 64B 8路组相联 RANDOM write_through 99.2387
4.映射方式对命中率的影响:
数据举例其一:
cache容量 块容量 映射方式 替换策略 写策略 命中率
256KB 128B 2路组相联 LRU write_through 99.6071
256KB 128B 4路组相联 LRU write_through 99.6168
256KB 128B 8路组相联 LRU write_through 99.6174
256KB 128B 16路组相联 LRU write_through 99.6184
256KB 128B 32路组相联 LRU write_through 99.6209
256KB 128B 64路组相联 LRU write_through 99.6211
256KB 128B 128路组相联 LRU write_through 99.6213
256KB 128B 256路组相联 LRU write_through 99.6221
256KB 128B 512路组相联 LRU write_through 99.6221
256KB 128B 1024路组相联 LRU write_through 99.6221
256KB 128B 直接映射 LRU write_through 99.3965
5.分析数据:
1、Cache的命中率与其容量的关系:
Cache 的容量与块长是影响cache效率的重要因素;
Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache容量达到一
定值时, 命中率已不因容量的增加而又明显的提高
2、Cache块大小对命中率的影响:
Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字
存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据
反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能
出现少数块刚装入就被覆盖,故命中率会下降
3、替换算法和相联度大小对不命中率有何影响?
替换算法中:LRU算法的平均命中率比FIFO的高
LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache
各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没
有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;
Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定
程度时,不命中率保持不变
四.实验心得:
实验所需要的知识点是高速缓冲存储器第四章的基础内容, 对实验所需要的重点名词,进
行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相
关度,块大小,替换算法对命中率的影响。