您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页实验五_存储体系实验

实验五_存储体系实验

来源:筏尚旅游网
.word格式,

深圳大学实验报告

课程名称: 计算机系统(3)

实验项目名称: 存储体系实验

学院: 计算机与软件学院

专业: 计算机与软件学院所有专业

指导教师: *******

报告人: ***** 学号: ******* 班级:********

实验时间:2017年12月19日星期二

实验报告提交时间:2017年12月21日星期四

教务处制

, 专业.专注 .

.word格式,

一、实验目的

增进对cache工作原理的理解

体验程序中访存模式变化是如何影响cache效率进而影响程序性能的过程;

学习在X86真实机器上通过调整程序访存模式来探测多级cache结构以及TLB的大小。

二、实验内容

按照下面的实验步骤及说明,完成相关操作记录实验过程的截图: (1)x86 cache 层次结构的测量 (90分)

首先,设计一个用于测量x86系统上的cache层次结构的方案,然后设计出相应的代码;

然后,运行你的代码获得相应的测试数据。

最后,根据测试数据分析你的x86机器有几级cache,各自容量是多大。 (2)选做:尝试测量你L1 cache行的大小; (3)选做:尝试测量你的x86机器TLB有多大 (报告撰写质量10分)

三、实验环境

硬件:桌面PC 软件:Windows

四、实验步骤及说明

(1) x86 cache 层次结构的测量 一个程序从存储系统中读取数据的速率为读吞吐量,或者有时称为读带宽。如果一个程序在s秒的时间段内读n个字节,那么这段时间内的读吞吐量就等于n/s,典型的是以兆字节每秒(MB/s)为单位的。

如果我们要编写一个程序,它从一个紧密程序循环中发出一系列读请求,那么测量出的读吞吐量能让我们看到对于这个读序列来说的存储系统的性能。

关于这个测试,有两个基本的概念:时间局部性与空间局部性。

时间局部性: 被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。

, 专业.专注 .

.word格式,

空间局部性: 如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

本实验使用的是x位系统,配置如下图:

程序主程序代码如下图:

五、实验结果

运行程序,结果如下:

, 专业.专注 .

.word格式,

工作时间 4B 8B 16B 工作集大小 4K 8K 16K 32K K 128K 256K 512K 1.8 1.6 1.6 1.1.8 1.8 1.8 8 1.6 1.6 1.3 1.6 1.4 1.1 0.3 1.6 1.6 1.5 1.6 1.6 1.6 1.5 1.6 1.6 1.6 1.6 3.6 1.3 1.6 3.7 1.5 1.6 3.7 1.1 1.5 3.7 1.8 1.6 1.5 1.6 3.7 3.6 3.6 3.7 1.5 1.6 1.6 1.6 3.7 5.2 6.3 6.3 1.6 1.6 1.6 1.9 4.2 7.1 12.1 13.5 1M 2M 4M 1.6 1.9 2.4 3.7 9.1 8M 1.6 1.9 2.4 4.2 10.4 1.6 1.6 1.6 1.6 1.6 1.9 2.0 2.3 5.0 5.1 11.6 19.3 20.4 11.5 19.5 19.9 工1.作32B 6 步幅1.B 大5 小 1.128B 1 256B 512B 0.3 0.1 38.4 42.5 56.1 .3 58.8 72.8 , 专业.专注 .

.word格式,

1K 2K 4K 8K 16K 32K K 128K 256K 512K 1M 2M 4M 0.1 0.1 0.1 0.1 0.1 0.4 1.1 3.7 0.1 0.5 3.1 0.1 0.1 2.1 0.1 0.1 0.1 0.1 0.1 0.1 3.7 3.7 3.1 2.3 0.1 0.1 0.1 6.5 8.3 7.5 3.6 2.8 0.3 0.1 0.1 16.4 21.1 22.6 19.2 16.0 9.2 1.2 0.1 0.1 24.7 32.8 35.3 21.4 18.0 13.1 9.5 23.7 31.7 33.6 22.5 21.6 16.1 11.6 75.1 90.8 96.3 108.4 37.4 119.2 132.5 108.4 26.2 39.9 25.5 26.3 19.0 26.3 1.3 3.6 13.3 18.8 0.1 1.3 0.1 0.1 0.1 7.2 5.1 0.1 0.1 10.3 7.5 5.0 0.1 0.1

利用excel画出存储器山:

, 专业.专注 .

.word格式,

纵轴是时间,单位是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。

综合来看,能够得出这几个结论:

第一,当步长很小时,就算工作集很大,访问速率也在没有过多下降。这是因为,充分

, 专业.专注 .

.word格式,

利用了空间局部性,相同cache块内的数据,只有第一个发生了miss,而在这次miss之后,其他数据被一同加载了进来。(空间局限性)

第二,当步长很大工作集很小时,访问速度也很高。其实这里的步长并未对访问速度造成什么影响,因为整个工作集都会加载到cache中。(时间局部性)

第三,对于大的工作集合和大的步长,那么cache就形同虚设,因为根本就不存在局部性,cache是为局部性而生的,因此,访问速度只能是memory级别。

六、实验总结与体会

存储器系统的性能不是一个数字就能描述的。相反,它是一座时间和空间局部性的山,这座山的上升高度差别可以超过一个数量级。明智的程序员会试图构造他们的程序,使得程序运行在山峰而不是低谷。目标就是利用时间局部性,使得频繁使用的字从L1中取出,还要利用空间局部性,使得尽可能多的字从一个L1高速缓存行中访问到。

所以,我们往后编写程序时,也要考虑到相关的硬件因素,以此来设计我们的数据结构和算法,才能有更好的进步。

, 专业.专注 .

.word格式,

指导教师批阅意见: 成绩评定: 指导教师签字: 年月日 备注:

, 专业.专注 .

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务