实验1 流水线及流水线中的冲突【计算机系统结构】

news2024/11/23 14:55:32

实验1 流水线及流水线中的冲突【计算机系统结构】

  • 前言
  • 推荐
  • 实验1 流水线及流水线中的冲突
    • 1 实验目的
    • 2 实验平台
    • 3 实验内容和步骤
    • 4 实验结论
    • 5 实验心得
  • 最后

前言

2023-5-12 20:22:09

以下内容源自《【计算机系统结构】》
仅供学习交流使用

推荐

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

1 实验目的

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

2 实验平台

指令级和流水线操作级模拟器MIPSsim。

3 实验内容和步骤

(1)启动MIPSsim。
在这里插入图片描述
(2)根据教材中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(鼠标双击各段,即可看到各流水寄存器的内容)
(3)载入一个样例程序(在本模拟器所在文件夹下的“样例程序”文件夹中),然后分别以单步执行一个周期、执行多个周期、连续执行、设置断点等方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器内容的变化,特别是流水寄存器内容的变化。
(4)选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。
(5)观察程序在流水方式下的执行情况,步骤如下:
1)选择“文件”→“载入程序”,加载pipeline.s(在模拟器所在文件夹下的“样例程序”文件夹中)。
在这里插入图片描述
在这里插入图片描述

2)选择“配置”→“定向”(使该项前没有“√”),关闭“定向功能”。
在这里插入图片描述
3)选择单步执行方式(在“执行”菜单中)或按F7来执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。

4)当执行到第13个周期时,各段分别正在处理的指令是:
IF: BEQ $ r1,$ r0,ret
ID: LW $ r4,60($ r6)
EX: ADDI $ r3,r0,25
MEM: ADDI $ r1,$ r1,-1
WB: ADDI $ r6,$ r0,8
画出此时的时钟周期图。

在这里插入图片描述

(6)此时各流水寄存器的内容为:
IF/ID.IR: 0
IF/ID.NPC: 52
ID/EX.A: 4
ID/EX.B: 0
ID/EX.Imm: 4
ID/EX.IR: 270532612
EX/MEM.ALUo: 68
EX/MEM.IR: 2361655356
MEM/WB.LMD: 0
MEM/WB. ALUo: 25
MEM/WB.IR: 53767545

在这里插入图片描述

(7)观察和分析结构冲突对CPU的影响:
1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。
2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件。

首先,结构冲突是指因硬件资源满足不了指令重叠执行的要求而引发的冲突。

多个浮点数加法导致

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3)记录由结构冲突引起的停顿周期数,计算停顿周期数占总执行周期数的百分比。

35÷52

在这里插入图片描述

4)把浮点加法器的个数改为4个。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5)再重复1-3的步骤。

在这里插入图片描述
在这里插入图片描述

6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。
设置停顿
设置相互独立的资源

以下是4个浮点加法寄存器执行8个浮点加法指令
可以看出fadd并行执行

在这里插入图片描述

(8)观察数据冲突并用定向技术来减少停顿:
1)全部复位。

在这里插入图片描述
2)加载data_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。
3)关闭定向功能(在“配置”菜单下选择取消“定向”)。
4)用单步执行一个周期的方式执行该程序,观察时钟周期图,列出什么时刻发生了RAW冲突。

3 5 6 7 9 11 12 13 17 19 21 23 24 29 30 36 39 44 47 51 55 58 63

5)记录数据冲突引起的停顿周期数以及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

在这里插入图片描述
6)复位CPU。

在这里插入图片描述
7)打开定向功能。

在这里插入图片描述

8)用单步执行一个周期的方式执行该程序,查看时钟周期图,列出什么时刻发生了RAW冲突,并与步骤3)的结果比较。

对比:3 5 6 7 9 11 12 13 17 19 21 23 24 29 30 36 39 44 47 51 55 58 63

5 9 17 21 29 33 41

采用定向技术,减少停顿

在这里插入图片描述

9)记录数据冲突引起的停顿周期数以及程序执行的总周期数。计算采用定向以后性能比原来提高多少。

比原来提高 (65-43)/65=0.34

