文章目录

  • 实验二 流水线及流水线中的冲突
    • 实验目的
    • 实验平台
    • 实验内容和步骤
      • 一 首先要掌握MIPSsim模拟器的使用方法

实验二 流水线及流水线中的冲突

实验目的

  • 加深对计算机流水线基本概念的理解。
  • 理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作。
  • 加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。
  • 进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

实验平台

实验平台采用指令级和流水线操作级模拟器MIPSsim。

实验内容和步骤

一 首先要掌握MIPSsim模拟器的使用方法

(1) 启动MIPSsim。

(2) 根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)

(3)参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。
可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。

(4)选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。

(5)观察程序在流水线中的执行情况,步骤如下:
1)选择MIPSsim的“文件”—>“载入程序”选项来加载pipeline.s (在模拟器所在文件夹下的“样例程序”文件夹中)。
2)关闭定向功能。这是通过“配置”—>“定向”(使该项前面没有√号)来实现的。
3)用单步执行一个周期的方式(在“执行”菜单中)或按F7键执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。
4)当执行到第13个时钟周期时,各段分别正在处理的指令是:
IF: LW r4,60(r4,60(r4,60(r6) 取指
ID: ADDI r3,r3,r3,r0,25 读寄存器
EX: ADDI r1,r1,r1,r1,-1 执行
MEM: ADDI r6,r6,r6,r0,8 访存
WB: ADD r2,r2,r2,r1,$r0 回写
画出这时的时钟周期图。

(6)这时各流水寄存器中的内容为:
IF/ID.IR: 0X8CC4003C 机器码
IF/ID.NPC: 0X00000030 下一条地址
ID/EX.A: 0
ID/EX.B: 0
ID/EX.Imm: 25
ID/EX.IR: 0X20030019
EX/MEM.ALUo: 4
EX/MEM.IR: 0X2021FFFF
MEM/WB.LMD: 0
MEM/WB.ALUo: 8
MEM/WB.IR: 0X20060008

(7)观察和分析结构冲突对CPU性能的影响,步骤如下:
1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。
2)执行该程序,找出存在结构冲突的指令fadd, 对以及导致结构冲突的部件 浮点加法器 。
3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比: 总周期数52个,结构停顿周期数35个,占总执行周期数的67.30769% 。
4)把浮点加法器的个数改为4个。
5)再次重复步骤①~③的工作。
6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。
答:结构冲突对CPU性能的影响: 当发生冲突时,流水线会出现停顿从而降低CPU的性能。 。
解决结构冲突的方法: 在流水线处理机中设置相互独立的指令寄存器和数据寄存器。 。

(8)观察数据冲突并用定向技术来减少停顿,步骤如下:
1)全部复位。
2)加载data_hz.s(在模拟器所在的文件夹下的“样例程序”文件夹中)。
3)关闭定向功能。这是通过“配置”->“定向”(是该项前面没有√号)来实现的。
4)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。
答:在Cycle 4, 6, 7, 9, 10, 13, 14, 17, 18, 20, 21, 25, 26, 28, 29, 32, 33, 36, 37, 39, 40, 44, 45, 47, 48, 51, 52, 55, 56, 58, 59 时,发生RAW冲突。
5)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。
答:数据冲突引起的停顿时钟周期数为: 31 ,程序执行的总时钟周期数为: 65 ,停顿时钟周期数占总执行周期数的百分比为 47.69231%
6)复位CPU 。
7)打开定向功能。这是通过“配置”->“定向”(是该项前面有√号)来实现的。
8)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤3的结果进行比较。
答:在第 5,9,13,17,21,25,29,33,37 时钟周期发生了RAW冲突,可以看到,通过 定向 技术,大大减少了RAW冲突数目。
9)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数。计算采用定向技术后的性能是原来的几倍。
答:数据冲突引起的停顿周期数为: 9 ,程序的总时钟周期数为: 43 ,停顿时钟周期数占总执行周期数的百分比为 20.93023% ,采用定向技术后的性能是原来的 1.51 倍。

