计算机系统结构实验报告Linux,计算机系统结构实验报告西安交通大学.docx

news/2024/7/24 9:25:56 标签: 计算机系统结构实验报告Linux

计算机系统结构课内实验》实验报告

班级:计算机 15 班 姓名 :高君宇 学号: 2110505112 日期: 2014.5.7

动态分支预测实验

一、实验目的及要求

了解掌握动态分支与推断执行技术对流水线性能的改进效果

了解动态分支预测的基本技术;

了解推断执行的基本过程;

比较各种分支预测技术的性能。

二、实验环境

Linux、SimpleScalar Tool Set 、SPEC测试程序

三、实验内容

利用 SimpleScalar 仿真器中的分支预测仿真程序 sim-pred 运行所提供的三 个benchmark程序,分别采用五种不同的分支预测方法,即bimod方式,two-level adaptive 方式,always taken 方式,always not taken 方式,comb方式,并对 前两种分别使用下表中两种参数配置; 分析仿真器输出的关于分支预测的统计参 数集,填写表格,并对各仿真器的能力给出相应说明。

命令格式为: ./sim-bpred {-option} executable_benchmark- argument

对于三种动态方法,分别说明如下:

bimod 是最普通的,即采用一个 2bit 宽的分支方向预测表, 按分支地址查找, 2bit 分支预测器的判断和更新与课本上的一致。 这种方式只有一个参数, 就是分 支预测表的长度。

2-level 要复杂一些,它采用两级表格式,第一级是分支历史表,存放各组分 支历史寄存器的值,第二级是全局 /局部分支模式表,(全局或局部应是由表长 相对于分支历史寄存器的长决定),它存放各分支历史模式的 2bit 预测器。在 判断时用当前分支指令对应的历史寄存器值去索引二级表得到相应预测器值。 更 新时,把当前分支的方向左移入历史寄存器,并对使用过的 2bit 预测器作更新。 它有四个参数,前三个是一级表长度,二级表长度,历史寄存器宽度,最后一个 是异或标志。如果为 1,则将历史寄存器的值与当前分支指令地址异或,用其结 果再去索引二级模式表。

comb 方式则组合了以上两种方法,它再加入了一个 meta 表,这个表类似 bimod 的预测表,只是它预测的是采取 bimod 还是 2-level ,也采用 2-bit 预测器,

被采取的预测方法被定为第一方向,未被采取的定为第二方向。更新时,如果第 一方向与第二方向不同则更新meta表,否则只更新两种方法各自的表即可。它

共有三组参数,前两组即bimod和two-level的参数,第三组是关于 meta表长 度的说明。至于BTB的更新与cache的更新方式相同。

四、实验步骤

在linux的环境下,进入到simpleScalar文件的根目录;

调整好命令的格式并运行(下面给出运行命令的的一部分内容):

./sim-bpred -bpred taken tests/bin.little/test-math

./sim-bpred -bpred nottaken tests/bin.little/test-math

./sim-bpred -bpred bimod -bpred:bimod 512 tests/bi n.little/test-math

./sim-bpred -bpred bimod -bpred:bimod 1024 tests/bin.little/test-math

./sim-bpred -bpred 2lev -bpred:2lev 1 1024 8 01 tests/bi n.little/test-math

./sim-bpred -bpred 2lev -bpred:2lev 1 64 6 1 tests/bi n.little/test-math

./sim-bpred -bpred comb -bpred:comb 1024 -bpred:2lev 1 1024 8 0

-bpred:bimod 1024 tests/bi n. little/test-math

五、实验结果

将结果总结如下表:

测试程序为test.math

、预测方

alway 去s n ot

take n

alway

s

take n

bimod

(516)

bimod (1024)

2-level

(1,1024,8

,0)

2-level (1,64,6,

1)

comb (1024) (1,1024,8

,0)

(1024)

sim_total」nsn

2136

88

2136

88

213688

213688

213668

213723

213723

sim_total_refs

5689

7

5689

7

56897

56897

56897

56900

56900

sim_ nu m_bra nc


http://www.niftyadmin.cn/n/1864899.html

相关文章

SPS2003的工作流管理和实现OA,以及BizTalk Server 2004 的流程管理

昨天休假在家!10点钟起来,把BizTalk Server 2004 安装起了!晕!没安装去VS。NET 2003!BizTalk Server 2004 这个软件对其它的依赖性很强。微软的野心暴露无疑了!要实现BizTalk Server 2004 的功能需要安装的…

【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口

以项目驱动学习,以实践检验真知 文章目录前言所需依赖包参数校验业务层校验Validator BindResult进行校验Validator 自动抛出异常全局异常处理基本使用自定义异常数据统一响应自定义统一响应体响应码枚举全局处理响应数据总结前言 一个后端接口大致分为四个部分组…

Java虚拟机类装载:原理、实现与应用 (摘录)

出处:http://forums.zdnet.com.cn/cgi-bin/topic.cgi?forum3&topic1446&start0 一、引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些…

linux给jar创建图标,Centos 7(linux)系统下如何给jar应用程序创建桌面快捷方式

浅谈WebLogic和TomcatJ2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器.可以看出服务器在这种架构是非常重要的. 这几天接触到两种Java的web服务器,做项目用的Tom ...SPARK 中 DriverMemory和ExecutorMemoryspark中,不论spa…

c语言循环语句分别大写字母,C语言习题五循环.doc

习题五一.选择题1.下面程序段int k2;while (k0) {printf(“%d”,k);k--;}则下面描述中正确的是 。??A)while循环执行10次 B)循环是无限循环??C)循环题语句一次也不执行 D)循环体语句执行一次2.下述程序段中, 与其他程序段的作用不同。??A) k1; B) …

【项目实践】后端接口统一规范的同时,如何优雅得扩展规范

以项目驱动学习,以实践检验真知 前言 我在上一篇博客中写了如何通过参数校验 统一响应码 统一异常处理来构建一个优雅后端接口体系: 【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口。我们做到了: 通过Valid…

j#操作EXCEL

http://www.codeproject.com/dotnet/JExcel.asp转载于:https://www.cnblogs.com/divisoft/archive/2005/03/11/116836.html

长江大学c语言程序设计答案,C语言程序设计卷及答案.doc

C语言程序设计卷及答案2013─2014学年 第 二 学期《C语言程序设计》课程考试试卷考试方式:闭卷 考试时间:120分钟题号一二三四五总分得分阅卷人得分一、选择题 (每小题2分,共20分)1.以下不正确的C语言标识符是    。A. ABC B.…