实验五存储体系实验.doc

上传人:b****1 文档编号:236938 上传时间:2022-10-07 格式:DOC 页数:7 大小:319.50KB
下载 相关 举报
实验五存储体系实验.doc_第1页
第1页 / 共7页
实验五存储体系实验.doc_第2页
第2页 / 共7页
实验五存储体系实验.doc_第3页
第3页 / 共7页
实验五存储体系实验.doc_第4页
第4页 / 共7页
实验五存储体系实验.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

实验五存储体系实验.doc

《实验五存储体系实验.doc》由会员分享,可在线阅读,更多相关《实验五存储体系实验.doc(7页珍藏版)》请在冰豆网上搜索。

实验五存储体系实验.doc

深圳大学实验报告

课程名称:

计算机系统(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

四、实验步骤及说明

(1)x86cache层次结构的测量

一个程序从存储系统中读取数据的速率为读吞吐量,或者有时称为读带宽。

如果一个程序在s秒的时间段内读n个字节,那么这段时间内的读吞吐量就等于n/s,典型的是以兆字节每秒(MB/s)为单位的。

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

关于这个测试,有两个基本的概念:

时间局部性与空间局部性。

时间局部性:

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

空间局部性:

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

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

程序主程序代码如下图:

五、实验结果

运行程序,结果如下:

工作时间

工作集大小

4K

8K

16K

32K

64K

128K

256K

512K

1M

2M

4M

8M

工作步幅大小

4B

1.8

1.8

1.8

1.8

1.8

1.8

1.5

1.6

1.6

1.6

1.6

1.6

8B

1.6

1.6

1.6

1.6

1.5

1.6

1.6

1.6

1.6

1.6

1.9

1.9

16B

1.6

1.6

1.6

1.6

1.6

1.5

1.6

1.6

1.6

1.9

2.4

2.4

32B

1.6

1.3

1.5

1.6

1.6

1.6

1.6

1.9

2.0

2.3

3.7

4.2

64B

1.5

1.6

1.6

1.6

3.6

3.7

3.7

4.2

5.0

5.1

9.1

10.4

128B

1.1

1.4

1.3

1.6

3.7

3.6

5.2

7.1

11.6

11.5

38.4

42.5

256B

0.3

1.1

1.5

1.6

3.7

3.6

6.3

12.1

19.3

19.5

56.1

64.3

512B

0.1

0.3

1.1

1.5

3.7

3.7

6.3

13.5

20.4

19.9

58.8

72.8

1K

0.1

0.1

0.4

1.1

3.7

3.7

6.5

16.4

24.7

23.7

75.1

90.8

2K

0.1

0.1

0.1

0.5

3.1

3.7

8.3

21.1

32.8

31.7

96.3

119.2

4K

0.1

0.1

0.1

2.1

3.1

7.5

22.6

35.3

33.6

108.4

132.5

8K

0.1

0.1

0.1

2.3

3.6

19.2

21.4

22.5

37.4

108.4

16K

0.1

0.1

0.1

2.8

16.0

18.0

21.6

26.2

39.9

32K

0.1

0.1

0.3

9.2

13.1

16.1

25.5

26.3

64K

0.1

0.1

1.2

9.5

11.6

19.0

26.3

128K

0.1

0.1

1.3

3.6

13.3

18.8

256K

0.1

0.1

1.3

7.2

10.3

512K

0.1

0.1

5.1

7.5

1M

0.1

0.1

5.0

2M

0.1

0.1

4M

0.1

利用excel画出存储器山:

纵轴是时间,单位是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是为局部性而生的,因此,访问速度只能是memory级别。

六、实验总结与体会

存储器系统的性能不是一个数字就能描述的。

相反,它是一座时间和空间局部性的山,这座山的上升高度差别可以超过一个数量级。

明智的程序员会试图构造他们的程序,使得程序运行在山峰而不是低谷。

目标就是利用时间局部性,使得频繁使用的字从L1中取出,还要利用空间局部性,使得尽可能多的字从一个L1高速缓存行中访问到。

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

注:

1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

指导教师批阅意见:

成绩评定:

指导教师签字:

年月日

备注:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1