计算机系统结构流水线相关,计算机系统结构windlx流水线实验报告(17页)-原创力文档...

计算机科学与技术学院

《计算机体系结构》课程实验

学 号:

班 级:

专 业 :

学生姓名:

年 月 日

1

实 验 报 告

时间:

学生姓名: 学 号:

地点:

实验课程名称:计算机体系结构

一、实验名称:流水线中的相关- n 个数的方差

二、实验原理:

1、WinDLX

WinDLX 模拟器是一个 图形化、交互式的 DLX 流水线模拟器,能够演示

DLX 流水线是如何工作的。该模拟器可以装载 DLX 汇编语言程序(后缀 “.s”的

文件),然后单步、设断点或是连续执行该程序。CPU 的寄存器、流水线、I/O 和存

储器都可以用图形表示出来,以形象生动的方式描述 DLX 流水线的工作过程。模

拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。

2、流水线执行过程:

指令执行的5个阶段

(1)取指令周期

(2)指令译码/读寄存器周期

(3)执行/有效地址计算周期

(4)存储器访问/分支完成周期

(5)写回周期

2

3、流水线中的相关:

(1)结构相关:当某一条机器指令需要访问物理器件时,如加法器,此时加法

器正被另一条机器指令使用,从而产生结构相关;

(2)数据相关:当某一条指令需要访问某个寄存器时,此时这个寄存器正被另

一条指令所使用,从而产生数据相关;

(3)控制相关:当程序执行到某个分支语句时,顺序执行的下一条语句将被

跳过而去执行分支语句中满足条件的那条指令,从而产生控制相关。

三、实验目的:

1、通过该模拟实验,进一步掌握和巩固流水线的基本知识;

2、初步掌握在特定体系结构下的汇编代码的编写和优化;

3、培养运用所学知识解决实际问题的能力

4、对流水线性能分析

3

5、了解影响流水线效率的因素

6、了解各类相关及解决方法

四、实验内容:

使用 WinDLX 模拟器,对 Variance.s 做如下分析:

(1) 分析 Variance.s 和 Input.s 输入顺序不同时产生的影响。

(2) 分析 Variance.s 中汇编语言含义,同时分析程序执行流程。

(3) 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现

象的指令组合。

(4) 考察增加运算部件对性能的影响。

(5) 考察增加 forward 部件对性能的影响。

(6) 观察转移指令在转移成功和转移不成功时候的流水线开销。

注意:除(4)以外,加、乘、除部件都只有一个,本 问题中所有部件延迟设置 :

加法:2 个延迟周期;乘法:5 个延迟周期;除法 19 个延迟周期。

五、实验器材(设备、元器件):

IBM PC 兼容机

Windows 3.0 以上的操作系统

4

六、实验步骤及操作:

1、双击 WinDLX 图标运行 WinDLX 。装入测试程序之前,先初始化 WinDLX

模拟器:点击 File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。然

后点击窗口中的“确认”按钮即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinDLX基础实验 1.实验目的: 1)熟悉计算机流水线基本概念 2)了解DLX基本流水线的各段的功能了解各种不同指令在流水线中的实际流动情况 3)对流水线做性能分析 4)了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类 5)了解决数据相关的方法 2.实验内容: 1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令 、 立即数ALU指令,记录它们在流水线中的执行情况 2)仿真器运行一段无相关的程序,记录执行情况,计算流水线的加速比、吞吐率与效率 。 3)在仿真器运行一段程序,统计该程序在流水线中出现的各种相关个数,及其引起的流 水线暂停周期数 4)在流水线中设置定向路径来消除数据相关,运行程序并统计在流水线中出现的相关个 数,及其引起的流水线暂停周期数 5)通过对程序进行编译优化并结合其他相关解决方法——分支预测与延迟槽,运行程序并 统计在流水线中出现的相关个数,及其引起的流水线暂停周期数。 3.实验步骤:  1.)熟悉WinDLX的使用 用WinDLX模拟器执行求阶乘程序fact.s 。 开始模拟之前的准备工作: (1) 通过双击 WinDLX 图标启动WinDLX,将出现一个带有六个图标的主窗口: (2)进行初始化模拟器, 点击File 菜单中的 Reset all 菜单项,弹出一个"Reset DLX"对话框。然后点击窗口中的"确认"按钮即可。 (3)在开始模拟之前,至少应装入一个程序到主存。为此,选择File / Load Code or Data,窗口中会列出目录中所有汇编程序。fact.s 计算一个整型值的阶乘; input.s中包含一个子程序,它读标准输入(键盘)并将值存入DLX处理器的通用寄存器 R1中。按如下步骤操作,把fact.s和input.s加载入主存。 点击 fact.s 点击 select 按钮 点击 input.s 点击 select按钮 点击 load按钮 得到如下图: 弹出一下询问对话框,点击"是"。 点击Configuration打开菜单,然后点击Floating Point Stages菜单项,选择如下标准配置: (2)再点击Execute(Run,输入15点,回车,在弹出的对话框 出现消息"Trap #0 occurred" 表明最后一条指令 trap 0 已经执行, Trap指令中编号"0"没有定义,只是用来终止程序。点击确定。按F5进行查看: 关闭上面的对话框,在Statistisc中得到结果如下所示: (1)增加forward部件情况:在configuration 中使Enable Forwarding 选项前为打钩状态。然后点击Execute –> run 运行,在弹出的对话框中输入15,然后回车。 在Statistisc中得到的结果图如下图所示: (2) 不增加forward部件情况:点击 Configuration中的Enable Forwarding使定向无效(去掉小钩),打开断点Breakpoints 图标并点击Breakpoints 菜单,删除所有断点,然后按F5,键入15后,按Enter ,模拟程序一直运行到结束。 在Statistisc中得到以下的结果,如下图所示: 结论: 我们先看一下Statistics 窗口中的各种统计数字:增加Forwarding时,总的周期数(180) 和暂停数 (17 RAW, 20Control, 12 Trap; 49 Total) 。当不增加Forwarding时,重新查看静态窗口,你会看到控制暂停和 Trap 暂停仍然是同样的值,而RAW暂停从17变成了48,总的模拟周期数增加到201。利用这 些值,我们能够计算定向技术带来的加速比:   201 / 180 = 1.117   DLXforwarded比 DLXnot forwarded 快11.7%。 可以看得出,增加forward部件对性能有所影响。增加了FORWARD部件后,总时钟周期 减少,RAW相关减少,由于该部件的使用,将运算结果值提前传送到有关缓冲寄存器, 使后续指令得以不停顿地进入流水线,并及时得到需要的操作数,所以性能有所提高 。 2)不相关的程序 下面是一段不相关的程序,一共6条指令 ADDI R5, R5, 1 SUBI R4, R4, 1 AND R3, R3, R3 XOR R7, R7, R7 ADDI R8, R8, 1 ADDI R9, R9, 1 在WinDLX中执行的结果如下: 如上图所示: 6条指令一共执行了10个周期,而每个指令都需要5个周期来完成。 故可得加速比:5*6/10=3 实际吞吐率:流水线由5段组成,完成6条指令,m=5,n=6 T=5 t+(6-1) t=10 t

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值