【计算机体系结构实验】流水线及流水线中的冲突相关推荐

  1. 计算机体系结构实验报告

    电子科技大学2021计算机体系结构课程实验.内容仅供学习参考使用,请勿抄袭. 实验一 单周期 CPU 代码分析 实验内容 认真阅读并分析所给的单周期CPU代码,掌握单周期CPU电路结构中各模块的工作原 ...

  2. 计算机结构实验三,计算机体系结构实验报告——实验三.pdf

    计算机体系结构实验报告--实验三 1.实验目的: 通过实验,熟练掌握WINDLX 的操作方法,特别注意在单步执行WinDLX程序中,流水线 中指令的节拍数. 2.实验内容: (1) 用WinDLX模拟 ...

  3. 计算机体系结构 第3章 流水线技术(1)

    文章目录 第3章 流水线技术 3.1 流水线的基本概念 3.1.1 流水线的基本概念 3.1.2 流水线的分类 3.2 流水线的性能指标 3.2.1 吞吐率 各段时间均相等的流水线 各段时间不完全相等 ...

  4. 计算机体系结构 第三章 流水线(Pipeline)技术

    1.流水线技术简介 2.指令流水 3.浮点加法流水 4.流水技术 5.流水线的分类 部件功能级.处理机级和处理机间级流水线 部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式.例如,可将浮点加法 ...

  5. 哈工程计算机体系结构实验,哈工程体系结构实验

    <哈工程体系结构实验>由会员分享,可在线阅读,更多相关<哈工程体系结构实验(8页珍藏版)>请在人人文库网上搜索. 1.哈工程体系结构实验实 验 报 告学生姓名: 学 号:时间: ...

  6. 计算机体系结构实验 (实验报告)

    目录 1. MIPS 指令系统和 MIPS 体系结构 编写 MIPS 汇编程序 观察程序的执行情况 2. 流水线及流水线的冲突 3. 指令调度和延迟分支 编写 MIPS 汇编程序 不加任何优化操作 开 ...

  7. 北邮计算机系统结构实验报告,北邮计算机体系结构--实验报告.doc

    计算机系统结构实验报告 班 级: 2011211 学 号: 姓 名: 17 1. 实验一 WINDLX模拟器安装及使用 2. 实验二 指令流水线相关性分析 3. 实验三 DLX处理器程序设计 4. 实 ...

  8. 计算机体系结构实验三 指令调度和延迟分支

    3.1  实验目的 加深对指令调度技术的理解. 加深对延迟分支技术的理解. 熟练掌握用指令调度技术来解决流水线中的数据冲突的方法. 进一步理解指令调度技术对CPU性能的改进. 进一步理解延迟分支技术对 ...

  9. 【计算机体系结构实验】指令调度和延迟分支

    文章目录 指令调度和延迟分支 指令调度和延迟分支 1.启动MIPSsim 2.根据预备知识中关于流水线各段操作的描述,进一步理解流水线中各段的功能,掌握各流水线的含义(用鼠标双击各段,就可以看到各流水 ...

最新文章

  1. PNAS:皮肤微生物群综合分析揭示人类皮肤的独特性并为其在哺乳动物的系统发育共生现象提供证据...
  2. zookeeper节点类型CreateMode
  3. HBase 6、用Phoenix Java api操作HBase
  4. Python 计算机视觉(一) —— 数字图像处理基础
  5. java throw异常_java throw拋出异常详解
  6. javascript获取当前时间
  7. Rochambeau POJ - 2912 (枚举和加权并查集+路径压缩)找唯一裁判
  8. [转]RSA算法简介
  9. 正则表达式 详解---2017-04-16
  10. 大学计算机学情分析,大学生学情分析
  11. Yolov5实现道路裂缝检测,附数据集
  12. The way to Go(5): 文件名、关键字与标识符
  13. 知识图谱属性融合_知识图谱融合_本体概念层的融合方法与技术
  14. 关于轻量级知识共享平台mm-wiki的使用
  15. 【实战】在qgis上查看街景照片( go2streetview谷歌街景、go2mapillary)
  16. 全球最牛逼的并发架构,抖音排第二,它排第一!
  17. swiper滑动切换变换样式,实时显示当前索引
  18. 苹果手机有护眼模式吗_调节明暗度等于手机护眼模式?看完真懂了
  19. Redis学习笔记·
  20. Android开发之获取SIM卡信息和手机号码

热门文章

  1. 学习分享:CNN(持续更新)
  2. 一盏提升效率的办公阅读台灯,意外成为了卧室氛围感神器
  3. Python学习(十一)——matplotlib与可视化
  4. 一些常用的GOOGLE、YAHOO、BAIDU三大搜索引擎搜索命令
  5. (快速入门深度学习)证件照生成项目
  6. 不只是摄影神器,看华为P40系列如何硬核守护你的隐私安全?
  7. Java基于springboot+vue的儿童玩具销售购物网站 多商家
  8. 【翻译】Image-to-Image Translation with Conditional Adversarial Networks
  9. 半代入法——过一点的椭圆切线
  10. java中过滤流_第十四讲 Java中的字节流和过滤流