在这里插入图片描述

4 实验结论

MIPS五段流水线
数据冲突
定向技术:在指令执产生计算结果之前,其余指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要他的地方,就可以避免停顿。
真正产生到真正用的地方

资源冲突
重复设置多个资源,指令并行

5 实验心得

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

6 实验思考:
下面是一段MIPS指令序列:
I1 add $t1, $s1, $s0
I2 sub $t2, $s0, $s3
I3 add $t1, $t1, $t2
假定在本实验所用的五段流水线处理器中执行上述指令序列,请思考:
(1)以上指令序列,哪些指令发生了数据相关?
I1与I3
I2与I3

(2)不采用“旁路”技术,需要在何处、加上几条nop指令才能使这段指令序列的执行避免数据冲突?
在这里插入图片描述

(3)如果采用“旁路”技术,是否可以完全解决数据冲突?不行的话,需要在何处、加上几条nop指令才能使这段指令序列的执行避免数据冲突?

在这里插入图片描述

(4)将自己的分析结果在仿真器上验证,充分理解“旁路”技术解决流水线数据冲突的思想。

1.编写程序

在这里插入图片描述
2.未采用定向技术

在这里插入图片描述
3.采用定向技术
在这里插入图片描述

最后

2023-5-12 20:32:25

你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。

祝大家逢考必过
点赞收藏关注哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【国际知名-hacker`动态`】洞悉-最新 hacker技术 新闻

国际知名-黑客动态 1、【导读】黑客 最新 技术&新闻 平台 2、【动态】每日必看的朋友圈 3、【多看看】跳出舒适圈,你要学的还有很多 ​ The Hacker News 报道黑客攻击、网络安全、科技新闻(内容深入浅出>提供及时、可靠的信息) 链接&#xff1a…

面板数据的门槛|门限效应检验、阈值确定、回归结果解释

写在前面 up学习是参照一个B站大美女:传送门 这里做笔记总结,勿cue 1.为什么是门槛模型 这玩意是针对非线性的举个例子 打LOL,最开始接触的时候,是新手训练营,你需要画大量的时间去学习如何行走、控制角色、熟悉英雄…

使用 Selenium IDE 上手 web 自动化测试

安装 Selenium IDE 是以浏览器插件的形式使用的,主要包含 FireFox 和 Chrome 两种。安装方式分为: 在线安装:下载对应的浏览器插件(chrome)。本地安装:把 .zip 压缩包拖到浏览器的扩展页面。 开始页面 在浏览器的插…

patchelf 和 glibc-all-in-one

小白垃圾笔记。不建议阅读。 为什么突然学这个呢? 因为因为因为一个栈溢出题,把我的ubuntu16搞崩了。具体是什么原因呢。 我很菜,我不知道pip是干啥的,之前装pwntools都是直接粘贴命令。然而这次,ubuntu16的python其…

冠珠瓷砖打造民族文化品牌,让中国陶成为中国潮

随着国家经济实力、综合国力的大幅度提升,文化自信被强势唤醒,“国潮”之风蔚然复兴。“讲好中国故事、传递中国文化”,成为民族品牌共同的愿景。冠珠瓷砖在建立之初就立足于民族品牌的打造,致力于“砖筑中国瓷砖硬实力”&#xf…

RFID技术在家具行业的应用

RFID技术在家具行业的应用 科技的不断进步和发展,RFID技术在各个领域的应用也越来越广泛,其中家具行业也不例外。RFID技术可以帮助家具企业实现实时追踪、管理和监控家具的生产、物流、库存以及售后服务等全流程,提高家具企业的生产效率和管…

算法修炼之练气篇——练气九层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

hexo + github 创建个人博客网站

环境准备 nodejs 和 npmgit 安装hexo hexo 是一个静态博客生成网站,可以快速制作自己的博客网站并部署 安装hexo npm install hexo-cli -g 创建项目 hexo init 本地预览 hexo s 部署到github page 新建仓库 创建一个名为[用户名].github.io的仓库 下载自动部署插…

三本毕业,银行外包测试工作 4 个月有余.....

