1.14 - 流水线
目录
一、流水线的概念
二、流水线工作流程
三、未使用流水线执行指令
1、执行过程
2、结论
四、使用流水线执行指令
1、执行过程
2、结论
五、流水线周期
六、流水线计算公式
七、流水线的吞吐率
八、考法1:流水线的相关计算
一、流水线的概念
- 所谓流水线,是指程序在执行时, 多条指令重叠进行操作的一种准并行处理实现技术。
二、流水线工作流程
- 一条指令在执行的时候,通常可以分为多个阶段进行,每个阶段由不同的部件来实现;
- 以分为3个阶段为例: 取指、分析、执行;
三、未使用流水线执行指令
1、执行过程
- 没有使用流水线时,当第一条指令的取指部件进行取指时,分析部件和执行部件是空闲的;
- 当取指部件取指完成后,分析部件开始分析指令,这时取指部件和执行部件是空闲的;
- 当分析部件执行完成后,执行部件开始编译后执行指令,此时取指部件和分析部件又是空闲的;
2、结论
- 由此可知,不使用流水线执行指令时,取指部件,分析部件,执行部件的利用率并不高;
四、使用流水线执行指令
1、执行过程
- 当第一条指令开始执行时,取指部件开始工作,分析部件和执行部件空闲;
- 当第一条指令取指完成后,分析部件开始工作;此时取指部件就空闲出来了,此时就可以去取第二条指令了;
- 当第一条指令分析完成后,执行部件开始工作;此时分析部件就空闲出来了,此时就可以对刚取的第二条指令进行分析了;并且由于此时第二条指令取指完成了,所以此时取指部件又空闲出来了,所以此时可以去取第三条指令了;
2、结论
- 由此可见,使用流水线执行指令,能有效提高部件的使用率,也就有效的提高了指令的执行效率;
五、流水线周期
- 在指令中各个阶段, 执行时间最长的这一阶段的时间,就是流水线的周期;
解析:(1)例如流水线上的工人,三个人合作完成一件物品;第一个人需要2秒,第二个人需要4秒,第三个人需要1秒;(2)如果此时将完成这件物品的周期定为1秒,那么第一、第二个人就无法完成自己的工作;(3)只有将周期定为4秒的时候,这三个人才都能完成自己的工作;(4)所以我们一般将 完成一件物品 执行所需时间最长的阶段的时间,定为周期,例子中的周期是4秒;
六、流水线计算公式
- 单条指令所需时间+(n-1)*(流水线周期)
(1)由图可知,执行第一条指令时,需要3个阶段;(2)执行完第一条指令时,第二条指令zh已经执行完分析阶段了,只需要有一个执行阶段就可完成第二条指令的执行;(3)当第二条指令执行完成时,第三条指令已经执行完分析阶段了,也只需要一个执行阶段就可以完成第三条指令的执行;(4)所以执行n条指令时,只需要用单条指令的时间(第一条指令的三个阶段的时间的和)+(n-1)条指令执行所需要的时间;
- 注意:n表示指令的数量;
七、流水线的吞吐率
八、考法1:流水线的相关计算
1.14 - 流水线相关推荐
- VLDB论文解读:阿里云超大规模实时分析型数据库AnalyticDB
1.背景 随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据.伴随着业务对海量数据实时分析的需求越来越多,数据分析技术这两年也迎来了一些新的挑战和变革: ...
- 【系统分析师之路】2017年系统分析师上午综合知识历年真题
[系统分析师之路]2017年系统分析师上午综合知识历年真题 [系统分析师之路]2017年系统分析师上午综合知识历年真题 [系统分析师之路]2017年系统分析师上午综合知识历年真题 第三章 企业信息化战 ...
- 计算机组成原理 复习笔记(已完结)
前言 本文参考书是白中英第六版<计算机组成原理>和机械工业出版社<计算机组成>.本文为期末复习参考,非考研,侧重知识点可能有所差异.如有错误烦请指出. 重点在 二.三.四.五章 ...
- 【计算机体系结构】名词解释
第一章 计算机体系结构的基本概念 (1)层次结构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征. (2)翻译:先用转换程序把高一级机器上的程序转 ...
- 使用Go模板生成文本
总览 作为软件开发人员,文本无处不在. 代码是文本,HTML是文本,XNL / JSON / YAML / TOML是文本,Markdown是文本,CSV是文本. 所有这些文本格式旨在满足人类和机器的 ...
- Python 模块大全(很详细!)
转载:.... Python的模块大全,很全,有详细介绍! 另外附Python两个教程 1. Python详细教程(廖雪峰的官方网站,语言简洁!) 2. Python 进阶教程 (Vamei) 3. ...
- 【五级流水线CPU】—— 5. 转移指令(14条)
转移指令(14) 一共14条指令,分为两类: 跳转指令(绝对转移):jr.jalr.j.jal 分支指令(相对转移):b.bal.beq.bgez.bgezal.bgtz.blez.bltzal.bn ...
- 富士康14跳被我赶上了,流水线车间真的没有梦想|十年系列
一个不太安分的人. 01.写在前面 十年前,我还是象牙塔中数学系的一名普通的大三学生. 九年前,我是富士康流水线工厂的一名工人. 六年前,我包里揣着3000元RMB来北漂. 三年前,我在一家互联网金融 ...
- ab st语言编程手册_木兰编程语言 0.0.14.7:功能覆盖初版用户手册;Gitee Go 流水线尝鲜...
木兰编程语言 在 2020 年度 OSC 中国开源项目评选 中已获得 26 票,请投票支持! 年初对原始木兰可执行文件 ulang-0.2.2.exe 作了些功能上的摸索尝试,将基本功能写在初版用户手 ...
最新文章
- XXX管理平台系统——会议管理
- dede php 循环,织梦怎么循环调用多级子栏目如二级栏目下三级栏目
- MyBatis01 Idea中搭建MyBatis开发环境
- 复旦教授发现400+安卓漏洞,最严重可使手机变砖,谷“鸽”16个月后才修复
- 网站SEO优化中该如何解决网站改版问题?
- 七牛大数据平台的演进与大数据分析实践--转
- php gd 缩略图,[PHP GD库]①0--缩略图封装
- 【Coursera课程笔记】Web智能和大数据Week3_MapReduce
- What is the usage of Transfer field in Text determine procedure customizing
- 详细解读css中的浮动以及清除浮动的方法
- 入门monkeyrunner7-monkeyrunner demo3 EasyMonkeyDevice+hierarchyviewer +monkeyrunner+截图对比
- Linux 主机超全渗透测试命令汇总
- 直播防盗链,域名设置
- C语言语法错误与语义错误的区别
- python 批量视频转换成图片
- OneNote无法粘贴图片
- 如何获取微信好友的地理位置信息
- 作为一名视觉工程师该怎么学习?
- 【思维导图】大数据发展历程2005~2017
- Win\Linux 双系统,如何删除linux的grub引导