版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机体系结构cache模拟器实验报告 崔雪莹Cache实现分析 计算机体系结构 Cache模拟器实验 实验报告 姓名 崔雪莹 学号 12281166 班级计科1202班 老师 董岚 2015年 06月07日 1 崔雪莹Cache实现分析 一、 阅读分析附件模拟器代码 . 3 1、关键参数 . 3 2、关键算法 . 4 二、课后习题 . 6 1、习题内容 . 6 2、题目分析 . 6 3、计算及结果 . 7 4、模拟器上实验结果检验 . 8 三、 整体分析 . 11 1、三种映射方式对Cache效率的的影响 . 11 2、block块大小与Cache容量对Cache效率的影响 . 12 3、C
2、ache容量与相连度对Cache效率的影响 . 13 4、三种失效类型影响因素 . 14 四、 实验思考和感受 . 16 1、关于模拟器的思考 . 16 2、关于整个实验的思考 . 17 2 崔雪莹Cache实现分析 一、 阅读分析附件模拟器代码 1、关键参数 (1) 用户可见参数:(用户通过命令行输入参数) (2)程序内部主要参数:(代码内部重要参数) 3 崔雪莹Cache实现分析 2、关键算法 注:这里不粘贴代码,只是进行简单的代码算法说明 (1) 块地址表示: 注:图是我按照自己的想法自己画的,可能有些地方并不准确,望老师指正。图中以一个例子来解释cache模拟器中block和数据地址的
3、关系,以及和组地址和标志位的关系。 4 崔雪莹Cache实现分析 (2) Index与tag: 由上面计算: index = blockaddress % NOofset index = 16 % 8 = 2 tag=blockaddress/Noofset tag = 16/8 = 2 以上例,字地址16为例,写成二进制为0001 0010 B,其中组数为8,又因为23=8,所以字地址取后3位为:index = 010 B = 2 ,取前29位为:tag = 00010 B = 2 。所以,算法与理论是一致的。 (3) Valid: 有效位。当通过上述方式寻址找到了数据存放的数据块,接下来判
4、断有效位: 有效位为1,说明数据是有效的,可以从block提取数据; 有效位为0,说明块里的数据是无效的,所以不能从block提取数据,出现miss,此时判断miss类型,同时需要访问内存或下一级存储,将数据放到cache里。 (4) 失效类型及判断方法: 判断失效类型,函数misstype(int ba ,int nb ,int l)。 Compulsory miss(强制性失效,冷启动):当第一次访问某一个块的时候,数据是肯定不在块中的,此时出现强制性失效,或者说是冷启动失效。 Capacity miss(容量失效):所需的数据不能全部调入cache中,块被替换后又被重新访问,意思就是当所
5、有的块都被占满了,这样又有数据希望被调入缓存时,就出现了容量失效。 Conflict miss(冲突失效):在组相联或直接映像中,数据想要替换进某一组中,组内的块都被占满了,但是别的组的块有空余,数据只能替换这一组,尽管别的组有空余也不能替换。这样就出现了冲突失效。 (5) LRU算法实现替换: LRU替换算法是采用最近最久未使用的块,其中Lru数组存放最近 多少次未被使用,因为是采用循环访问,当循环访问到这一组时,把这 5 崔雪莹Cache实现分析 组所有的块的Lru值都加1,如果成功访问到这一块,数据能从其中取出来,就把这一块的Lru值置0,退出循环。 (6) 直接映射、组相联映射、全相联
6、映射: 直接映射:是特殊的组相联映射,就是相联度为1的组相联映射。所以采取和组相联一样的程序和算法,当识别该组第一块失效时,直接进行替换,因为有且只有一块。 组相联映射:当识别该组某块失效时,如果块都被占满,要根据Lru值的大小,判断哪一块被替换掉。 全相联映射:从上到下cache块存数据,则从上到下循环即可,遇到失效时,要根据Lru值的大小,判断哪一块被替换掉。 二、 课后习题 1、 习题内容 在CacheSimulator模拟器上模拟如下程序的运行过程: int i,j,c stride,array256 for(i=0;i<10000;i+) for(j=0;j<256;j=
7、j+stride) c = arrayj+5; 假设Cache总大小是256个字节,且块大小为16字节(4个字)。 同时假设内存当中只有这一个程序在运行,而且整形数字的长度为一个字长(字长为32位),在直接相连映射下,stribe分别等于132、131时程序的运行结果,并分析原因。而当采用两路组相连时又会有什么结果并分析原因。 2、 题目分析 当stribe = 132/131 时,程序相当于循环访问内存偏移地址为0和地址132/131的内容,循环10000次,也就是访问了2000次存储。 结合cache机制,cache大小为256个字节,块大小为16个字节,所以块的个数为256/16 = 1
8、6个。若为2路组相连,则有16/2 = 8组。 当第一次访问块时,一定会发生强制性失效,计一次miss。 6 崔雪莹Cache实现分析 3、 计算及结果 1) 直接映像时: ? stride=132 array0的块地址为0,映射到cache的块号为0: 0 mod 16 = 0 array132的块地址为132/4 = 33,映射到cache的块号为1: 33 mod 16 = 1 因为第一次访问cache,0和1一定会发生强制性失效,之后因为调入cache,不会发生失效。则失效次数为2,则失效率为: 2/20000 = 0.01% 命中次数为19998次,命中率为: 19998/20000
9、 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 ? stride=131 array0的块地址为0,映射到cache的块号为0: 0 modulo 16 = 0 array131的块地址为131/4 = 32,映射到cache的块号为0: 32 modulo 16 = 0 因为第一次访问cache,0一定会发生强制性失效,之后cache里块号为0的块不断地被替换写入替换写入,此时发生冲突失效。则失效次数为20000,则失效率为: 20000/20000 = 1 = 100% 命中率为0。失效类型为强制性失效次数1,冲突失效次数为19999。 2) 2路组相联: ? str
10、ide=132 array0的块地址为0,映像到cache的组号为0: 0 modulo 8 = 0 array132的块地址为132/4 = 33,映像到cache组号为1: 33 modulo 8 = 1 7 崔雪莹Cache实现分析 因为第一次访问cache,0和1一定会发生强制性失效,之后因为调入cache,不会发生失效。则失效次数为2,则失效率为: 2/20000 = 0.01% 命中次数为19998次,命中率为: 19998/20000 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 ? stride=131 array0的块地址为0,映像到cache组号为:
11、0 modulo 8 = 0 array131的块地址为131/4 = 32,映像到cache组号为: 32 modulo 8 = 0 因为第一次访问cache,0和1一定会发生强制性失效,之后因为是2路组相联,array0与array131都在0组,不会发生失效,则失效次数为2,失效率为: 2/20000 = 0.01% 命中次数为19998次,命中率为: 19998/20000 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 4、 模拟器上实验结果检验 注:因为例题的循环次数为10000,为了便于实验,我将循环次数设置为100,结果参照100的计算,原理是一致的。因为实
12、际131/132都是字地址,而project.txt设置的是字节地址,所以将project.txt里值设置为0 和132*4/131*4循环100次,设置cache大小为256,block大小为4,可以分别看到直接映射和2路组相连映射的结果为: 崔雪莹Cache实现分析 可以看到实验结果与计算是一致的(因为循环次数100,所以实验结果小数点要后移两位)。同时对习题1的思考(见后)也证明是正确的。 (1) 直接映射:stride = 132截图 (2) 直接映射:stride = 131截图 9 崔雪莹Cache实现分析 (3) 2路组相连:stride = 132截图 (4) 2路组相连:st
13、ride = 131截图 10 崔雪莹Cache实现分析 三、 整体分析 1、 三种映射方式对Cache效率的的影响 其他相同条件:block大小为2,组相连相连度为4,project.txt为200个01000的随机数。 生成图表: 11 崔雪莹Cache实现分析 此时可以看到: 1. 直接映射的失效率高,组相连失效率中等,全相连失效率最低 2. 随着cache容量的增加,失效率越小。 3. 当cache容量为1024时,因为数据取值的原因,三种方式失效率相等,说明当cache容量足够大,三种方式失效率是一样的。 2、 block块大小与Cache容量对Cache效率的影响 其他相同条件:直
14、接映射,相连度为1,project.txt为200个01000的随机数。 生成图表: 12 崔雪莹Cache实现分析 此时可以看到: 1. 对于给定的cache容量如64字节,当块大小增加时,失效率先是下降,后来反而上升了。 2. Cache容量越大,使其失效率达到最低的块的大小就越大。 3. 因为取得数据样本是随机的,不是连续的,实验数据并不是十分准确,比如cache容量128时,块大小出现两次失效率 3、 Cache容量与相连度对Cache效率的影响 其他相同条件:组相连,块大小2,project.txt为200个01000的随机数。 生成图表: 13 崔雪莹Cache实现分析 此时可以看
15、到: 1. 提高相连度会使失效率下降。 2. 因为取得数据样本是随机的,不是连续的,实验数据并不是十分准确。 3. 当容量为1024时,也就是cache一定大时,失效率没什么区别。 4、 三种失效类型影响因素 (1)相连度对三种失效类型影响: 其他相同条件:cache大小为256,block大小为2,组相连,project.txt为200个01000的随机数。 14 崔雪莹Cache实现分析 可以看出: 1. 强制性失效,即冷启动,不受相连度的影响。 2. 容量失效基本不受相连度影响,但因为数据偶然性,出现增大 趋势。 3. 冲突失效随着相连度的增加而降低。 (2)Cache容量对三种失效类型
16、影响: 其他相同条件:block大小为2,组相连度为4,project.txt为200个01000的随机数。 15 崔雪莹Cache实现分析 可以看出: 1. 容量越大,失效率越小。 2. 强制性失效不受容量大小的影响。 3. 容量失效随着容量的增加而大大减小。 4. 冲突失效不受容量大小的影响。 四、 实验思考和感受 1、关于模拟器的思考 1Cache大小可选为16/64/128/256,因为代码写了,但是没有增加选项。但是,我考虑因为16实在太小了,没什么意义。 2打开文件名字为project.txt,修改文件名。 3个人感觉有地方不太合适,因为直接映像就是特殊的组相联映射,所以相 联度一
17、定为1,但是代码中并没有设计这一点,当一个完全不懂得人使用时,很有可能设置相联度大于1,造成错误。另外我觉得可以把三种方式各封装在一个自己的函数里,这样代码更加清晰。 4有困惑我的问题,我是通过阅读代码才比较清晰的理解cache实现的,但 是模拟器给出的地址映射的方法是将数据字节地址转换为字地址,又将字地址转换为块地址,对块地址进行取模运算。而习题1 是直接对字地址进行取 16 崔雪莹Cache实现分析 模运算,方法明显不一致。通过我重新阅读习题1的题目,发现实际习题1的132/131是字地址,因为定义的int array数组定义的是整数字长,所以132/131指的是地址为字地址,例如两个地址之间是一个整数字长。 2、关于整个实验的思考 这次实验是我大学做的最用心的一次实验,没有之一。我在仔细的阅读实验代码后,知道了内存的物理地址是怎样转换为cache的块号或组号的。我根据自己的理解,画了一个模拟寻址图,更加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年陕西服装工程学院单招职业适应性测试题库必考题
- 2026年山东省东营市单招职业适应性考试题库必考题
- 2026年伊犁职业技术学院单招职业适应性考试题库附答案
- 2026年潇湘职业学院单招职业倾向性测试必刷测试卷附答案
- 2026年山东外国语职业技术大学单招职业倾向性考试必刷测试卷及答案1套
- 2026年浙江海洋大学单招职业技能考试题库必考题
- 2026年濮阳职业技术学院单招职业倾向性考试必刷测试卷附答案
- 2026年山东药品食品职业学院单招职业适应性考试题库及答案1套
- 2026年四川体育职业学院单招职业倾向性考试题库新版
- 2026年江西制造职业技术学院单招职业技能测试题库及答案1套
- 广东省新课程标准初中理科教学仪器配备
- 国开电大应用写作(汉语)形考任务4参考答案
- 6S检查表标准版2行业资料国内外标准规范
- 汽车吊机支腿反力计算及梁板受力分析
- 第十四章基因的表达与调控
- 水库大坝安全评价导则
- 点的立体构成
- 《格萨尔王传研究开题报告文献综述》
- 阅读推荐课《不老泉》课件
- 护士长医院感染管理知识培训正式完整版课件
- 危大工程验收记录表(模板工程)
评论
0/150
提交评论