深圳大学实验报告课程名称:计算机系统(3)实验项目名称:存储体系实验学院:计算机与软件学院专业:计算机与软件学院所有专业指导教师:*******报告人:*****学号:*******班级:********实验时间:2017年12月19日星期二实验报告提交时间:2017年12月21日星期四教务处制一、实验目的增进对cache工作原理的理解体验程序中访存模式变化是如何影响cache效率进而影响程序性能的过程; 学习在X86真实机器上通过调整程序访存模式来探测多级cache结构以及TLB的大小。 二、实验内容 按照下面的实验步骤及说明,完成相关操作记录实验过程的截图: (1)x86cache层次结构的测量(90分)首先,设计一个用于测量x86系统上的cache层次结构的方案,然后设计出相应的代码;然后,运行你的代码获得相应的测试数据。最后,根据测试数据分析你的x86机器有几级cache,各自容量是多大。(2)选做:尝试测量你L1cache行的大小;(3)选做:尝试测量你的x86机器TLB有多大(报告撰写质量10分)三、实验环境 硬件:桌面PC 软件:Windows四、实验步骤及说明x86cache层次结构的测量一个程序从存储系统中读取数据的速率为读吞吐量,或者有时称为读带宽。如果一个程序在s秒的时间段内读n个字节,那么这段时间内的读吞吐量就等于n/s,典型的是以兆字节每秒(MB/s)为单位的。如果我们要编写一个程序,它从一个紧密程序循环中发出一系列读请求,那么测量出的读吞吐量能让我们看到对于这个读序列来说的存储系统的性能。关于这个测试,有两个基本的概念:时间局部性与空间局部性。时间局部性:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。 本实验使用的是x64位系统,配置如下图:程序主程序代码如下图:五、实验结果 运行程序,结果如下::纵轴是时间,单位是s,从折线中可以看出在工作集大小为128KB,521KB和8M~16M之间有较大的波动。故可以推断分别为L1,L2,L3Cache的大小分别大约为:128KB,521KB和4M~16M。故可以推断分别为L1,L2,L3Cache的大小分别大约为:128KB,521KB和4M~16M。验证结果 查看本机的配置,L1cache为128KB,L2cache为512KB,L3cache为4MB。综合来看,能够得出这几个结论:第一,当步长很小时,就算工作集很大,访问速率也在没有过多下降。这是因为,充分利用了空间局部性,相同cache块内的数据,只有第一个发生了miss,而在这次miss之后,其他数据被一同加载了进来。(空间局限性)第二,当步长很大工作集很小时,访问速度也很高。其实这里的步长并未对访问速度造成什么影响,因为整个工作集都会加载到cache中。(时间局部性)第三,对于大的工作集合和大的步长,那么cache就形同虚设,因为根本就不存在局部性,cache是为局部性而生的
实验五:存储体系实验 来自淘豆网m.daumloan.com转载请标明出处.