计算机标准体系结构cache模拟器实验报告.doc
《计算机标准体系结构cache模拟器实验报告.doc》由会员分享,可在线阅读,更多相关《计算机标准体系结构cache模拟器实验报告.doc(18页珍藏版)》请在咨信网上搜索。
计算机体系构造—— Cache模仿器实验 实验报告 姓名 崔雪莹 学号 12281166 班级 计科1202班 教师 董岚 06月07日 一、 阅读分析附件模仿器代码 2 1、核心参数 2 2、核心算法 3 二、课后习题 5 1、习题内容 5 2、题目分析 5 3、计算及成果 6 4、模仿器上实验成果检查 7 三、 整体分析 8 1、三种映射方式对Cache效率影响 8 2、block块大小与Cache容量对Cache效率影响 8 3、Cache容量与相连度对Cache效率影响 9 4、三种失效类型影响因素 9 四、 实验思考和感受 10 1、关于模仿器思考 10 2、关于整个实验思考 10 一、 阅读分析附件模仿器代码 1、核心参数 (1) 顾客可见参数:(顾客通过命令行输入参数) 参数名 含义 值 备注 choice 映像方式选项 1/2/3 1为直接映射,2为组相连映射, 3为全相连映射 cachesize Cache大小 16/64/128/256 以字节为单位 blocksize Block大小 1/2/4 以字为单位 assoc 相连度 1/2/4/8/16 assoc路组相连(n-way) accesscount 祈求次数 待输出 等于project.txt值个数 hitcount 命中次数 待输出 成功在Cache找到次数 hitrate 命中率 待输出 HitRate= hitcount/accesscount misscount 未命中次数 待输出 没在Cache找到次数 misscount = 1-hitcount missrate 未命中率 待输出 MissRate= misscount/accesscount c1c ,c2c ,c3c 失效次数 待输出 分别为三种失效类型次数 (2)程序内部重要参数:(代码内部重要参数) 参数名 含义 计算 备注 blockinbyte 块字节大小 =blocksize*4 每一种块占多少字节 NOofblock 块个数 =cachesize/blockinbyte Cache中多少个块 NOofset 组个数 =NOofblock/assoc 块提成了多少个组 bytearray[] 要访问数据字节地址 =projec.txt中值 project.txt文献数据赋给了bytearray[]数组 wordaddress[] 要访问数据字地址 =bytearray[j]/4 blocksize是字为单位,就是说一种block占多少个字,因此数据也规定字地址 blockaddress[] 数据块地址 =wordaddress[]/blocksize 数据在第几块 index 索引位(组地址) =blockaddress[j]%NOofset 若Noofset=2^m,则块地址低m位为索引位(组地址)。 tag 标记位(组内寻址) =blockaddress[j]/NOofset 块地址高(32-m)位为标记位,用于拟定组内哪块数据,newarray[index][z+1]中存储 *valid 有效位 有效为1,失效为0 判断该cache块数据与否有效*是由于没有真正定义,只是存储newarray[index][z]中 lru[index][z] 近来未被使用次数 每次加1,被重写置0 替代时,替代掉lru[index][]值最大那个块 2、核心算法 注:这里不粘贴代码,只是进行简朴代码算法阐明 (1) 块地址表达: 注:图是我按照自己想法自己画,也许有些地方并不精确,望教师指正。图中以一种例子来解释cache模仿器中block和数据地址关系,以及和组地址和标志位关系。 (2) Index与tag: 由上面计算: index = blockaddress % NOofset index = 16 % 8 = 2 tag = blockaddress / Noofset tag = 16/8 = 2 以上例,字地址16为例,写成二进制为0001 0010 B,其中组数为8,又由于2^3=8,因此字地址取后3位为:index = 010 B = 2 ,取前29位为:tag = 0…0010 B = 2 。因此,算法与理论是一致。 (3) Valid: 有效位。当通过上述方式寻址找到了数据存储数据块,接下来判断有效位: 有效位为1,阐明数据是有效,可以从block提取数据; 有效位为0,阐明块里数据是无效,因此不能从block提取数据,浮现miss,此时判断miss类型,同步需要访问内存或下一级存储,将数据放到cache里。 (4) 失效类型及判断办法: 判断失效类型,函数misstype(int ba ,int nb ,int l)。 Compulsory miss(强制性失效,冷启动):当第一次访问某一种块时候,数据是必定不在块中,此时浮现强制性失效,或者说是冷启动失效。 Capacity miss(容量失效):所需数据不能所有调入cache中,块被替代后又被重新访问,意思就是当所有块都被占满了,这样又有数据但愿被调入缓存时,就浮现了容量失效。 Conflict miss(冲突失效):在组相联或直接映像中,数据想要替代进某一组中,组内块都被占满了,但是别组块有空余,数据只能替代这一组,尽管别组有空余也不能替代。这样就浮现了冲突失效。 (5) LRU算法实现替代: LRU替代算法是采用近来最久未使用块,其中Lru[][]数组存储近来多少次未被使用,由于是采用循环访问,当循环访问到这一组时,把这组所有块Lru[][]值都加1,如果成功访问到这一块,数据能从其中取出来,就把这一块Lru[][]值置0,退出循环。 (6) 直接映射、组相联映射、全相联映射: 直接映射:是特殊组相联映射,就是相联度为1组相联映射。因此采用和组相联同样程序和算法,当辨认该组第一块失效时,直接进行替代,由于有且只有一块。 组相联映射:当辨认该组某块失效时,如果块都被占满,要依照Lru[][]值大小,判断哪一块被替代掉。 全相联映射:从上到下cache块存数据,则从上到下循环即可,遇到失效时,要依照Lru[][]值大小,判断哪一块被替代掉。 二、 课后习题 1、 习题内容 在CacheSimulator模仿器上模仿如下程序运营过程: int i,j,c stride,array[256] for(i=0;i<10000;i++) for(j=0;j<256;j=j+stride) c = array[j]+5; 假设Cache总大小是256个字节,且块大小为16字节(4个字)。 同步假设内存当中只有这一种程序在运营,并且整形数字长度为一种字长(字长为32位),在直接相连映射下,stribe分别等于132、131时程序运营成果,并分析因素。而当采用两路组相连时又会有什么成果并分析因素。 2、 题目分析 当stribe = 132/131 时,程序相称于循环访问内存偏移地址为0和地址132/131内容,循环10000次,也就是访问了次存储。 结合cache机制,cache大小为256个字节,块大小为16个字节,因此块个数为256/16 = 16个。若为2路组相连,则有16/2 = 8组。 当第一次访问块时,一定会发生强制性失效,计一次miss。 3、 计算及成果 1) 直接映像时: l stride=132 array[0]块地址为0,映射到cache块号为0: 0 mod 16 = 0 array[132]块地址为132/4 = 33,映射到cache块号为1: 33 mod 16 = 1 由于第一次访问cache,0和1一定会发生强制性失效,之后由于调入cache,不会发生失效。则失效次数为2,则失效率为: 2/0 = 0.01% 命中次数为19998次,命中率为: 19998/0 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 l stride=131 array[0]块地址为0,映射到cache块号为0: 0 modulo 16 = 0 array[131]块地址为131/4 = 32,映射到cache块号为0: 32 modulo 16 = 0 由于第一次访问cache,0一定会发生强制性失效,之后cache里块号为0块不断地被替代写入替代写入,此时发生冲突失效。则失效次数为0,则失效率为: 0/0 = 1 = 100% 命中率为0。失效类型为强制性失效次数1,冲突失效次数为19999。 2) 2路组相联: l stride=132 array[0]块地址为0,映像到cache组号为0: 0 modulo 8 = 0 array[132]块地址为132/4 = 33,映像到cache组号为1: 33 modulo 8 = 1 由于第一次访问cache,0和1一定会发生强制性失效,之后由于调入cache,不会发生失效。则失效次数为2,则失效率为: 2/0 = 0.01% 命中次数为19998次,命中率为: 19998/0 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 l stride=131 array[0]块地址为0,映像到cache组号为: 0 modulo 8 = 0 array[131]块地址为131/4 = 32,映像到cache组号为: 32 modulo 8 = 0 由于第一次访问cache,0和1一定会发生强制性失效,之后由于是2路组相联,array[0]与array[131]都在0组,不会发生失效,则失效次数为2,失效率为: 2/0 = 0.01% 命中次数为19998次,命中率为: 19998/0 = 99.99% = 1(近似) 失效类型为强制性失效,次数为2。 4、 模仿器上实验成果检查 注:由于例题循环次数为10000,为了便于实验,我将循环次数设立为100,成果参照100计算,原理是一致。由于实际131/132都是字地址,而project.txt设立是字节地址,因此将project.txt里值设立为0 和 132*4/131*4 循环100次,设立cache大小为256,block大小为4,可以分别看到直接映射和2路组相连映射成果为: 直接映射 stride=132 stride=131 miss count 2 200 miss rate 0.01 1.00 hit count 198 0 hit rate 0.99 0 access count 200 200 c1c(强制性失效) 2 2 c2c(容量性失效) 0 0 c3c(冲突性失效) 0 198 2路组相连映射 stride=132 stride=131 miss count 2 2 miss rate 0.01 0.01 hit count 198 198 hit rate 0.99 0.99 access count 200 200 c1c(强制性失效) 2 2 c2c(容量性失效) 0 0 c3c(冲突性失效) 0 0 可以看到实验成果与计算是一致(由于循环次数100,因此实验成果小数点要后移两位)。同步对习题1思考(见后)也证明是对的。 (1) 直接映射:stride = 132 截图 (2) 直接映射:stride = 131 截图 (3) 2路组相连:stride = 132 截图 (4) 2路组相连:stride = 131 截图 三、 整体分析 1、 三种映射方式对Cache效率影响 其她相似条件:block大小为2,组相连相连度为4,project.txt为200个0~1000随机数。 cache容量(字节) 映射方式 直接映射 组相连 全相连 64 0.94 0.935 0.925 128 0.87 0.875 0.865 256 0.79 0.79 0.785 512 0.68 0.63 0.61 1024 0.50 0.50 0.50 生成图表: 此时可以看到: 1. 直接映射失效率高,组相连失效率中档,全相连失效率最低 2. 随着cache容量增长,失效率越小。 3. 当cache容量为1024时,由于数据取值因素,三种方式失效率相等,阐明当cache容量足够大,三种方式失效率是同样。 2、 block块大小与Cache容量对Cache效率影响 其她相似条件:直接映射,相连度为1,project.txt为200个0~1000随机数。 块大小(字) Cache容量(字节) 64 128 256 512 1024 1 0.94 0.885 0.83 0.77 0.69 2 0.94 0.87 0.79 0.68 0.50 4 0.95 0.905 0.80 0.635 0.30 8 0.945 0.89 0.785 0.575 0.155 生成图表: 此时可以看到: 1. 对于给定cache容量如64字节,当块大小增长时,失效率先是下降,日后反而上升了。 2. Cache容量越大,使其失效率达到最低块大小就越大。 3. 由于获得数据样本是随机,不是持续,实验数据并不是十分精确,例如cache容量128时,块大小浮现两次失效率 3、 Cache容量与相连度对Cache效率影响 其她相似条件:组相连,块大小2,project.txt为200个0~1000随机数。 Cache容量(字节) 相连度/路 1 2 4 8 64 0.94 0.93 0.915 0.905 128 0.875 0.87 0.86 0.87 256 0.785 0.765 0.80 0.78 512 0.645 0.64 0.67 0.66 1024 0.535 0.535 0.535 0.535 生成图表: 此时可以看到: 1. 提高相连度会使失效率下降。 2. 由于获得数据样本是随机,不是持续,实验数据并不是十分精确。 3. 当容量为1024时,也就是cache一定大时,失效率没什么区别。 4、 三种失效类型影响因素 (1)相连度对三种失效类型影响: 其她相似条件:cache大小为256,block大小为2,组相连,project.txt为200个0~1000随机数。 相连度(路) 总失效率 总失效次数 失效类型 强制性失效 容量失效 冲突失效 1 0.78 156 107 38 11 2 0.80 160 107 40 13 4 0.765 153 107 41 5 8 0.785 157 107 45 5 16 0.785 157 107 46 4 可以看出: 1. 强制性失效,即冷启动,不受相连度影响。 2. 容量失效基本不受相连度影响,但由于数据偶尔性,浮现增大趋势。 3. 冲突失效随着相连度增长而减少。 (2)Cache容量对三种失效类型影响: 其她相似条件:block大小为2,组相连度为4,project.txt为200个0~1000随机数。 cache容量(字节) 总失效率 总失效次数 失效类型(相对比例) 强制性失效 容量失效 冲突失效 64 0.93 186 107 78 1 128 0.87 174 107 65 2 256 0.765 153 107 41 5 512 0.64 128 107 13 8 1024 0.535 107 107 0 0 可以看出: 1. 容量越大,失效率越小。 2. 强制性失效不受容量大小影响。 3. 容量失效随着容量增长而大大减小。 4. 冲突失效不受容量大小影响。 四、 实验思考和感受 1、关于模仿器思考 Cache大小可选为16/64/128/256,由于代码写了,但是没有增长选项。但是,我考虑由于16实在太小了,没什么意义。 打开文献 名字为project.txt,修改文献名。 个人感觉有地方不太适当,由于直接映像就是特殊组相联映射,因此相联度一定为1,但是代码中并没有设计这一点,当一种完全不懂得人使用时,很有也许设立相联度不不大于1,导致错误。此外我觉得可以把三种方式各封装在一种自己函数里,这样代码更加清晰。 有困惑我问题,我是通过阅读代码才比较清晰理解cache实现,但是模仿器给出地址映射办法是将数据字节地址转换为字地址,又将字地址转换为块地址,对块地址进行取模运算。而习题1是直接对字地址进行取模运算,办法明显不一致。通过我重新阅读习题1题目,发现实际习题1132/131是字地址,由于定义int array[]数组定义是整数字长,因此132/131指是地址为字地址,例如两个地址之间是一种整数字长。 2、关于整个实验思考 这次实验是我大学做最专心一次实验,没有之一。我在仔细阅读实验代码后,懂得了内存物理地址是如何转换为cache块号或组号。我依照自己理解,画了一种模仿寻址图,更加清晰懂得原理,理顺清晰究竟是怎么一回事,收获很大。 在做整体分析时,我采用图表折线图方式,更加直观看出数据走势。但是我最初设想采样样本是像一条平滑曲线同样,自动生成一组相对持续数据,但是我只会生成随机数。而随机数是离散,因此,后来有机会,我但愿采用持续数据样本,重新得出更加精确成果。 总体来说,实验还是相对简朴,但是注重理解。理论与实践结合起来,加深了我对cache某些学习理解,同步,也锻炼了我自主思考,自主学习能力。例如,整体分析某些,采用不同变量成果比较办法等等。但愿在此后学习当中,继续保持,继续进步。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 标准 体系结构 cache 模拟器 实验 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文