本人普通三本本科毕业 4 年,目前是在广州工作,是一家大型的人力外包公司外包到银行的测试人员,这可能也是长期在各大招聘软件上最积极的招聘岗位。 从入职到现在已经有四个月了,也大概了解了外包的主要工作情况,也有了…

Android 性能优化的真谛,你领悟到了吗?

当今移动应用已经成为人们生活中不可或缺的一部分,而Android平台也是最受欢迎的移动操作系统之一。但是,由于Android平台的开放性和多样性,开发者需要特别注意应用的性能问题。本文将介绍一些Android性能优化的方法,帮助开发者提高…

六年间全球十大勒索攻击事件盘点:没有底线全是算计

自2017年WannaCry席卷全球以来,勒索软件攻击不断演变,并逐渐形成产业化,其攻击规模、影响及破坏效果进一步扩大,已经对全球制造、金融、能源、医疗、政府组织等关键领域造成严重影响,在某些事件中,攻击者挟…

家用洗地机哪种好?入门级智能洗地机推荐

传统的清洁方式不仅费时费力,而且并不一定能够完全清除地面污渍,而洗地机采用的高效吸力和滚刷设计可以快速、彻底地清洁地面,让您轻松应对日常清洁问题。洗地机是一种非常经济实用的清洁设备,它能够深入清洁地面,有效…

深度指南:WhatsApp广播vs WhatsApp群组

WhatsApp是全球使用最广泛的通信应用程序之一。您可以在您的应用程序上找到WhatsApp群组和WhatsApp广播功能,据我所知,SaleSmartly(ss客服)支持集成WhatsApp并实现群组与广播功能。那么,二者之间有什么区别&#xff1f…

Windows下git和github的使用

介绍windows下的git和GitHub使用。 一、注册gihub账号 github官网:https://github.com 自行创建即可。 登录,create repository新建仓库一个测试库readme,创建完成。 二、git的安装 git官方网站:https://git-scm.com/ 选择Wi…

C#中如何使用ObjectPool来提高StringBuilder的性能

在C#中我们知道使用StringBuilder能提高大量字符串拼接的效率,其实StringBuilder的效率也可以提升,那就是使用ObjectPool。以下介绍怎么使用ObjectPool提高StringBuilder的性能。一、简介 C# ObjectPool类是一个内置的类库,用于实现对象…

Elasticsearch:如何使用自定义的证书安装 Elastic Stack 8.x

在我之前的文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch”,我详细描述了如何在各个平台中安装 Elastic Stack 8.x。在其中的文章中,我们大多采用默认的证书来安装 Elasticsearch。在今天的文章中,我们用自己创…

异常检测经典作:基于teacher-students的无监督异常检测

来源:投稿 作者:Mr.Eraser 编辑:学姐 论文链接:https://arxiv.org/pdf/1911.02357.pdf 贡献 提出了一种基于师生学习的无监督异常检测新框架:来自预训练教师网络的局部描述符用作学生集合的代理标签。模型能够在大型…

<<和>>操作符、取地址重载、const关键字

文章目录 自定义类型<<和>>重载const关键字取地址重载&#xff08;类的默认构造函数&#xff09; 自定义类型<<和>>重载 在内置类型中&#xff0c;<<和>>可以自动识别 在自定义类型冲&#xff0c;运算符重载&#xff0c;<<和>&…

maven从入门到精通 第六章 在Maven中项目导入、生命周期、插件、目标、仓库

这里写自定义目录标题 一 工程与模块导入1 工程导入的方法1.1 版本控制系统1.2 来自工程目录1.2.1 直接导入工程文件1.2.2直接解压 2 模块导入 二 生命周期的基本概念1 生命周期存在的意义 三 插件和目标四 仓库 一 工程与模块导入 1 工程导入的方法 1.1 版本控制系统 通常使…

有赞一面:亿级用户DAU日活统计,有几种方案?

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如极兔、有赞、希音、百度、网易、滴滴的面试资格&#xff0c;遇到一几个很重要的面试题&#xff1a; (1) 亿级用户场景&#xff0c;如何高性能统计日活&#xff1f; (2) 如何实现亿…