实验报告课程名称:计算机系统结构实验项目:Cache的性能分析小组成员:专业:计算机科学与技术班级:15-5学号:计算机科学与技术学院实验教学中心2017年5月26日成绩:哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目名称:验证性实验一、实验目的(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。(2)掌握Cache容量、相联度、块大小对Cache性能的影响。(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。(4)理解LRU与随机法的基本思想以及他们对Cache性能的影响。二、实验平台采用cache模拟器MyCache。MyCache模拟器的使用方法:(1)双击MyCache.exe,启动模拟器。(2)系统打开操作界面,如下图1所示:图1Mycache操作页面(3)可以设置的参数包括Cache的容量、块大小、相联度、替换算法、预取策略、写策略、写不命中时的调块策略。可以直接从列表中选择。(4)访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。(5)模拟结果包括:①访问总次数,总的不命中次数,总的不命中率。②读指令操作的次数,其不命中次数及其不命中率。③读数据操作的次数,其不命中次数及其不命中率。④写数据操作的次数,其不命中次数及其不命中率。⑤手动输入单次访问的相关信息。三、实验内容和步骤3.1Cache容量对不命中率的影响(1)启动MyCache。(2)单击“复位”按钮,将各参数设置为默认值。(3)选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。(4)选择不同的Cache容量,包括2KB,4KB,8KB,16KB,32KB,64KB,128KB和256KB,分别执行模拟器(单击“执行到底”按钮就可执行),然后在表1.1中记录各种情况下的不命中率。地址流文件名:all.din表1不同容量下Cache的不命中率Cache容量248163264128256不命中率9.87%7.19%4.48%2.65%1.42%0.89%0.60%0.49%(5)指明地址流文件名,以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线图图2不命中率随Cache容量变化而变化的曲线图(6)根据该模拟结果,能得出什么结论?哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告随着cache容量的增大,不命中率不断减小。当cache容量达到一定值的时候,渐渐趋于平缓。3.2相联度对不命中率的影响(1)单击“复位”按钮,将各参数设置为默认值。此时的Cache容量为64KB。(2)选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。(3)选取不同的Cache相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮),然后在表1.2中记录各种情况下的不命中率。表2容量为64KB不同相联度的不命中率相联度12481632不命中率0.89%0.53%0.47%0.45%0.44%0.44%地址流文件名:all.din(4)把Cache的容量设置为256KB,重复(3)步骤填表1.3。表3容量为256KB不同相联度的不命中率相联度12481632不命中率0.49%0.38%0.36%0.36%0.35%0.35%(5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线图。图3不命中率随Cache相联度变化而变化的曲线图(6)根据模拟结果,你能得出什么结论?Cache容量相同,相连度越高,不命中率越低,Cache块大小对不命中率的影响越小。哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告3.3Cache块大小对不命中率的影响(1)单击“复位”按钮,将各参数设置为默认值。(2)选择一个地址流文件。具体方法:选择“访问地址”→“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。(3)选择不同的Cache块大小,包括16B,32B,64B,128B和256B。对于Cache的各种容量,包括2KB,8KB,32KB,128KB和512KB,分别执行模拟器(单击“执行到底”),然后在表1.4中记录各种情况下的不命中率。表4各种块大小情况下不同容量Cache的不命中率块大小(B)Cache容量28321285121612.02%5.79%1.86%0.95%0.71%329.87%4.48%1.42%0.60%0.42%649.36%4.03%1.20%0.43%0.27%12810.49%4.60%1.08%0.35%0.20%25613.45%5.35%1.19%0.34%0.16%地址流文件名:all.din(4)以cache容量为横坐标,画出在不同块大小下不命中率随Cache容量变化而变化的曲线图。图4不命中率随块大小变化而变化的曲线图(5)分析Cache块大小对不命中率的影响。在一定范围内,Cache块大小越大,不命中率越低,到达某一值后失效率会上升3.4替换算法对不命中率的影响哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告(1)单击“复位”按钮,将各参数设置为默认值。(2)选择地址流文件all.din。(3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮),在表1.5中记录各种情况下的不命中率。表5LRU和随机算法的不命中率的比较Cache容量相联度2路4路8路LRU随机算法LRU随机算法LRU随机算法16KB1.71%2.06%1.33%1.89%1.21%2.09%64KB0.53%0.65%0.47%0.62%0.45%0.62%256KB0.38%0.40%0.36%0.37%0.36%0.36%1MB0.35%0.35%0.35%0.35%0.35%0.35%图5LRU和随机算法的不命中率的2路比较图6LRU和随机算法的不命中率的4路比较哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告图7LRU和随机算法的不命中率的比较(4)分析不同的替换算法对Cache不命中率的影响。LRU和随机算法不命中率随cache容量增加减少,随相连度增加减少。相连度相同,cache容量大小相同时,LRU算法的不命中率比随机算法的不命中率小;Cache容量大小到一定程度时,不管何种替换算法时失效率都不再降低哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目名称:补充性实验一、实验设计1.1实验要求1.1.1模拟Cache的预取a)Cache预取的思想是什么?b)在模拟器中,能否设计实验模拟Cache的预取过程?请设计实验(设计地址序列)直观展示,并在检查时加以说明。c)预取对性能是否一定有提升?请通过数据加以说明1.1.2分析分离Cache和混合式Cache的性能差异供选择的角度(2选1)a)假定分离Cache中数据Cache与指令Cache容量1:1,分析不同总容量下,分离式Cache与混合式Cache的性能差异;b)在特定的总容量(512K)下,探究分离Cache中最佳的(数据:指令容量)比。1.2问题回答答:Cache预取的思想是程序的局部性原理,包括时间的局部性和空间的局部性1.3实验设计1.3.1模拟cache的预取实验,选择相同的地址,对比不同预取方式的不命中率1.3.2分析分离Cache和混合式Cache的性能差异,选择不同cache的结构,对比模拟结构的不命中率二、实验数据2.1模拟cache的预取实验表1预取情况命中数据表地址块号块内地址是否命中命中率000不命中100%404命中66.67%808命中50.0%6420不命中60.0%12840不命中71.43%120324命中62.50%13042命中55.56%哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告表2不预取情况命中数据表地址块号块内地址是否命中不命中率000不命中100.00%404命中66.67%808命中40.00%16016命中33.33%6420不命中43.86%12040不命中50.00%128324不命中55.56%图1模拟预取实验截图哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告图2模拟不预取实验截图2.2.分析分离Cache和混合式Cache的性能差异表3分离Cache和混合式Cache的性能块大小混合cache分离cache64kb0.89%0.79%128kb0.60%0.53%256kb0.49%0.45%32kb1.42%1.52%16kb2.65%2.65%4kb4.48%4.16%哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告图3模拟统一cache的实验截图图4模拟独立cache的实验截图哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告三、数据分析与结论3.1模拟cache的预取分析通过对比预取数据表和不预取数据表,可得预取对提高cache的性能有一定的性能。3.2分离Cache和混合式Cache的性能差异在cache的总容量比较小时(比如2kb),分离cache的不命中率明显的大于混合cache的不命中率。即混合cache的性能较好。而随着cache总容量的增加,分离cahe的不命中率开始小于混合cache的不命中率(如4Kb-128Kb)。随着总容量继续只增加,两者的不命中率一直很接近,不会相差很大。四、实验总结与心得在这次cache性能分析的实践中,我们通过自己动手改变Mycache的参数,模拟出cache的实际运行情况以及不命中率的变化,对Cache的基本概念、基本组织结构以及基本工作原理有了深入的理解,掌握了Cache容量、相联度、块大小对Cache性能的影响,cache预取的性能优化和统一cache、独立cache的工作状态的不同。掌握了降低Cache不命中率的各种方法。并且对MyCache模拟器的使用方法有了很好的了解,通过实验更好的理解知识,达到了通过实践学习知识的目的,培养了自己的动手能力。