cache性能分析及优化实验报告.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cache性能分析及优化实验报告

实 验 报 告 实验名称: 学 员: 学 号: 培养类型: 年 级: 专 业: 所属学院: 指导教员: 职 称: 实 验 室:实验日期: 国防科学技术大学训练部制 实验报告打印以下要求: 采用A4(21cm×29.7cm)白色复印纸,单面黑字打印。上下左右各侧的页边距均为3cm;缺省文档网格:字号为小4号,中文为宋体,英文和阿拉伯数字为Times New Roman,每页30行,每行36字;页脚距边界为2.5cm,页码置于页脚、居中,采用小5号阿拉伯数字连续编排。最多可设四标题,序号第一“一、”、“二、”……,第二用“一”、“二” ……,第三用“1.”、“2.” ……,第四用“1)”、“2)” ……,分别按序编排 一 实验概述 (一)实验目的 1.掌握Cache的基本概念、基本组织结构 掌握影响Cache性能的三个指标 了解相联度对Cache的影响 了解块大小对Cache的影响 了解替换算法对Cache的影响 了解Cache失效的分类及组成情况 了解一些基本的Cache性能优化方法(选做) (二)实验步骤 运行模拟器SimpleScalar 在基本配置情况下运行矩阵乘计算程序统计Cache失效次数,并统计三种 不同类型的失效 改变Cache容量,统计各种失效的次数,并进行分析 改变Cache的相联度,统计各种失效的次数,并进行分析 改变Cache块大小,统计各种失效的次数,并进行分析 改变Cache的替换策略,统计各种失效次数,并分析 对给出的矩阵乘计算程序进行适当改写以优化cache性能。(选做) (三)实验平台 Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器 。 (四)实验课时 3课时 (五)参考资料 计算机体系结构教材、SimpleScalar模拟器使用指南等 二 背景知识 (一) Cache基本知识 (1) 可以从三个方面改进Cache的性能:降低失效率减少失效开销少Cache命中时间按照产生失效的原因不同以把Cache失效分为三类强制性失效(Compulsory miss) 当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。这种失效也称为冷启动失效或首次访问失效。容量失效(Capacity miss) 如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生失效。这种失效称为容量失效。冲突失效(Conflict miss) 在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突失效。这种失效也称为碰撞失效(collision)或干扰失效(interference)。替换算法随机法为了均匀使用一组中的各块,这种方法随机地选择被替换的块。最近最少使用法LRULeast Recently Used):选择近期最少被访问的块作为被替换的块。但由于实现比较困难,现在实际上实现的LRU都只是选择最久没有被访问过的块作为被替换的块。SimpleScalar 是上世纪由威斯康辛大学发布的一款开源模拟器,具备良好的可移植性和可扩展性。SimpleScalar 在学术界具有十分重要的影响力,根据其官方网站统计,2000-2002 年体系结构顶级会议中有一半以上的研究者采用该模拟器来评估他们的研究成果。 作为一款时钟精确的模拟器,SimpleScalar 采用执行驱动方式模拟,包含功能模拟和性能模拟。SimpleScalar 的指令集架构采用C 语言宏声明,目前3.0 版本主要支持PISA 指令集和Alpha 指令集。根据模拟的目的不同,SimpleScalar 包含多个模拟器实体,从最简单的Sim-fast 到最为复杂的Sim-outorder,可分别用于功能模拟、Cache 配置策略、流水线、前瞻预测等体系结构问题的全面研究。同时,随着SimpleScalar 一起发布的还有一系列工具链(交叉编译器,汇编器,流水线跟踪器等),他们与SimpleScalar 的交互过程如图4.1所示。Fortran 代码需要先由F2C工具转换为标准C 代码,交叉编译器则将标准C 代码编译为模拟器后端指令集下的二进制代码,交由模拟器执行模拟,通过这些交互最终实现一个完整的模拟平台。 图1 SimpleScalar模拟流程 1.编写测试程序 #include stdio.h int main() { printf(Hello world!\

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档