logo资料库

存储体系实验.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
实验目的
实验内容
实验环境
实验步骤
测试结果分析
深 圳 大 学 实 验 报 告 课 程 名 称: 计算机系统(3) 实验项目名称: 存储体系实验 学 专 院: 计算机与软件学院 业: 计算机科学与技术 指 导 教 师: 报告人: 学号: 班级: 实 验 时 间: 2017 年 12 月 18 日 实验报告提交时间: 2018 年 1 月 15 日 教务处制
实验目的 1. 观察 cache 对程序数据访问的加速作用; 2. 掌握编程中利用 cache 的基本方法; 3. 加深对 Amdahl 定理得认识。 实验内容 编写 C 语言程序,检验不同编程方式下数据访问模式对程序执行时间的影响。 实验环境 硬件:PC 或任何一款具有 cache 的功能的计算机; 软件:Windows/Linux 操作系统、C 语言编译器。 实验步骤 1. Cache 大小评估 阅读和运行程序 Cache.c 来评估 Cache 大小对程序性能的影响。该程序第一个部分是利 用标准调用,通过 CPU 时钟得到用户精确时间,如果在其它系统上运行,则此部分需要修 改。第二部分是一个嵌套的循环,以不同的步幅和 Cache 大小读写存储器,此段代码运行多 次以获得精确的 Cache 时钟。在源代码中设置运行 20s,可以设置更高以获得更高的精确度。 第三部分测量了嵌套循环的时间开销,以便在全局测量时间中将其减去得到访问时间。在单 用户模式下,或者至少在关闭其他程序的情况下运行此程序,能得到更可靠地结果。 (1) 测试环境 处理器:intel(R) Core(TM) i5-4210U @1.70GHz 双核 操作系统:Windows 教育版 10
内存:4GB 高速缓存: 一级 64KB 数据 64KB 代码 二级 512KB 三级 3MB 内存:4GB 编译器:Microsoft Visual Studio 2013 (2) 测试结果 (3) 测试结果分析: 工作时间 图 1 表 1 工作时间 工作集大小 0.8 0.8 0.8 0.8 0.8 0.9 0.8 0.3 0.1 0.1 0.1 0.8 0.8 0.8 0.8 0.8 0.8 0.9 0.9 0.3 0.1 0.1 0.1 0.8 0.8 0.8 1.0 1.0 1.0 1.0 0.9 0.9 0.3 0.1 0.1 0.1 1.0 0.8 1.0 1.1 5.3 0.8 1.0 1.0 1.3 5.6 0.8 0.8 1.0 1.3 5.8 4K 8K 16K 32K 64K 128K 256K 512K 1M 2M 4M 8M 16M 32M 1.0 0.8 1.0 0.8 0.8 0.8 0.8 0.8 0.8 0.8 1.0 1.0 0.8 0.6 0.8 1.3 1.0 0.8 1.0 1.0 5.5 3.0 2.9 2.8 2.8 6.3 13.9 16.4 17.4 17.2 4.7 4.6 3.5 8.4 9.0 22.7 31.5 33.3 34.8 8.0 4.2 9.1 10.3 26.0 35.1 39.4 39.7 8.8 4.3 4.4 11.0 11.3 11.7 31.8 42.9 48.7 51.5 6.7 14.1 14.1 15.2 39.6 56.6 68.1 72.2 6.2 15.4 15.4 16.0 38.6 66.1 79.5 80.9 11.7 15.4 15.7 16.4 42.9 64.4 70.8 3.2 9.5 14.6 15.2 15.8 22.5 42.7 64.7 1.8 0.1 4.2 10.0 13.9 15.6 19.7 22.7 46.2 7.0 13.6 18.2 20.5 24.4 1.1 0.1 0.1 0.1 3.3 9.3 16.4 20.0 23.8 0.8 0.8 0.8 1.0 2.5 2.9 2.8 2.5 2.5 3.6 3.1 1.8 0.1 0.1 0.1 0.8 0.8 0.8 1.0 2.5 2.8 2.6 2.5 2.4 3.1 1.8 0.1 0.1 0.1 4B 0.8 8B 0.8 16B 0.8 32B 0.8 64B 0.8 128B 1.2 256B 0.1 512B 0.1 1K 0.1 2K 0.1 4K 8K 16K 32K 64K 128K 3.4 0.9 工作 步幅 大小
256K 512K 1M 2M 4M 8M 16M 0.1 0.1 0.1 0.9 0.1 0.1 4.3 0.9 0.1 0.1 11.3 14.3 23.3 8.4 15.7 6.7 6.7 11.3 0.9 0.1 0.9 8.7 0.9 0.1 0.1 0.1 0.1 0.1 图 2 测试结果分析 (1)观察结果 在图中,水平轴表示的是工作集的大小(Working set size),纵轴是时间,单位是 s,从折线 中可以看出在工作集大小为 64KB,512KB 和 2M~4M 之间有较大的波动。故可以推断分别 为 L1,L2,L3Cache 的大小分别大约为:64KB,512KB 和 2M~4M (2)验证结果 用软件“CPU-Z”验证 Cache 大小:
由图看出,L1Cache 大小为 2*32=64KB,L2Cache 大小为 2*256KB=512KB,L3Cahe 大小为 3M。这些结果与实验猜测大致吻合。 (3)思考:为什么可以这样推断,为什么所测到的是在 2M~4M 之间程序性能有较大的影 响,而不是在 L3Cache 实际大小 3M 的地方。 当测试的二位数组大于一级缓存大小时,计算性能可定会下降,如果大于二级缓存时, 计算性能又会下降,所以可以根据处理时间的波动来推测缓存的大小。 当测试的二位数组用到三级缓存时,并不是其中的所有数据每次都能够命中,所以当缓 存中没有需要的数据时,就需要去内存中取数据,这样在三级缓存还未存满的情况下,就会 性能大幅下降,所以在 2M~4M 之间程序性能有较大的影响,而不是在三级缓存实际大小 3MB 的地方。
指导教师批阅意见: 成绩评定: 备注: 指导教师签字: 王毅 日 年 月
分享到:
收藏