计算机系统结构实验实验4:Cache性能分析(实验报告)姓名:学号:班级:学院:________________专业:_______________________班级:_____________________姓名:______________________学号:_________________实验时间:__________________实验室:______________实验台:__________________指导老师签字:________________________________成绩:_______________________一.实验目的(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。(2)掌握Cache容量、相联度、块大小对Cache性能的影响。(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。不命中开销就越大(所用时钟周期数越多)。为减少不命中开销,又要求提高相联度。二.实验内容和步骤(1)首先掌握MyCache模拟器的使用方法1)、启动模拟器,双击MyCache.exe即可。2)、系统打开一个操作界面,左边为设置模拟参考区域,右边为模拟结果显示区域。3)、可以设置的参数包括是同一Cache还是分离Cache,Cache的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。可以直接从列表中选择。4)、访问地址可以选择来自地址流文件,也可以选择手动输入。5)、模拟结果包括:①访问总次数,总的不命中次数,总的不命中率。②读指令操作的次数,其不命中次数及其不命中率。③读数据操作的次数,其不命中次数及其不命中率。④写数据操作的次数,其不命中次数及其不命中率。⑤手动输入单次访问的相关信息。(2)、Cache容量对不命中率的影响。1)启动MyCache。2)用鼠标单击“复位”按钮,把各参数设置为默认值。3)选择一个地址流文件。方法:选择“访问地址”—“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。4)选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在下表中记录各种情况下的不命中率。表2不同容量下Cache的不命中率Cache容量(KB)248163264128256不命中率9.877.194.482.651.420.890.600.49地址流文件名:all.din。5)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。6)根据该模拟结果,你能得出什么结论?Cache的命中率受其容量大小的影响,随着cache容量的增加,命中率增加,不命中率渐渐减小。(2).相联度对不命中率的影响1)用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。2)选择一个地址流文件。3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。分别执行模拟器,然后在下表中记录各种情况下的不命中率。表3当容量为64KB时,不同相联度下Cache的不命中率4)把Cache的容量设置为256KB,重复(3)的工作,并填写下表。表4当容量为256KB时,不同相联度下Cache的不命中率相联度12481632不命中率0.490.380.360.360.350.355)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名all.din。6)根据该模拟结果,你能得出什么结论?在Cache大小固定的情况下,在一定范围内,不命中率随相联度升高有所降低,但当相联度超过8后,提高相联度的实际意义并不大。(3)、Cache块大小对不命中率的影响1)用鼠标单击“复位”按钮,把各参数设置为默认值。2)选择一个地址流文件。3)选择不同的Cache块大小,包括16B、32B、64B、128B和256B。对于Cache的各种容量,包括2KB、8KB、32KB、64KB、128KB和512KB。分别执行模拟器,然后在下表中记录各种情况下的不命中率。表5各种块大小情况下Cache的不命中率地址流文件名:all.din。4)分析Cache块大小对不命中率的影响。当cache容量一定时,在一定范围内,cache不命中率随着cache块的变大而减小,减小到一定程度后,又随着cache块的增大不命中率增加。当cache块大小一定时,cache的容量越大,则不命中率越小(4)、替换算法对不命中率的影响1)用鼠标单击“复位”按钮,把各参数设置为默认值。2)选择地址流文件all.din。3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器,然后在下中记录各种情况下的不命中率。表6LRU和随机替换法的不命中率的比较4)分析不同的替换算法对Cache不命中率的影响。无论是2路组相联、4路组相联、还是8路组相联,随机算法的不命中率均高于LRU替换算法,可见LRU替换算法的命中率要高于随机替换算法。并且随着cache容量的增加,两种替换算法的不命中率都会渐渐减小。三,实验结果与分析根据不命中率随Cache的变化可得到的结论Cache的命中率受其容量大小的影响,随着cache容量的增加,命中率增加,不命中率渐渐减小。根据不命中率随Cache相联度的变化可得到的结论在Cache大小固定的情况下,在一定范围内,不命中率随相联度升高有所降低,但当相联度超过8后,提高相联度的实际意义并不大。根据不命中率随Cache块大小的变化可得到的结论当cache容量一定时,在一定范围内,cache不命中率随着cache块的变大而减小,减小到一定程度后,又随着cache块的增大不命中率增加。当cache块大小一定时,cache的容量越大,则不命中率越小根据不命中率随Cache相联度、容量、替换算法的变化可得到的结论。无论是2路组相联、4路组相联、还是8路组相联,随机算法的不命中率均高于LRU替换算法,可见LRU替换算法的命中率要高于随机替换算法。并且随着cache容量的增加,两种替换算法的不命中率都会渐渐减小四.讨论、建议、质疑